25#include <xplc/utils.h>
26#include <xplc/factory.h>
29#include "statichandler.h"
30#include "moduleloader.h"
68 handler->
addObject(XPLC_staticServiceHandler, handler2);
84 handler->
addObject(XPLC_categoryManager, obj);
90 handler->
addObject(XPLC_moduleLoader, obj);
96 handler->
addObject(XPLC_moduleManagerFactory, obj);
103 handler->
addObject(XPLC_monikers, monikers);
115ServiceManager::~ServiceManager() {
119 next = handlers->next;
124 if(singleton ==
this)
135 if(node->handler == aHandler)
138 if(node->intercept) {
159 if(node->handler == aHandler)
182 if(node->handler == aHandler)
206 if(node->handler == aHandler) {
223 obj = handler->handler->
getObject(aUuid);
231 handler = handler->next;
An interface for registering objects so they can be retrieved using a moniker.
virtual void registerObject(const char *prefix, const UUID &uuid)=0
Register an object to be retrieved with a moniker.
The basic interface which is included by all other XPLC interfaces and objects.
virtual unsigned int addRef()=0
Indicate you are using this object.
virtual unsigned int release()=0
Indicate that you are finished using this object.
Interface to an object which can be used to find other objects, given their UUIDs.
virtual IObject * getObject(const UUID &)=0
Get the object corresponding to the given UUID.
The XPLC service manager interface.
Service handler for statically linked components.
virtual void addObject(const UUID &, IObject *)=0
Adds an object to the static service handler.
virtual void removeHandler(IServiceHandler *)
Remove a handler from the list.
virtual IObject * getObject(const UUID &)
Get the object corresponding to the given UUID.
virtual void addLastHandler(IServiceHandler *)
Register a handler to be handled by this manager, explicitly adding it to the end of the list (lowest...
virtual void addHandler(IServiceHandler *)
Register a handler to be handled by this manager.
virtual void addFirstHandler(IServiceHandler *)
Register a handler to be handled by this manager, explicitly adding it to the beginning of the list (...
#define UUID_MAP_END
Marks the end of an interface map.
#define UUID_MAP_BEGIN(component)
Start the interface map for "component".
#define UUID_MAP_ENTRY(iface)
Add an entry to an interface map.
The structure underlying UUIDs.