Go to the documentation of this file.
30 #include <boost/any.hpp>
82 const std::string get_plugin_names()
const;
85 const std::set<std::string> get_set()
const;
133 virtual void do_initialise();
135 void do_add_dependend_handlers(
HandlerHelpMap& handler_map)
const;
137 std::vector<PPluginModule> m_modules;
140 virtual void do_print_short_help(std::ostream& os)
const;
141 virtual void do_print_help(std::ostream& os)
const;
142 virtual void do_get_xml_help(
CXMLElement& root)
const;
144 static const char *
const m_help;
157 template <
typename T>
180 static const T& instance();
182 static bool add_plugin(
typename T::PInterface p);
188 static const T *pointer();
201 static T& do_instance(
bool require_initialization);
204 static bool m_is_created;
205 static CMutex m_initialization_mutex;
206 static std::atomic<bool> m_is_initialized;
T::const_iterator const_iterator
iterator to iterator over the actual plug-ins
CPluginMap::const_iterator const_iterator
the iterator to walk over the available plug-ins
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
#define NS_MIA_END
conveniance define to end 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.
the singleton that a plug-in handler really is
This class implements a facade for the xml Element.
std::shared_ptr< I > PInterface
The basic template of all plugin handlers.
The base class for all plugin handlers.
static CMutex m_creation_mutex
T Instance
The instance of the plugin handler.
std::map< std::string, PInterface > CPluginMap
a map containing the names and the available plug-ins
T::CPluginMap::value_type value_type
the name,plug-in pair
I Interface
typedef for the plug-in interface provided by the class