00001 #include "tao/Compression/Compressor_Factory.h"
00002
00003 ACE_RCSID (Compression,
00004 Compressor_Factory,
00005 "$Id: Compressor_Factory.cpp 77390 2007-02-26 13:59:03Z johnnyw $")
00006
00007 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00008
00009 namespace TAO
00010 {
00011 CompressorFactory::CompressorFactory (::Compression::CompressorId
00012 compressor_id) :
00013 compressor_id_ (compressor_id),
00014 compressed_bytes_ (0),
00015 uncompressed_bytes_ (0)
00016 {
00017 }
00018
00019 ::Compression::CompressorId
00020 CompressorFactory::compressor_id (void)
00021 {
00022 return compressor_id_;
00023 }
00024
00025 ::CORBA::ULongLong
00026 CompressorFactory::compressed_bytes (void)
00027 {
00028 ::CORBA::ULongLong return_value;
00029 {
00030 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 0);
00031 return_value = compressed_bytes_;
00032 }
00033 return return_value;
00034 }
00035
00036 ::CORBA::ULongLong
00037 CompressorFactory::uncompressed_bytes (void)
00038 {
00039 ::CORBA::ULongLong return_value;
00040 {
00041 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 0);
00042 return_value = uncompressed_bytes_;
00043 }
00044 return return_value;
00045 }
00046
00047 ::CORBA::Double
00048 CompressorFactory::average_compression (void)
00049 {
00050 ::CORBA::Double return_value = 0.0;
00051 {
00052 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 0);
00053 if (this->uncompressed_bytes_ > 0)
00054 {
00055 return_value = static_cast < ::CORBA::Double>(
00056 (this->uncompressed_bytes_ - this->compressed_bytes_) /
00057 this->uncompressed_bytes_);
00058 }
00059 }
00060 return return_value;
00061 }
00062
00063 void
00064 CompressorFactory::add_sample (::CORBA::ULongLong compressed_bytes,
00065 ::CORBA::ULongLong uncompressed_bytes)
00066 {
00067 ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->mutex_);
00068 this->compressed_bytes_ += compressed_bytes;
00069 this->uncompressed_bytes_ += uncompressed_bytes;
00070 }
00071 }
00072
00073 TAO_END_VERSIONED_NAMESPACE_DECL