diff options
Diffstat (limited to 'trunk/TAO/tao/Compression/Compressor_Factory.cpp')
-rw-r--r-- | trunk/TAO/tao/Compression/Compressor_Factory.cpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/trunk/TAO/tao/Compression/Compressor_Factory.cpp b/trunk/TAO/tao/Compression/Compressor_Factory.cpp new file mode 100644 index 00000000000..89db794c56f --- /dev/null +++ b/trunk/TAO/tao/Compression/Compressor_Factory.cpp @@ -0,0 +1,87 @@ +#include "tao/Compression/Compressor_Factory.h" + +ACE_RCSID (Compression, + Compressor_Factory, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ +CompressorFactory::CompressorFactory (::Compression::CompressorId compressor_id) : + compressor_id_ (compressor_id), + compressed_bytes_ (0), + uncompressed_bytes_ (0) +{ +} + +::Compression::CompressorId +CompressorFactory::compressor_id (void) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + return compressor_id_; +} + +::CORBA::ULongLong +CompressorFactory::compressed_bytes (void) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + ::CORBA::ULongLong return_value; + { + ACE_Guard <ACE_SYNCH_MUTEX> guard (mutex_); + return_value = compressed_bytes_; + } + return return_value; +} + +::CORBA::ULongLong +CompressorFactory::uncompressed_bytes ( + ) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + ::CORBA::ULongLong return_value; + { + ACE_Guard <ACE_SYNCH_MUTEX> guard (mutex_); + return_value = uncompressed_bytes_; + } + return return_value; +} + +::CORBA::Double +CompressorFactory::average_compression (void) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + ::CORBA::Double return_value = 0.0; + { + ACE_Guard <ACE_SYNCH_MUTEX> guard (mutex_); + if (this->uncompressed_bytes_ > 0) + { + return_value = static_cast < ::CORBA::Double>((this->uncompressed_bytes_ - this->compressed_bytes_) / this->uncompressed_bytes_); + } + } + return return_value; +} + +void +CompressorFactory::add_sample ( + ::CORBA::ULongLong compressed_bytes, + ::CORBA::ULongLong uncompressed_bytes) + ACE_THROW_SPEC (( + ::CORBA::SystemException + )) +{ + ACE_Guard <ACE_SYNCH_MUTEX> guard (mutex_); + this->compressed_bytes_ += compressed_bytes; + this->uncompressed_bytes_ += uncompressed_bytes; +} +} + +TAO_END_VERSIONED_NAMESPACE_DECL |