30 #include <boost/any.hpp>
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>
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;
The base class for all plugin handlers.
This class implements a facade for the xml Element.
the singleton that a plug-in handler really is
static void set_search_path(const CPluginSearchpath &searchpath)
static CMutex m_creation_mutex
static const T & instance()
T::CPluginMap::value_type value_type
the name,plug-in pair
T::const_iterator const_iterator
iterator to iterator over the actual plug-ins
static bool add_plugin(typename T::PInterface p)
static const T * pointer()
T Instance
The instance of the plugin handler.
The basic template of all plugin handlers.
std::map< std::string, PInterface > CPluginMap
a map containing the names and the available plug-ins
const_iterator end() const
TPluginHandler()
Initializes the plugin handler based on the build-in search path.
void initialise(const CPluginSearchpath &searchpath)
bool add_plugin(PInterface plugin)
void add_plugin_internal(PInterface plugin)
CPluginMap::const_iterator const_iterator
the iterator to walk over the available plug-ins
std::shared_ptr< I > PInterface
const std::string get_plugin_names() const
I Interface
typedef for the plug-in interface provided by the class
TPluginHandler< I >::Interface * plugin(const char *plugin) const
virtual ~TPluginHandler()
const_iterator begin() const
const std::set< std::string > get_set() const
#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.