#include <PluginConfig.hpp>
Inherits pion::platform::ConfigManager.
Inherited by pion::platform::CodecFactory, pion::platform::DatabaseManager, pion::platform::ProtocolFactory, pion::platform::ReactionEngine, and pion::server::ServiceManager.
Definition at line 42 of file PluginConfig.hpp.
Public Member Functions | |
| virtual | ~PluginConfig () |
| virtual destructor: this class is meant to be extended | |
| virtual void | createConfigFile (void) |
| creates a new plug-in config file that includes the Pion "config" element | |
| virtual void | openConfigFile (void) |
| opens an existing configuration file and loads the plug-ins it contains | |
| virtual void | writeConfigXML (std::ostream &out) const |
| bool | writeConfigXML (std::ostream &out, const std::string &plugin_id) const |
| xmlNodePtr | getPluginConfig (const std::string &plugin_id) |
| bool | hasPlugin (const std::string &plugin_id) const |
| template<typename PluginUpdateFunction> | |
| boost::signals::connection | registerForUpdates (PluginUpdateFunction f) const |
| void | updateVocabulary (void) |
| this updates the Vocabularies used by all plug-ins | |
| VocabularyPtr | getVocabulary (void) const |
| returns a copy of the universal Vocabulary | |
| const VocabularyManager & | getVocabularyManager (void) const |
| returns a reference to the global VocabularyManager | |
Protected Member Functions | |
| void | releasePlugins (void) |
| releases all code for managed plugins | |
| PluginConfig (const VocabularyManager &vocab_mgr, const std::string &config_file, const std::string &plugin_element) | |
| void | setPluginConfig (const std::string &plugin_id, const xmlNodePtr config_ptr) |
| std::string | addPlugin (const xmlNodePtr config_ptr) |
| void | removePlugin (const std::string &plugin_id) |
| virtual void | addPluginNoLock (const std::string &plugin_id, const std::string &plugin_name, const xmlNodePtr config_ptr)=0 |
Protected Attributes | |
| const VocabularyManager & | m_vocab_mgr |
| references the VocabularyManager used by plug-ins to describe Terms | |
| const std::string | m_plugin_element |
| name of the plug-in element for Pion XML config files | |
| PluginManager< PluginType > | m_plugins |
| collection of plug-in objects being managed | |
| boost::signals::scoped_connection | m_vocab_connection |
| connection to this object from the VocabularyManager | |
| boost::signal0< void > | m_signal_plugins_updated |
| signal triggered whenever a plug-in is modified | |
| boost::mutex | m_signal_mutex |
| mutex used to protect the updated signal handler | |
| boost::mutex | m_mutex |
| mutex to make class thread-safe | |
Classes | |
| class | PluginException |
| exception used to propagate exceptions thrown by Pion plugins More... | |
| pion::platform::PluginConfig< PluginType >::PluginConfig | ( | const VocabularyManager & | vocab_mgr, | |
| const std::string & | config_file, | |||
| const std::string & | plugin_element | |||
| ) | [inline, protected] |
protected constructor: this should only be used by derived classes
| vocab_mgr | the global manager of Vocabularies | |
| default_config_file | the default configuration file to use | |
| plugin_element | the name of the plug-in element node |
Definition at line 161 of file PluginConfig.hpp.
| std::string pion::platform::PluginConfig< PluginType >::addPlugin | ( | const xmlNodePtr | config_ptr | ) | [inline, protected] |
adds a new plug-in object
| config_ptr | pointer to a list of XML nodes containing plug-in configuration parameters (must include a Plugin type) |
Definition at line 303 of file PluginConfig.hpp.
References pion::platform::ConfigManager::addPluginConfig(), pion::platform::PluginConfig< PluginType >::addPluginNoLock(), pion::platform::ConfigManager::configIsOpen(), pion::platform::ConfigManager::createUUID(), pion::platform::ConfigManager::getConfigFile(), pion::platform::ConfigManager::getConfigOption(), pion::platform::ConfigManager::m_logger, pion::platform::PluginConfig< PluginType >::m_mutex, pion::platform::PluginConfig< PluginType >::m_plugin_element, pion::platform::PluginConfig< PluginType >::m_signal_mutex, pion::platform::PluginConfig< PluginType >::m_signal_plugins_updated, and pion::platform::ConfigManager::PLUGIN_ELEMENT_NAME.
| virtual void pion::platform::PluginConfig< PluginType >::addPluginNoLock | ( | const std::string & | plugin_id, | |
| const std::string & | plugin_name, | |||
| const xmlNodePtr | config_ptr | |||
| ) | [protected, pure virtual] |
adds a new plug-in object (without locking or config file updates). This function must be defined properly for any derived classes that wish to use openPluginConfig().
| plugin_id | unique identifier associated with the plug-in | |
| plugin_name | the name of the plug-in to load (searches plug-in directories and appends extensions) | |
| config_ptr | pointer to a list of XML nodes containing plug-in configuration parameters |
Reimplemented from pion::platform::ConfigManager.
Implemented in pion::platform::CodecFactory, pion::platform::DatabaseManager, pion::platform::ProtocolFactory, and pion::server::ServiceManager.
Referenced by pion::platform::PluginConfig< PluginType >::addPlugin().
| xmlNodePtr pion::platform::PluginConfig< PluginType >::getPluginConfig | ( | const std::string & | plugin_id | ) | [inline] |
returns an XML tree representing the configuration for a plug-in
| plugin_id | unique identifier associated with the plug-in |
Definition at line 262 of file PluginConfig.hpp.
References pion::platform::ConfigManager::findConfigNodeByAttr(), pion::platform::ConfigManager::ID_ATTRIBUTE_NAME, pion::platform::ConfigManager::m_config_node_ptr, pion::platform::PluginConfig< PluginType >::m_mutex, and pion::platform::PluginConfig< PluginType >::m_plugin_element.
| bool pion::platform::PluginConfig< PluginType >::hasPlugin | ( | const std::string & | plugin_id | ) | const [inline] |
checks to see if a plugin is recognized (plugin_id is valid)
| plugin_id | unique identifier associated with the plugin |
Definition at line 119 of file PluginConfig.hpp.
Referenced by pion::plugins::MonitorService::operator()(), pion::plugins::FeedService::operator()(), pion::plugins::ConfigService::operator()(), pion::platform::ReactionEngine::removalAllowed(), and pion::platform::ReactionEngine::updateAllowed().
| boost::signals::connection pion::platform::PluginConfig< PluginType >::registerForUpdates | ( | PluginUpdateFunction | f | ) | const [inline] |
registers a callback function to be executed whenever plug-ins are updated
| f | the callback function to register |
Definition at line 130 of file PluginConfig.hpp.
Referenced by pion::platform::ReactionEngine::ReactionEngine(), and pion::server::ServiceManager::ServiceManager().
| void pion::platform::PluginConfig< PluginType >::removePlugin | ( | const std::string & | plugin_id | ) | [inline, protected] |
removes a plug-in object
| plugin_id | unique identifier associated with the plug-in |
Definition at line 334 of file PluginConfig.hpp.
References pion::platform::ConfigManager::configIsOpen(), pion::platform::ConfigManager::getConfigFile(), pion::PluginManager< PLUGIN_TYPE >::getLibPtr(), pion::platform::ConfigManager::m_logger, pion::platform::PluginConfig< PluginType >::m_mutex, pion::platform::PluginConfig< PluginType >::m_plugin_element, pion::platform::PluginConfig< PluginType >::m_plugins, pion::platform::PluginConfig< PluginType >::m_signal_mutex, pion::platform::PluginConfig< PluginType >::m_signal_plugins_updated, pion::PluginManager< PLUGIN_TYPE >::remove(), and pion::platform::ConfigManager::removePluginConfig().
| void pion::platform::PluginConfig< PluginType >::setPluginConfig | ( | const std::string & | plugin_id, | |
| const xmlNodePtr | config_ptr | |||
| ) | [inline, protected] |
sets configuration parameters for a managed plug-in
| plugin_id | unique identifier associated with the plug-in | |
| config_ptr | pointer to a list of XML nodes containing plug-in configuration parameters |
Definition at line 278 of file PluginConfig.hpp.
References pion::platform::ConfigManager::configIsOpen(), pion::platform::ConfigManager::getConfigFile(), pion::platform::VocabularyManager::getVocabulary(), pion::platform::ConfigManager::m_logger, pion::platform::PluginConfig< PluginType >::m_mutex, pion::platform::PluginConfig< PluginType >::m_plugin_element, pion::platform::PluginConfig< PluginType >::m_plugins, pion::platform::PluginConfig< PluginType >::m_signal_mutex, pion::platform::PluginConfig< PluginType >::m_signal_plugins_updated, pion::platform::PluginConfig< PluginType >::m_vocab_mgr, pion::PluginManager< PLUGIN_TYPE >::run(), and pion::platform::ConfigManager::setPluginConfig().
| bool pion::platform::PluginConfig< PluginType >::writeConfigXML | ( | std::ostream & | out, | |
| const std::string & | plugin_id | |||
| ) | const [inline] |
writes the configuration data for a particular plug-in (as XML)
| out | the ostream to write the configuration tree into | |
| plugin_id | unique identifier associated with the plug-in |
Definition at line 241 of file PluginConfig.hpp.
References pion::platform::ConfigManager::findConfigNodeByAttr(), pion::platform::ConfigManager::ID_ATTRIBUTE_NAME, pion::platform::ConfigManager::m_config_node_ptr, pion::platform::PluginConfig< PluginType >::m_mutex, pion::platform::PluginConfig< PluginType >::m_plugin_element, pion::platform::ConfigManager::writeBeginPionConfigXML(), pion::platform::ConfigManager::writeConfigXML(), and pion::platform::ConfigManager::writeEndPionConfigXML().
| virtual void pion::platform::PluginConfig< PluginType >::writeConfigXML | ( | std::ostream & | out | ) | const [inline, virtual] |
writes the entire configuration tree to an output stream (as XML)
| out | the ostream to write the configuration tree into |
Reimplemented from pion::platform::ConfigManager.
Definition at line 88 of file PluginConfig.hpp.
Referenced by pion::plugins::ConfigService::operator()().
1.4.7