24 #include <xplc/core.h>
26 #include <xplc/factory.h>
29 #include "statichandler.h"
30 #include "moduleloader.h"
33 #include "modulemgr.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);
115 ServiceManager::~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;
virtual IObject * getObject(const UUID &)=0
Get the object corresponding to the given UUID.
Service handler for statically linked components.
#define UUID_MAP_ENTRY(iface)
Add an entry to an interface map.
virtual void addFirstHandler(IServiceHandler *)
Register a handler to be handled by this manager, explicitly adding it to the beginning of the list (...
virtual void removeHandler(IServiceHandler *)
Remove a handler from the list.
#define UUID_MAP_BEGIN(component)
Start the interface map for "component".
virtual void registerObject(const char *prefix, const UUID &uuid)=0
Register an object to be retrieved with a moniker.
virtual void addHandler(IServiceHandler *)
Register a handler to be handled by this manager.
virtual void addLastHandler(IServiceHandler *)
Register a handler to be handled by this manager, explicitly adding it to the end of the list (lowest...
virtual unsigned int release()=0
Indicate that you are finished using this object.
#define UUID_MAP_END
Marks the end of an interface map.
The structure underlying UUIDs.
virtual void addObject(const UUID &, IObject *)=0
Adds an object to the static service handler.
virtual unsigned int addRef()=0
Indicate you are using this object.
virtual IObject * getObject(const UUID &)
Get the object corresponding to the given UUID.