#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.
1.7.0