00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __XPLC_MODULE_H__
00025 #define __XPLC_MODULE_H__
00026
00033 #include <xplc/IObject.h>
00034
00035 #ifdef UNSTABLE
00036 #include <limits.h>
00037 #endif
00038
00043 #define XPLC_MODULE_MAGIC 0x58504c43UL
00044
00049 #ifdef UNSTABLE
00050 #define XPLC_MODULE_VERSION_MAJOR UINT_MAX
00051 #define XPLC_MODULE_VERSION_MINOR 0
00052 #else
00053 #define XPLC_MODULE_VERSION_MAJOR 0
00054 #define XPLC_MODULE_VERSION_MINOR 0
00055 #endif
00056
00057
00061 #ifdef WIN32
00062 #define ENTRYPOINT extern "C" __declspec(dllexport)
00063 #else
00064 #define ENTRYPOINT extern "C"
00065 #endif
00066
00072 struct XPLC_ComponentEntry {
00074 const UUID& uuid;
00075 IObject* (*getObject)();
00077 };
00078
00082 struct XPLC_ModuleInfo {
00087 unsigned long magic;
00093 unsigned int version_major;
00099 unsigned int version_minor;
00100
00104 const char* description;
00105
00111 const XPLC_ComponentEntry* const components;
00112
00118 bool (*loadModule)();
00125 bool (*unloadModule)();
00126 };
00127
00132 ENTRYPOINT const XPLC_ModuleInfo XPLC_Module;
00133
00134 #endif