33#ifndef __XPLC_XPLC_H__
34#define __XPLC_XPLC_H__
36#if defined(__GNUC__) && __GNUC__ > 3
37# pragma GCC system_header
46#include <xplc/utils.h>
59 XPLC(): servmgr(XPLC_getServiceManager()) {}
76 return servmgr->getObject(uuid);
82 template<
class Interface>
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.
XPLC(IServiceManager *_servmgr)
Create an XPLC object using an existing service manager reference.
Interface * create(const char *aMoniker)
Templated variant of XPLC::create(const char*) that will do a getInterface() for you.
IObject * get(const UUID &uuid)
Obtain an XPLC object.
void addModuleDirectory(const char *directory)
Adds a directory to the module loader path.
IObject * create(const UUID &cid)
Object creation helper.
Interface * create(const UUID &cid)
Templated variant of XPLC::create() that will do a getInterface() for you.
Interface * get(const UUID &uuid)
Templated variant of XPLC::get() that will do a getInterface() for you.
Smart pointer class for XPLC interfaces.
T * do_addRef(T *obj)
Used to addRef an object before passing it to something that would otherwise "steal" the reference.
The structure underlying UUIDs.