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;
The XPLC service manager interface.
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.
Interface to an object which can be used to find other objects, given their UUIDs.
Various utility functions, macros and templates.
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.
An interface for registering objects so they can be retrieved using a moniker.
#define UUID_MAP_END
Marks the end of an interface map.
The basic interface which is included by all other XPLC interfaces and objects.
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.