Base header file for the plugin framework. More...
#include "icl_core_plugin/ImportExport.h"#include "icl_core_plugin/PluginManager.h"#include "icl_core_plugin/Logging.h"#include <string>

Go to the source code of this file.
| Defines | |
| #define | ICL_CORE_PLUGIN_DECLARE_PLUGIN | 
| #define | ICL_CORE_PLUGIN_DECLARE_PLUGIN_INTERFACE(name) | 
| #define | ICL_CORE_PLUGIN_DECLARE_PLUGIN_MANAGER(name, interface, directory) class ICL_CORE_PLUGIN_MANAGER_DEFINITION(name, interface, directory) | 
| #define | ICL_CORE_PLUGIN_DECLARE_PLUGIN_MANAGER_IMPORT_EXPORT(decl, name, interface, directory) class decl ICL_CORE_PLUGIN_MANAGER_DEFINITION(name, interface, directory) | 
| #define | ICL_CORE_PLUGIN_LINKAGE | 
| #define | ICL_CORE_PLUGIN_MANAGER_DEFINITION(name, interface, directory) | 
| #define | ICL_CORE_PLUGIN_REGISTER_PLUGIN(base, derived, plugin_identifier) | 
| #define ICL_CORE_PLUGIN_DECLARE_PLUGIN | 
| #define ICL_CORE_PLUGIN_DECLARE_PLUGIN_INTERFACE | ( | name | ) | 
| #define ICL_CORE_PLUGIN_DECLARE_PLUGIN_MANAGER | ( | name, | |
| interface, | |||
| directory | |||
| ) | class ICL_CORE_PLUGIN_MANAGER_DEFINITION(name, interface, directory) | 
| #define ICL_CORE_PLUGIN_DECLARE_PLUGIN_MANAGER_IMPORT_EXPORT | ( | decl, | |
| name, | |||
| interface, | |||
| directory | |||
| ) | class decl ICL_CORE_PLUGIN_MANAGER_DEFINITION(name, interface, directory) | 
| #define ICL_CORE_PLUGIN_LINKAGE | 
| #define ICL_CORE_PLUGIN_MANAGER_DEFINITION | ( | name, | |
| interface, | |||
| directory | |||
| ) | 
name : public icl_core::plugin::PluginManager<interface, directory> { \ name() \ { \ LOGGING_TRACE(icl_core::plugin::Plugin, "Using plugin search path " \ << directory << icl_core::logging::endl); \ } \ };
| #define ICL_CORE_PLUGIN_REGISTER_PLUGIN | ( | base, | |
| derived, | |||
| plugin_identifier | |||
| ) | 
std::string derived::Identifier() const                               \
  {                                                                     \
    return plugin_identifier;                                           \
  }                                                                     \
                                                                        \
  extern "C" ICL_CORE_PLUGIN_LINKAGE const char * identifier()          \
  {                                                                     \
    return plugin_identifier;                                           \
  }                                                                     \
                                                                        \
  extern "C" ICL_CORE_PLUGIN_LINKAGE const char * basetype()            \
  {                                                                     \
    return typeid(base).name();                                         \
  }                                                                     \
                                                                        \
  extern "C" ICL_CORE_PLUGIN_LINKAGE base* load_plugin()                \
  {                                                                     \
    return new derived;                                                 \
  }                                                                     \
                                                                        \
  extern "C" ICL_CORE_PLUGIN_LINKAGE void unload_plugin(derived* p)     \
  {                                                                     \
    delete p;                                                           \
  }