PTLib  Version 2.12.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
plugin.h File Reference
#include <ptlib/pfactory.h>
Include dependency graph for plugin.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  PDevicePluginFactory< AbstractClass, KeyType >
 
class  PDevicePluginFactory< AbstractClass, KeyType >::Worker
 
class  PDevicePluginAdapterBase
 
class  PDevicePluginAdapter< DeviceBase >
 
class  PPluginServiceDescriptor
 
class  PDevicePluginServiceDescriptor
 
class  PPluginService
 

Macros

#define PWLIB_PLUGIN_API_VERSION   0
 
#define PCREATE_PLUGIN_REGISTERER(serviceName, serviceType, descriptor)
 
#define PCREATE_PLUGIN_STATIC(serviceName, serviceType, descriptor)
 
#define PPLUGIN_STATIC_LOAD(serviceName, serviceType)
 
#define P_FORCE_STATIC_PLUGIN   1
 
#define PCREATE_PLUGIN(serviceName, serviceType, descriptor)   PCREATE_PLUGIN_STATIC(serviceName, serviceType, descriptor)
 

Macro Definition Documentation

#define P_FORCE_STATIC_PLUGIN   1
#define PCREATE_PLUGIN (   serviceName,
  serviceType,
  descriptor 
)    PCREATE_PLUGIN_STATIC(serviceName, serviceType, descriptor)
#define PCREATE_PLUGIN_REGISTERER (   serviceName,
  serviceType,
  descriptor 
)
Value:
class PPlugin_##serviceType##_##serviceName##_Registration { \
public: \
PPlugin_##serviceType##_##serviceName##_Registration(PPluginManager * pluginMgr) \
{ \
static PDevicePluginFactory<serviceType>::Worker factory(#serviceName); \
pluginMgr->RegisterService(#serviceName, #serviceType, descriptor); \
} \
int kill_warning; \
}; \
#define PCREATE_PLUGIN_STATIC (   serviceName,
  serviceType,
  descriptor 
)
Value:
extern int PWLIB_gStaticLoader__##serviceName##_##serviceType; \
static int PWLIB_StaticLoader_##serviceName##_##serviceType() \
{ PPluginManager::GetPluginManager().RegisterService(#serviceName, #serviceType, descriptor); return 1; } \
int PWLIB_gStaticLoader__##serviceName##_##serviceType = PWLIB_StaticLoader_##serviceName##_##serviceType(); \
int PPlugin_##serviceType##_##serviceName##_link() { return 0; }
#define PPLUGIN_STATIC_LOAD (   serviceName,
  serviceType 
)
Value:
extern int PPlugin_##serviceType##_##serviceName##_link(); \
int const PPlugin_##serviceType##_##serviceName##_loader = PPlugin_##serviceType##_##serviceName##_link();
#define PWLIB_PLUGIN_API_VERSION   0