Go to the documentation of this file.00001 #include "tao/Compression/Base_Compressor.h"
00002
00003 ACE_RCSID (Compression,
00004 Base_Compressor,
00005 "$Id: Base_Compressor.cpp 85499 2009-06-04 01:26:17Z mesnier_p $")
00006
00007 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00008
00009 namespace TAO
00010 {
00011 BaseCompressor::BaseCompressor (::Compression::CompressionLevel
00012 compression_level,
00013 ::Compression::CompressorFactory_ptr
00014 compressor_factory)
00015 : compression_level_ (compression_level),
00016 compressor_factory_ (::Compression::CompressorFactory::_duplicate (
00017 compressor_factory)),
00018 compressed_bytes_ (0),
00019 uncompressed_bytes_ (0)
00020 {
00021 }
00022
00023 ::Compression::CompressorFactory_ptr
00024 BaseCompressor::compressor_factory (void)
00025 {
00026 return ::Compression::CompressorFactory::_duplicate (
00027 compressor_factory_.in ());
00028 }
00029
00030 ::Compression::CompressionLevel
00031 BaseCompressor::compression_level (void)
00032 {
00033 return compression_level_;
00034 }
00035
00036 ::CORBA::ULongLong
00037 BaseCompressor::compressed_bytes (void)
00038 {
00039 ::CORBA::ULongLong return_value = 0;
00040 {
00041 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 0);
00042 return_value = compressed_bytes_;
00043 }
00044 return return_value;
00045 }
00046
00047 ::CORBA::ULongLong
00048 BaseCompressor::uncompressed_bytes (void)
00049 {
00050 ::CORBA::ULongLong return_value = 0;
00051 {
00052 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 0);
00053 return_value = uncompressed_bytes_;
00054 }
00055 return return_value;
00056 }
00057
00058 ::Compression::CompressionRatio
00059 BaseCompressor::compression_ratio (void)
00060 {
00061 ::Compression::CompressionRatio return_value = 0;
00062 {
00063 ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 0);
00064 if (this->uncompressed_bytes_ > 0)
00065 {
00066
00067 return_value =
00068 static_cast< ::Compression::CompressionRatio>
00069 ((::Compression::CompressionRatio) this->compressed_bytes_ / this->uncompressed_bytes_);
00070 }
00071 }
00072 return return_value;
00073 }
00074
00075 void
00076 BaseCompressor::update_stats (
00077 ::CORBA::ULongLong compressed_bytes,
00078 ::CORBA::ULongLong uncompressed_bytes)
00079 {
00080 ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, this->mutex_);
00081 this->compressed_bytes_ += compressed_bytes;
00082 this->uncompressed_bytes_ += uncompressed_bytes;
00083 }
00084 }
00085
00086 TAO_END_VERSIONED_NAMESPACE_DECL