Compressor_Factory.cpp

Go to the documentation of this file.
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

Generated on Tue Feb 2 17:42:31 2010 for TAO_Compression by  doxygen 1.4.7