pion::platform::DatabaseManager Class Reference

#include <DatabaseManager.hpp>

Inherits pion::platform::PluginConfig< PluginType >< pion::platform::Database >.

List of all members.


Detailed Description

DatabaseManager: manages the creation of Databases

Definition at line 37 of file DatabaseManager.hpp.

Public Member Functions

virtual ~DatabaseManager ()
 virtual destructor
 DatabaseManager (const VocabularyManager &vocab_mgr)
DatabasePtr getDatabase (const std::string &database_id)
void setDatabaseConfig (const std::string &database_id, const xmlNodePtr config_ptr)
std::string addDatabase (const xmlNodePtr config_ptr)
void removeDatabase (const std::string &database_id)
void writeDatabaseEnginesXML (std::ostream &out)
xmlDocPtr getDatabaseEngineConfig (const std::string &database_engine, xmlNodePtr &config_detail_ptr)
std::string getPermissionType (void) const
 returns the type attribute used for an XML Permission node pertaining to Databases

Static Public Member Functions

static xmlNodePtr createDatabaseConfig (const char *buf, std::size_t len)

Protected Member Functions

virtual void addPluginNoLock (const std::string &plugin_id, const std::string &plugin_name, const xmlNodePtr config_ptr)

Classes

class  DatabaseNotFoundException
 exception thrown if a Database cannot be found More...


Constructor & Destructor Documentation

pion::platform::DatabaseManager::DatabaseManager ( const VocabularyManager vocab_mgr  )  [explicit]

constructs a new DatabaseManager object

Parameters:
vocab_mgr the global manager of Vocabularies

Definition at line 40 of file DatabaseManager.cpp.

References pion::platform::ConfigManager::setLogger().


Member Function Documentation

std::string pion::platform::DatabaseManager::addDatabase ( const xmlNodePtr  config_ptr  ) 

adds a new managed Database

Parameters:
config_ptr pointer to a list of XML nodes containing Database configuration parameters (must include a Plugin type)
Returns:
std::string the new Database's unique identifier

Definition at line 68 of file DatabaseManager.cpp.

Referenced by pion::plugins::ConfigService::operator()().

virtual void pion::platform::DatabaseManager::addPluginNoLock ( const std::string &  plugin_id,
const std::string &  plugin_name,
const xmlNodePtr  config_ptr 
) [inline, protected, 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().

Parameters:
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

Implements pion::platform::PluginConfig< PluginType >.

Definition at line 139 of file DatabaseManager.hpp.

References pion::platform::Database::setConfig(), pion::platform::PlatformPlugin::setDatabaseManager(), and pion::platform::PlatformPlugin::setId().

static xmlNodePtr pion::platform::DatabaseManager::createDatabaseConfig ( const char *  buf,
std::size_t  len 
) [inline, static]

uses a memory buffer to generate XML configuration data for a Database

Parameters:
buf pointer to a memory buffer containing configuration data
len number of bytes available in the memory buffer
Returns:
xmlNodePtr XML configuration list for the Database

Definition at line 103 of file DatabaseManager.hpp.

References pion::platform::ConfigManager::createResourceConfig().

DatabasePtr pion::platform::DatabaseManager::getDatabase ( const std::string &  database_id  ) 

gets a unique instance of a Database

Parameters:
database_id unique identifier associated with the Database
Returns:
DatabasePtr smart pointer to the Database object (destructs it when finished)

Definition at line 46 of file DatabaseManager.cpp.

References pion::platform::Database::clone(), pion::PluginManager< PLUGIN_TYPE >::get(), pion::platform::PluginConfig< PluginType >::m_mutex, and pion::platform::PluginConfig< PluginType >::m_plugins.

Referenced by pion::platform::DatabaseInserter::start().

xmlDocPtr pion::platform::DatabaseManager::getDatabaseEngineConfig ( const std::string &  database_engine,
xmlNodePtr &  config_detail_ptr 
)

gets the configuration for the specified database engine

Parameters:
database_engine the name of the database engine
config_detail_ptr XML configuration for the database engine

Definition at line 96 of file DatabaseManager.cpp.

References pion::platform::ConfigManager::findConfigNodeByName(), pion::platform::ConfigManager::getConfigFromFile(), pion::platform::ConfigManager::getConfigOption(), pion::platform::ConfigManager::m_logger, and pion::platform::ConfigManager::resolveRelativePath().

void pion::platform::DatabaseManager::removeDatabase ( const std::string &  database_id  ) 

removes a managed Database

Parameters:
database_id unique identifier associated with the Database

Definition at line 73 of file DatabaseManager.cpp.

Referenced by pion::plugins::ConfigService::operator()().

void pion::platform::DatabaseManager::setDatabaseConfig ( const std::string &  database_id,
const xmlNodePtr  config_ptr 
)

sets configuration parameters for a managed Database

Parameters:
database_id unique identifier associated with the Database
config_ptr pointer to a list of XML nodes containing Database configuration parameters

Definition at line 57 of file DatabaseManager.cpp.

Referenced by pion::plugins::ConfigService::operator()().

void pion::platform::DatabaseManager::writeDatabaseEnginesXML ( std::ostream &  out  ) 

writes the entire database engines configuration tree to an output stream (as XML)

Parameters:
out the ostream to write the configuration tree into

Definition at line 83 of file DatabaseManager.cpp.

References pion::platform::ConfigManager::getConfigFromFile(), pion::platform::ConfigManager::m_logger, pion::platform::ConfigManager::resolveRelativePath(), and pion::platform::ConfigManager::writeConfigXML().

Referenced by pion::plugins::ConfigService::operator()().


The documentation for this class was generated from the following files:
Generated on Wed Apr 13 16:38:35 2011 for pion-platform by  doxygen 1.4.7