#include <Compression_Manager.h>
Inheritance diagram for TAO::CompressionManager:
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 99 of file Compression_Manager.cpp. References Compression::CompressionLevel, Compression::CompressorId, and get_factory().
00103 { 00104 ::Compression::CompressorFactory_var factory = this->get_factory ( 00105 compressor_id); 00106 00107 return factory->get_compressor (compression_level); 00108 } |
|
List all registered CompressorFactories Implements Compression::CompressionManager. Definition at line 111 of file Compression_Manager.cpp.
00112 { 00113 // todo 00114 return 0; 00115 } |
|
Definition at line 74 of file Compression_Manager.cpp. References ACE_GUARD_RETURN, Compression::CompressorId, factories_, and TAO_SYNCH_MUTEX. Referenced by get_compressor().
00075 { 00076 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 00077 ::Compression::CompressorFactory::_nil ()); 00078 00079 CORBA::ULong const length = this->factories_.length (); 00080 00081 for (CORBA::ULong i = 0; i < length; ++i) 00082 { 00083 ::Compression::CompressorId const current = 00084 this->factories_[i]->compressor_id (); 00085 00086 if (current != compressor_id) 00087 { 00088 continue; 00089 } 00090 00091 return ::Compression::CompressorFactory::_duplicate ( 00092 this->factories_[i]); 00093 } 00094 00095 throw ::Compression::UnknownCompressorId (); 00096 } |
|
Definition at line 15 of file Compression_Manager.cpp. References ACE_GUARD, factories_, and TAO_SYNCH_MUTEX.
00017 { 00018 if (!::CORBA::is_nil (compressor_factory)) 00019 { 00020 ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->mutex_); 00021 00022 CORBA::ULong const length = this->factories_.length (); 00023 00024 for (CORBA::ULong i = 0; i < length; ++i) 00025 { 00026 ::Compression::CompressorId const current = 00027 this->factories_[i]->compressor_id (); 00028 00029 if (compressor_factory->compressor_id () == current) 00030 { 00031 throw ::Compression::FactoryAlreadyRegistered (); 00032 } 00033 } 00034 factories_.length (length + 1); 00035 factories_[length] = ::Compression::CompressorFactory::_duplicate ( 00036 compressor_factory); 00037 } 00038 else 00039 { 00040 // @todo Standardize this minor code 00041 throw ::CORBA::BAD_PARAM (CORBA::OMGVMCID | 44, CORBA::COMPLETED_NO); 00042 } 00043 } |
|
Definition at line 46 of file Compression_Manager.cpp. References ACE_GUARD, Compression::CompressorId, factories_, and TAO_SYNCH_MUTEX.
00048 { 00049 ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->mutex_); 00050 00051 CORBA::ULong const length = this->factories_.length (); 00052 00053 for (CORBA::ULong i = 0; i < length; ++i) 00054 { 00055 ::Compression::CompressorId const current = 00056 this->factories_[i]->compressor_id (); 00057 00058 if (current != compressor_id) 00059 { 00060 continue; 00061 } 00062 00063 this->factories_[i] = ::Compression::CompressorFactory::_nil (); 00064 // make sequence smaller 00065 00066 return; 00067 } 00068 00069 // todo exception 00070 throw ::Compression::UnknownCompressorId (); 00071 } |
|
Definition at line 52 of file Compression_Manager.h. Referenced by get_factory(), register_factory(), and unregister_factory(). |
|
Definition at line 51 of file Compression_Manager.h. |