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