29 #include <boost/any.hpp> 79 const std::string get_plugin_names()
const;
82 const std::set<std::string> get_set()
const;
86 const_iterator begin()
const;
89 const_iterator end()
const;
97 bool add_plugin(PInterface plugin);
106 void add_plugin_internal(PInterface plugin);
130 virtual void do_initialise();
132 void do_add_dependend_handlers(
HandlerHelpMap& handler_map)
const;
134 std::vector<PPluginModule> m_modules;
135 CPluginMap m_plugins;
137 virtual void do_print_short_help(std::ostream& os)
const;
138 virtual void do_print_help(std::ostream& os)
const;
139 virtual void do_get_xml_help(
CXMLElement& root)
const;
141 static const char *
const m_help;
154 template <
typename T>
176 static const T& instance();
178 static bool add_plugin(
typename T::PInterface p);
184 static const T* pointer();
197 static T& do_instance(
bool require_initialization);
200 static bool m_is_created;
201 static CMutex m_initialization_mutex;
202 static bool m_is_initialized;
I Interface
typedef for the plug-in interface provided by the class
the singleton that a plug-in handler really is
std::map< std::string, PInterface > CPluginMap
a map containing the names and theavailabe plug-ins
T::const_iterator const_iterator
iterator to iterator over the actual plug-ins
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
std::map< std::string, const CPluginHandlerBase * > HandlerHelpMap
A map that is used to collect the plug-in handlers used in a program.
T Instance
The instance of the plugin handler.
The base class for all plugin handlers.
std::shared_ptr< I > PInterface
CPluginMap::const_iterator const_iterator
the iterator to walk over the available plug-ins
This class implements a facade for the xml Element.
tbb::mutex CMutex
The mutex renamed to MIA style.
static CMutex m_creation_mutex
T::CPluginMap::value_type value_type
the name,plug-in pair
The basic template of all plugin handlers.
#define NS_MIA_END
conveniance define to end the mia namespace