PlugInRegistration.h File Reference

#include "AppConfig.h"
#include "ConfigurationSettings.h"
#include "External.h"
#include <algorithm>
#include <stdlib.h>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

class  DynamicPlugInFactory
 This class is used to perform dynamic plug-in registration. More...

Defines

#define MOD_ZERO   0
#define MOD_ONE   1
#define MOD_TWO   2
#define MOD_THREE   3
#define DEBUG_BOOL   false
#define REGISTER_MODULE_BASIC(name__, moduleNamespace__, canCache__, modVersion__)
#define REGISTER_NON_CACHED_MODULE(name__)
#define REGISTER_MODULE(name__)
#define REGISTER_DYNAMIC_MODULE(name__, dynamicFactoryClass__)
#define REGISTER_V2_MODULE(name__)
#define REGISTER_V2_DYNAMIC_MODULE(name__, dynamicFactoryClass__)
#define REGISTER_PLUGIN(moduleNamespace__, pluginname__, className__)
#define REGISTER_PLUGIN_BASIC(moduleNamespace__, name__)   REGISTER_PLUGIN(moduleNamespace__, name__, name__)
#define GENERATE_FACTORY(moduleNamespace__)
#define GENERATE_DYNAMIC_FACTORY(moduleNamespace__, dynamicFactoryClass__)


Define Documentation

#define DEBUG_BOOL   false

Definition at line 82 of file PlugInRegistration.h.

#define GENERATE_DYNAMIC_FACTORY ( moduleNamespace__,
dynamicFactoryClass__   ) 

Definition at line 408 of file PlugInRegistration.h.

#define GENERATE_FACTORY ( moduleNamespace__   ) 

Definition at line 372 of file PlugInRegistration.h.

#define MOD_ONE   1

Definition at line 24 of file PlugInRegistration.h.

#define MOD_THREE   3

Definition at line 26 of file PlugInRegistration.h.

#define MOD_TWO   2

Definition at line 25 of file PlugInRegistration.h.

#define MOD_ZERO   0

Definition at line 23 of file PlugInRegistration.h.

#define REGISTER_DYNAMIC_MODULE ( name__,
dynamicFactoryClass__   ) 

Value:

GENERATE_DYNAMIC_FACTORY(name__, dynamicFactoryClass__) \
   REGISTER_MODULE_BASIC(name__, name__, false, MOD_THREE)

Definition at line 122 of file PlugInRegistration.h.

#define REGISTER_MODULE ( name__   ) 

Value:

GENERATE_FACTORY(name__) \
   REGISTER_MODULE_BASIC(name__, name__, true, MOD_THREE)
Examples:
Tutorial/ModuleManager.cpp.

Definition at line 118 of file PlugInRegistration.h.

#define REGISTER_MODULE_BASIC ( name__,
moduleNamespace__,
canCache__,
modVersion__   ) 

Value:

extern "C" \
   { \
      struct OpticksModuleDescriptor name__##Descriptor = \
      { \
         modVersion__, \
         #name__, \
         #name__ "InstantiatePlugIn", \
         DEBUG_BOOL, \
         canCache__ \
      }; \
      LINKAGE struct OpticksModuleDescriptor* opticks_get_module_descriptor(External*) \
      { \
         return &name__##Descriptor; \
      } \
      LINKAGE bool name__##InstantiatePlugIn(External* pExternal, unsigned int plugInNumber, PlugIn** pPlugIn) \
      { \
         ModuleManager::instance()->setService(pExternal); \
         *pPlugIn = moduleNamespace__::getPlugIn(plugInNumber); \
         return *pPlugIn != NULL; \
      } \
   }; \
   const char* ModuleManager::mspName = NULL; \
   const char* ModuleManager::mspVersion = NULL; \
   const char* ModuleManager::mspDescription = NULL; \
   const char* ModuleManager::mspValidationKey = NULL; \
   const char* ModuleManager::mspUniqueId = NULL; \
   unsigned int ModuleManager::getTotalPlugIns() { return 0; } \
   PlugIn* ModuleManager::getPlugIn(unsigned int) { return NULL; }

Definition at line 84 of file PlugInRegistration.h.

#define REGISTER_NON_CACHED_MODULE ( name__   ) 

Value:

GENERATE_FACTORY(name__) \
   REGISTER_MODULE_BASIC(name__, name__, false, MOD_THREE)

Definition at line 114 of file PlugInRegistration.h.

#define REGISTER_PLUGIN ( moduleNamespace__,
pluginname__,
className__   ) 

Value:

namespace moduleNamespace__ \
   { \
      void addFactory(PlugInFactory*); \
      class pluginname__##PlugInFactory : public BasicPlugInFactory \
      { \
      public: \
         pluginname__##PlugInFactory(const std::string& name) : BasicPlugInFactory(name) \
         { \
            moduleNamespace__::addFactory(this); \
         } \
         virtual ~pluginname__##PlugInFactory() {}; \
         PlugIn* createPlugIn(const std::string& name) \
         { \
            return new className__; \
         } \
      }; \
      static pluginname__##PlugInFactory pluginname__##pluginFactory(#pluginname__); \
   }

Definition at line 350 of file PlugInRegistration.h.

#define REGISTER_PLUGIN_BASIC ( moduleNamespace__,
name__   )     REGISTER_PLUGIN(moduleNamespace__, name__, name__)

#define REGISTER_V2_DYNAMIC_MODULE ( name__,
dynamicFactoryClass__   ) 

Value:

GENERATE_DYNAMIC_FACTORY(name__, dynamicFactoryClass__) \
   REGISTER_MODULE_BASIC(name__, name__, false, MOD_TWO)

Definition at line 130 of file PlugInRegistration.h.

#define REGISTER_V2_MODULE ( name__   ) 

Value:

GENERATE_FACTORY(name__) \
   REGISTER_MODULE_BASIC(name__, name__, true, MOD_TWO)

Definition at line 126 of file PlugInRegistration.h.


Software Development Kit - Opticks 4.9.0 Build 16218