27 #ifndef _osaDynamicLoaderAndFactory_h
28 #define _osaDynamicLoaderAndFactory_h
43 bool Init(
const char* name,
const char* file,
const char* path,
44 const std::type_info& tinfo,
int version);
74 template <
class BaseClass>
77 typedef BaseClass* CreateFunc();
78 typedef void DestroyFunc(BaseClass*);
96 bool Init(
const char *name,
const char *file,
const char *path = 0)
116 {
return create ? (*(
reinterpret_cast<CreateFunc*
>(
create)))() : 0; }
126 #endif // _osaDynamicLoaderAndFactory_h
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
void Reset()
Definition: osaDynamicLoaderAndFactory.h:110
osaDynamicLoaderAndFactory()
Definition: osaDynamicLoaderAndFactory.h:82
Dynamically load a shared library file and find the factory methods in the file.
Definition: osaDynamicLoaderAndFactory.h:75
Definition: osaDynamicLoaderAndFactory.h:36
virtual ~osaDynamicLoaderAndFactoryBase()
Definition: osaDynamicLoaderAndFactory.h:47
Macros to export the symbols of cisstOSAbstraction (in a Dll).
Declaration of osaDynamicLoader.
void * create
Definition: osaDynamicLoaderAndFactory.h:39
osaDynamicLoaderAndFactoryBase()
Definition: osaDynamicLoaderAndFactory.h:42
void * destroy
Definition: osaDynamicLoaderAndFactory.h:40
bool Init(const char *name, const char *file, const char *path, const std::type_info &tinfo, int version)
void DestroyObject(BaseClass *obj) const
Definition: osaDynamicLoaderAndFactory.h:121
virtual ~osaDynamicLoaderAndFactory()
Definition: osaDynamicLoaderAndFactory.h:85
BaseClass * CreateObject() const
Definition: osaDynamicLoaderAndFactory.h:115
bool Init(const char *name)
Definition: osaDynamicLoaderAndFactory.h:104
bool Init(const char *name, const char *file, const char *path=0)
Definition: osaDynamicLoaderAndFactory.h:96
Dynamically load a shared library file.
Definition: osaDynamicLoader.h:55