CCompressionProcessor Class Reference
[Compression]

Search Toolkit Book for CCompressionProcessor

#include <compress.hpp>

Inheritance diagram for CCompressionProcessor:

Inheritance graph
[legend]
List of all members.

Detailed Description

Definition at line 281 of file compress.hpp.

Public Types

enum  EStatus {
  eStatus_Success, eStatus_EndOfData, eStatus_Error, eStatus_Overflow,
  eStatus_Repeat, eStatus_Unknown
}
 Type of the result of all basic functions. More...

Public Member Functions

 CCompressionProcessor (void)
virtual ~CCompressionProcessor (void)
bool IsBusy (void) const
unsigned long GetProcessedSize (void)
unsigned long GetOutputSize (void)

Protected Member Functions

virtual EStatus Init (void)=0
virtual EStatus Process (const char *in_buf, size_t in_len, char *out_buf, size_t out_size, size_t *in_avail, size_t *out_avail)=0
virtual EStatus Flush (char *out_buf, size_t out_size, size_t *out_avail)=0
virtual EStatus Finish (char *out_buf, size_t out_size, size_t *out_avail)=0
virtual EStatus End (void)=0
void Reset (void)
void SetBusy (bool busy=true)
void IncreaseProcessedSize (unsigned long n_bytes)
void IncreaseOutputSize (unsigned long n_bytes)

Private Attributes

unsigned long m_ProcessedSize
unsigned long m_OutputSize
bool m_Busy

Friends

class CCompressionStream
class CCompressionStreambuf
class CCompressionStreamProcessor


Member Enumeration Documentation

enum CCompressionProcessor::EStatus
 

Type of the result of all basic functions.

Enumerator:
eStatus_Success  Everything is fine, no errors occurred.
eStatus_EndOfData  Special case of eStatus_Success.

Logical end of (compressed) stream is detected, no errors occurred. All subsequent inquiries about data processing should be ignored.

eStatus_Error  Error has occurred. The error code can be acquired by GetErrorCode().
eStatus_Overflow  Output buffer overflow - not enough output space.

Buffer must be emptied and the last action repeated.

eStatus_Repeat  Special value. Just need to repeat last action.
eStatus_Unknown  Special value, status is undefined.

Definition at line 285 of file compress.hpp.


Constructor & Destructor Documentation

CCompressionProcessor::CCompressionProcessor void   ) 
 

Definition at line 173 of file compress.cpp.

References Reset().

CCompressionProcessor::~CCompressionProcessor void   )  [virtual]
 

Definition at line 180 of file compress.cpp.


Member Function Documentation

virtual EStatus CCompressionProcessor::End void   )  [protected, pure virtual]
 

Implemented in CBZip2Compressor, CBZip2Decompressor, CZipCompressor, and CZipDecompressor.

Referenced by CCompressionStreamProcessor::Init(), and CCompressionStreambuf::~CCompressionStreambuf().

virtual EStatus CCompressionProcessor::Finish char *  out_buf,
size_t  out_size,
size_t *  out_avail
[protected, pure virtual]
 

Implemented in CBZip2Compressor, CBZip2Decompressor, CZipCompressor, and CZipDecompressor.

Referenced by CCompressionStreambuf::Flush().

virtual EStatus CCompressionProcessor::Flush char *  out_buf,
size_t  out_size,
size_t *  out_avail
[protected, pure virtual]
 

Implemented in CBZip2Compressor, CBZip2Decompressor, CZipCompressor, and CZipDecompressor.

Referenced by CCompressionStreambuf::Flush(), and CCompressionStreambuf::ProcessStreamRead().

unsigned long CCompressionProcessor::GetOutputSize void   )  [inline]
 

Definition at line 483 of file compress.hpp.

References m_OutputSize.

Referenced by CCompressionStream::x_GetOutputSize().

unsigned long CCompressionProcessor::GetProcessedSize void   )  [inline]
 

Definition at line 477 of file compress.hpp.

References m_ProcessedSize.

Referenced by CZipDecompressor::End(), CZipCompressor::End(), CZipCompressor::Finish(), CZipCompressor::Flush(), CZipDecompressor::Init(), CZipCompressor::Init(), CZipDecompressor::Process(), CZipCompressor::Process(), and CCompressionStream::x_GetProcessedSize().

void CCompressionProcessor::IncreaseOutputSize unsigned long  n_bytes  )  [inline, protected]
 

Definition at line 471 of file compress.hpp.

References m_OutputSize.

Referenced by CZipCompressor::Finish(), CBZip2Compressor::Finish(), CZipCompressor::Flush(), CBZip2Compressor::Flush(), CZipCompressor::Process(), CBZip2Decompressor::Process(), and CBZip2Compressor::Process().

void CCompressionProcessor::IncreaseProcessedSize unsigned long  n_bytes  )  [inline, protected]
 

Definition at line 465 of file compress.hpp.

References m_ProcessedSize.

Referenced by CZipDecompressor::Process(), CZipCompressor::Process(), CBZip2Decompressor::Process(), and CBZip2Compressor::Process().

virtual EStatus CCompressionProcessor::Init void   )  [protected, pure virtual]
 

Implemented in CBZip2Compressor, CBZip2Decompressor, CZipCompressor, and CZipDecompressor.

Referenced by CCompressionStreamProcessor::Init().

bool CCompressionProcessor::IsBusy void   )  const [inline]
 

Definition at line 449 of file compress.hpp.

References m_Busy.

Referenced by CZipCompressor::Init(), CBZip2Compressor::Init(), CCompressionStreambuf::IsStreamProcessorOkay(), CBZip2Compressor::~CBZip2Compressor(), and CZipDecompressor::~CZipDecompressor().

virtual EStatus CCompressionProcessor::Process const char *  in_buf,
size_t  in_len,
char *  out_buf,
size_t  out_size,
size_t *  in_avail,
size_t *  out_avail
[protected, pure virtual]
 

Implemented in CBZip2Compressor, CBZip2Decompressor, CZipCompressor, and CZipDecompressor.

Referenced by CCompressionStreambuf::ProcessStreamRead(), and CCompressionStreambuf::ProcessStreamWrite().

void CCompressionProcessor::Reset void   )  [inline, protected]
 

Definition at line 441 of file compress.hpp.

References m_Busy, m_OutputSize, and m_ProcessedSize.

Referenced by CCompressionProcessor(), CZipDecompressor::Init(), CZipCompressor::Init(), CBZip2Decompressor::Init(), and CBZip2Compressor::Init().

void CCompressionProcessor::SetBusy bool  busy = true  )  [inline, protected]
 

Definition at line 455 of file compress.hpp.

References m_Busy, and NCBI_THROW.

Referenced by CZipDecompressor::End(), CZipCompressor::End(), CBZip2Decompressor::End(), CBZip2Compressor::End(), CZipDecompressor::Init(), CZipCompressor::Init(), CBZip2Decompressor::Init(), and CBZip2Compressor::Init().


Friends And Related Function Documentation

friend class CCompressionStream [friend]
 

Definition at line 375 of file compress.hpp.

friend class CCompressionStreambuf [friend]
 

Definition at line 376 of file compress.hpp.

friend class CCompressionStreamProcessor [friend]
 

Definition at line 377 of file compress.hpp.


Member Data Documentation

bool CCompressionProcessor::m_Busy [private]
 

Definition at line 372 of file compress.hpp.

Referenced by IsBusy(), Reset(), and SetBusy().

unsigned long CCompressionProcessor::m_OutputSize [private]
 

Definition at line 371 of file compress.hpp.

Referenced by GetOutputSize(), IncreaseOutputSize(), and Reset().

unsigned long CCompressionProcessor::m_ProcessedSize [private]
 

Definition at line 370 of file compress.hpp.

Referenced by GetProcessedSize(), IncreaseProcessedSize(), and Reset().


The documentation for this class was generated from the following files:
Generated on Wed Dec 9 07:52:40 2009 for NCBI C++ ToolKit by  doxygen 1.4.6
Modified on Wed Dec 09 08:19:02 2009 by modify_doxy.py rev. 173732