OpenAB  1.0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Plugin.hpp File Reference
#include <map>
#include <typeinfo>
#include <helpers/Log.hpp>
Include dependency graph for Plugin.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  OpenAB_Plugin::Node< __C >
 
class  OpenAB_Plugin::NodeIterator< __C >
 
class  OpenAB_Plugin::LinkedList< __C >
 
class  OpenAB_Plugin::Factory< __C, __P >
 
class  OpenAB_Plugin::Parameters
 

Namespaces

 OpenAB_Plugin
 namespace OpenAB_Plugin
 

Macros

#define EXPORT_PLUGIN_INTERFACE(PluginNamespace, PluginInterface, PluginParameters)
 Exports plugin interface. Made new plugin interface available to be used in OpenAB. This should be called at the end of *.cpp file of new plugin interface. More...
 
#define DECLARE_PLUGIN_INTERFACE(PluginNamespace, PluginInterface, PluginParameters)
 Declares new plugin interface. Should be called at the end of *.hpp file with new plugin interface. More...
 
#define REGISTER_PLUGIN_FACTORY(PluginFactory)
 Registers new plugin factory. New plugin interface implementations can register its factories so they can be used in OpenAB. This should be called at the end of *.cpp file of plugin. More...
 

Macro Definition Documentation

#define DECLARE_PLUGIN_INTERFACE (   PluginNamespace,
  PluginInterface,
  PluginParameters 
)
Value:
namespace PluginNamespace { \
}
Definition: Plugin.hpp:133

Declares new plugin interface. Should be called at the end of *.hpp file with new plugin interface.

Parameters
[in]PluginNamespacenamespace in which plugin interface is defined.
[in]PluginInterfaceclass name defining interface of new plugin.
[in]PluginParametersclass name defining parameters for new plugin itnerface.
#define EXPORT_PLUGIN_INTERFACE (   PluginNamespace,
  PluginInterface,
  PluginParameters 
)
Value:
namespace PluginNamespace { \
Factory::typeList factories; \
template<> \
Factory::PluginLoadedCallback Factory::loadedCb = NULL; \
\
template<> \
Factory::typeList Factory::factories = PluginNamespace::factories;\
}

Exports plugin interface. Made new plugin interface available to be used in OpenAB. This should be called at the end of *.cpp file of new plugin interface.

Parameters
[in]PlugyoinNamespacenamespace in which plugin interface is defined.
[in]PluginInterfaceclass name defining interface of new plugin.
[in]PluginParametersclass name defining parameters for new plugin itnerface.
#define REGISTER_PLUGIN_FACTORY (   PluginFactory)
Value:
namespace { \
PluginFactory factory; \
}

Registers new plugin factory. New plugin interface implementations can register its factories so they can be used in OpenAB. This should be called at the end of *.cpp file of plugin.

Note
Factory for new plugin implementation should be defined in unnamed namespace.
Parameters
[in]PluginFactoryfactory class of new plugin implementation.