24#include <xplc/utils.h>
27#define MONIKER_SEPARATOR_CHAR ':'
35MonikerService::~MonikerService() {
55 char* name = strdup(aName);
56 char* rest = strchr(name, MONIKER_SEPARATOR_CHAR);
66 if(strcmp(name, node->name) == 0) {
67 servmgr = XPLC_getServiceManager();
77 obj = moniker->resolve(rest);
105 if(strcmp(aName, node->name) == 0)
An interface for registering objects so they can be retrieved using a moniker.
An interface for obtaining an IObject given a moniker string.
The basic interface which is included by all other XPLC interfaces and objects.
virtual unsigned int release()=0
Indicate that you are finished using this object.
virtual IObject * getObject(const UUID &)=0
Get the object corresponding to the given UUID.
The XPLC service manager interface.
virtual IObject * resolve(const char *)
Given a moniker string, return the IObject it refers to, or NULL if no objects match.
virtual void registerObject(const char *, const UUID &)
Register an object to be retrieved with a moniker.
#define UUID_MAP_END
Marks the end of an interface map.
Interface * mutate(IObject *aObj)
A version of get() that releases its parameter.
#define UUID_MAP_BEGIN(component)
Start the interface map for "component".
#define UUID_MAP_ENTRY(iface)
Add an entry to an interface map.