33 #ifndef __XPLC_XPLC_H__
34 #define __XPLC_XPLC_H__
36 #if defined(__GNUC__) && __GNUC__ > 3
37 # pragma GCC system_header
45 #include <xplc/core.h>
59 XPLC(): servmgr(XPLC_getServiceManager()) {}
76 return servmgr->getObject(uuid);
82 template<
class Interface>
83 Interface*
get(
const UUID& uuid) {
84 return mutate<Interface>(servmgr->getObject(uuid));
97 template<
class Interface>
99 return mutate<Interface>(
create(cid));
112 template<
class Interface>
113 Interface*
create(
const char* aMoniker) {
114 return mutate<Interface>(
create(aMoniker));
The basic interface which is included by all other XPLC interfaces and objects.
The XPLC service manager interface.
The structure underlying UUIDs.
Smart pointer for XPLC interfaces.
void addModuleDirectory(const char *directory)
Adds a directory to the module loader path.
T * do_addRef(T *obj)
Used to addRef an object before passing it to something that would otherwise "steal" the reference...
Various utility functions, macros and templates.
Interface * create(const char *aMoniker)
Templated variant of XPLC::create(const char*) that will do a getInterface() for you.
Interface * create(const UUID &cid)
Templated variant of XPLC::create() that will do a getInterface() for you.
IObject * create(const UUID &cid)
Object creation helper.
XPLC(IServiceManager *_servmgr)
Create an XPLC object using an existing service manager reference.