CBZip2Compression Class Reference
[Compression]

Search Toolkit Book for CBZip2Compression

#include <bzip2.hpp>

Inheritance diagram for CBZip2Compression:

Inheritance graph
[legend]
Collaboration diagram for CBZip2Compression:

Collaboration graph
[legend]
List of all members.

Detailed Description

Definition at line 88 of file bzip2.hpp.

Public Types

enum  EFlags { fAllowTransparentRead = (1<<0) }
 Compression/decompression flags. More...

Public Member Functions

 CBZip2Compression (ELevel level=eLevel_Default, int verbosity=0, int work_factor=0, int small_decompress=0)
 Constructor.
virtual ~CBZip2Compression (void)
 Destructor.
virtual CVersionInfo GetVersion (void) const
 Return name and version of the compression library.
virtual ELevel GetLevel (void) const
virtual ELevel GetDefaultLevel (void) const
 Return the default compression level for current compression algorithm.
virtual bool CompressBuffer (const void *src_buf, size_t src_len, void *dst_buf, size_t dst_size, size_t *dst_len)
virtual bool DecompressBuffer (const void *src_buf, size_t src_len, void *dst_buf, size_t dst_size, size_t *dst_len)
virtual bool CompressFile (const string &src_file, const string &dst_file, size_t buf_size=kCompressionDefaultBufSize)
virtual bool DecompressFile (const string &src_file, const string &dst_file, size_t buf_size=kCompressionDefaultBufSize)

Protected Member Functions

const char * GetBZip2ErrorDescription (int errcode)
string FormatErrorMessage (string where, bool use_stream_data=true) const

Protected Attributes

void * m_Stream
int m_Verbosity
int m_WorkFactor
int m_SmallDecompress


Member Enumeration Documentation

enum CBZip2Compression::EFlags
 

Compression/decompression flags.

Enumerator:
fAllowTransparentRead  Allow transparent reading data from buffer/file/stream regardless is it compressed or not.

But be aware, if data source contains broken data and API cannot detect that it is compressed data, that you can get binary instead of decompressed data. By default this flag is OFF.

Definition at line 92 of file bzip2.hpp.


Constructor & Destructor Documentation

CBZip2Compression::CBZip2Compression ELevel  level = eLevel_Default,
int  verbosity = 0,
int  work_factor = 0,
int  small_decompress = 0
 

Constructor.

Definition at line 60 of file bzip2.cpp.

References m_Stream.

CBZip2Compression::~CBZip2Compression void   )  [virtual]
 

Destructor.

Definition at line 74 of file bzip2.cpp.

References STREAM.


Member Function Documentation

bool CBZip2Compression::CompressBuffer const void *  src_buf,
size_t  src_len,
void *  dst_buf,
size_t  dst_size,
size_t *  dst_len
[virtual]
 

Implements ICompression.

Definition at line 98 of file bzip2.cpp.

References BZ2_bzBuffToBuffCompress(), BZ_OK, BZ_PARAM_ERROR, ERR_COMPRESS, FormatErrorMessage(), GetBZip2ErrorDescription(), GetLevel(), kMax_UInt, LIMIT_SIZE_PARAM_U, and CCompression::SetError().

bool CBZip2Compression::CompressFile const string &  src_file,
const string &  dst_file,
size_t  buf_size = kCompressionDefaultBufSize
[virtual]
 

Implements ICompression.

Definition at line 189 of file bzip2.cpp.

References CCompressionFile::eMode_Write, CCompression::GetFlags(), GetLevel(), m_SmallDecompress, m_Verbosity, m_WorkFactor, CBZip2CompressionFile::Open(), and CCompression::SetFlags().

bool CBZip2Compression::DecompressBuffer const void *  src_buf,
size_t  src_len,
void *  dst_buf,
size_t  dst_size,
size_t *  dst_len
[virtual]
 

Implements ICompression.

Definition at line 140 of file bzip2.cpp.

References BZ2_bzBuffToBuffDecompress(), BZ_DATA_ERROR, BZ_DATA_ERROR_MAGIC, BZ_OK, BZ_PARAM_ERROR, ERR_COMPRESS, F_ISSET, fAllowTransparentRead, FormatErrorMessage(), GetBZip2ErrorDescription(), kMax_UInt, LIMIT_SIZE_PARAM_U, and CCompression::SetError().

bool CBZip2Compression::DecompressFile const string &  src_file,
const string &  dst_file,
size_t  buf_size = kCompressionDefaultBufSize
[virtual]
 

Implements ICompression.

Definition at line 215 of file bzip2.cpp.

References CCompressionFile::eMode_Read, CCompression::GetFlags(), GetLevel(), m_SmallDecompress, m_Verbosity, m_WorkFactor, CBZip2CompressionFile::Open(), and CCompression::SetFlags().

string CBZip2Compression::FormatErrorMessage string  where,
bool  use_stream_data = true
const [protected]
 

Definition at line 264 of file bzip2.cpp.

References CCompression::GetErrorCode(), CCompression::GetErrorDescription(), NStr::IntToString(), STREAM, and NStr::UInt8ToString().

Referenced by CBZip2CompressionFile::Close(), CompressBuffer(), DecompressBuffer(), CBZip2Decompressor::End(), CBZip2Compressor::End(), CBZip2Compressor::Finish(), CBZip2Compressor::Flush(), CBZip2Decompressor::Init(), CBZip2Compressor::Init(), CBZip2CompressionFile::Open(), CBZip2Decompressor::Process(), CBZip2Compressor::Process(), CBZip2CompressionFile::Read(), and CBZip2CompressionFile::Write().

const char * CBZip2Compression::GetBZip2ErrorDescription int  errcode  )  [protected]
 

Definition at line 242 of file bzip2.cpp.

Referenced by CBZip2CompressionFile::Close(), CompressBuffer(), DecompressBuffer(), CBZip2Compressor::End(), CBZip2Compressor::Finish(), CBZip2Compressor::Flush(), CBZip2Decompressor::Init(), CBZip2Compressor::Init(), CBZip2CompressionFile::Open(), CBZip2Decompressor::Process(), CBZip2Compressor::Process(), CBZip2CompressionFile::Read(), and CBZip2CompressionFile::Write().

virtual ELevel CBZip2Compression::GetDefaultLevel void   )  const [inline, virtual]
 

Return the default compression level for current compression algorithm.

Implements ICompression.

Definition at line 122 of file bzip2.hpp.

References ICompression::eLevel_VeryHigh.

CCompression::ELevel CBZip2Compression::GetLevel void   )  const [virtual]
 

Reimplemented from CCompression.

Definition at line 87 of file bzip2.cpp.

References ICompression::eLevel_Lowest, ICompression::eLevel_NoCompression, and CCompression::GetLevel().

Referenced by CompressBuffer(), CompressFile(), DecompressFile(), CBZip2Compressor::Init(), and CBZip2CompressionFile::Open().

CVersionInfo CBZip2Compression::GetVersion void   )  const [virtual]
 

Return name and version of the compression library.

Implements CCompression.

Definition at line 81 of file bzip2.cpp.

References BZ2_bzlibVersion().


Member Data Documentation

int CBZip2Compression::m_SmallDecompress [protected]
 

Definition at line 168 of file bzip2.hpp.

Referenced by CompressFile(), DecompressFile(), CBZip2Decompressor::Init(), and CBZip2CompressionFile::Open().

void* CBZip2Compression::m_Stream [protected]
 

Definition at line 165 of file bzip2.hpp.

Referenced by CBZip2Compression().

int CBZip2Compression::m_Verbosity [protected]
 

Definition at line 166 of file bzip2.hpp.

Referenced by CompressFile(), DecompressFile(), CBZip2Decompressor::Init(), CBZip2Compressor::Init(), and CBZip2CompressionFile::Open().

int CBZip2Compression::m_WorkFactor [protected]
 

Definition at line 167 of file bzip2.hpp.

Referenced by CompressFile(), DecompressFile(), CBZip2Compressor::Init(), and CBZip2CompressionFile::Open().


The documentation for this class was generated from the following files:
Generated on Mon Aug 4 12:05:21 2008 for NCBI C++ ToolKit by  doxygen 1.4.6
Modified on Mon Aug 04 16:26:50 2008 by modify_doxy.py rev. 117643