#include <Compression_Manager.h>
Private Member Functions | |
virtual void | register_factory (::Compression::CompressorFactory_ptr compressor_factory) |
virtual void | unregister_factory (::Compression::CompressorId compressor_id) |
virtual ::Compression::CompressorFactory_ptr | get_factory (::Compression::CompressorId compressor_id) |
virtual ::Compression::Compressor_ptr | get_compressor (::Compression::CompressorId compressor_id,::Compression::CompressionLevel compression_level) |
virtual ::Compression::CompressorFactorySeq * | get_factories (void) |
Private Attributes | |
TAO_SYNCH_MUTEX | mutex_ |
::Compression::CompressorFactorySeq | factories_ |
Definition at line 31 of file Compression_Manager.h.
Compression::Compressor_ptr TAO::CompressionManager::get_compressor | ( | ::Compression::CompressorId | compressor_id, | |
::Compression::CompressionLevel | compression_level | |||
) | [private] |
Definition at line 97 of file Compression_Manager.cpp.
{ ::Compression::CompressorFactory_var factory = this->get_factory ( compressor_id); return factory->get_compressor (compression_level); }
Compression::CompressorFactorySeq * TAO::CompressionManager::get_factories | ( | void | ) | [private] |
Definition at line 109 of file Compression_Manager.cpp.
{ // todo return 0; }
Compression::CompressorFactory_ptr TAO::CompressionManager::get_factory | ( | ::Compression::CompressorId | compressor_id | ) | [private] |
Definition at line 72 of file Compression_Manager.cpp.
{ ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, ::Compression::CompressorFactory::_nil ()); CORBA::ULong const length = this->factories_.length (); for (CORBA::ULong i = 0; i < length; ++i) { ::Compression::CompressorId const current = this->factories_[i]->compressor_id (); if (current != compressor_id) { continue; } return ::Compression::CompressorFactory::_duplicate ( this->factories_[i]); } throw ::Compression::UnknownCompressorId (); }
void TAO::CompressionManager::register_factory | ( | ::Compression::CompressorFactory_ptr | compressor_factory | ) | [private, virtual] |
Definition at line 15 of file Compression_Manager.cpp.
{ if (!::CORBA::is_nil (compressor_factory)) { ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->mutex_); CORBA::ULong const length = this->factories_.length (); for (CORBA::ULong i = 0; i < length; ++i) { ::Compression::CompressorId const current = this->factories_[i]->compressor_id (); if (compressor_factory->compressor_id () == current) { throw ::Compression::FactoryAlreadyRegistered (); } } factories_.length (length + 1); factories_[length] = ::Compression::CompressorFactory::_duplicate ( compressor_factory); } else { // @todo Standardize this minor code throw ::CORBA::BAD_PARAM (CORBA::OMGVMCID | 44, CORBA::COMPLETED_NO); } }
void TAO::CompressionManager::unregister_factory | ( | ::Compression::CompressorId | compressor_id | ) | [private, virtual] |
Definition at line 45 of file Compression_Manager.cpp.
{ ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->mutex_); CORBA::ULong const length = this->factories_.length (); for (CORBA::ULong i = 0; i < length; ++i) { ::Compression::CompressorId const current = this->factories_[i]->compressor_id (); if (current != compressor_id) { continue; } this->factories_[i] = ::Compression::CompressorFactory::_nil (); // make sequence smaller return; } // todo exception throw ::Compression::UnknownCompressorId (); }
::Compression::CompressorFactorySeq TAO::CompressionManager::factories_ [private] |
Definition at line 52 of file Compression_Manager.h.
TAO_SYNCH_MUTEX TAO::CompressionManager::mutex_ [private] |
Definition at line 51 of file Compression_Manager.h.