pion::platform::CodecFactory Class Reference

#include <CodecFactory.hpp>

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

List of all members.


Detailed Description

CodecFactory: manages Pion's Codec plug-ins

Definition at line 37 of file CodecFactory.hpp.

Public Member Functions

virtual ~CodecFactory ()
 virtual destructor
 CodecFactory (const VocabularyManager &vocab_mgr)
CodecPtr getCodec (const std::string &codec_id)
void setCodecConfig (const std::string &codec_id, const xmlNodePtr config_ptr)
std::string addCodec (const xmlNodePtr config_ptr)
void removeCodec (const std::string &codec_id)
std::string getPermissionType (void) const
 returns the type attribute used for an XML Permission node pertaining to Codecs

Static Public Member Functions

static xmlNodePtr createCodecConfig (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  CodecNotFoundException
 exception thrown if a Codec cannot be found More...


Constructor & Destructor Documentation

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

constructs a new CodecFactory object

Parameters:
vocab_mgr the global manager of Vocabularies

Definition at line 35 of file CodecFactory.cpp.

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


Member Function Documentation

std::string pion::platform::CodecFactory::addCodec ( const xmlNodePtr  config_ptr  ) 

adds a new managed Codec

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

Definition at line 64 of file CodecFactory.cpp.

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

virtual void pion::platform::CodecFactory::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 122 of file CodecFactory.hpp.

References pion::platform::PlatformPlugin::setCodecFactory(), pion::platform::Codec::setConfig(), and pion::platform::PlatformPlugin::setId().

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

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

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 Codec

Definition at line 102 of file CodecFactory.hpp.

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

CodecPtr pion::platform::CodecFactory::getCodec ( const std::string &  codec_id  ) 

gets a unique instance of a Codec that may be used for en/decoding

Parameters:
codec_id unique identifier associated with the Codec
Returns:
CodecPtr smart pointer to the Codec object (destructs it when finished)

Definition at line 41 of file CodecFactory.cpp.

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

Referenced by pion::plugins::ScriptReactor::setConfig(), pion::plugins::LogOutputReactor::setConfig(), pion::plugins::FissionReactor::setConfig(), pion::plugins::ScriptReactor::updateCodecs(), pion::plugins::LogOutputReactor::updateCodecs(), and pion::plugins::FissionReactor::updateCodecs().

void pion::platform::CodecFactory::removeCodec ( const std::string &  codec_id  ) 

removes a managed Codec

Parameters:
codec_id unique identifier associated with the Codec

Definition at line 69 of file CodecFactory.cpp.

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

void pion::platform::CodecFactory::setCodecConfig ( const std::string &  codec_id,
const xmlNodePtr  config_ptr 
)

sets configuration parameters for a managed Codec

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

Definition at line 53 of file CodecFactory.cpp.

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