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; \ }