CCompressionStream Class Reference
[CompressionStreams]

Search Toolkit Book for CCompressionStream

#include <stream.hpp>

Inheritance diagram for CCompressionStream:

Inheritance graph
[legend]
Collaboration diagram for CCompressionStream:

Collaboration graph
[legend]
List of all members.

Detailed Description

Definition at line 103 of file stream.hpp.

Public Types

typedef int TOwnership
 Bitwise OR of EOwnership.
enum  EDirection { eRead, eWrite, eReadWrite }
 Stream processing direction. More...
enum  EOwnership {
  fOwnStream = (1<<1), fOwnReader = (1<<2), fOwnWriter = (1<<3), fOwnProcessor = fOwnReader + fOwnWriter,
  fOwnAll = fOwnStream + fOwnProcessor
}
 Which of the objects (passed in the constructor) should be deleted on this object's destruction. More...

Public Member Functions

 CCompressionStream (CNcbiIos &stream, CCompressionStreamProcessor *read_sp, CCompressionStreamProcessor *write_sp, TOwnership ownership=0)
 Constructor.
virtual ~CCompressionStream (void)
 Destructor.
virtual void Finalize (CCompressionStream::EDirection dir=CCompressionStream::eReadWrite)
 Finalize stream's compression/decompression process for read/write.

Protected Member Functions

CCompressionProcessor::EStatus x_GetStatus (CCompressionStream::EDirection dir)
 Get status of last compression/decompression stream operation.
unsigned long x_GetProcessedSize (CCompressionStream::EDirection dir)
 Return number of processed bytes.
unsigned long x_GetOutputSize (CCompressionStream::EDirection dir)
 Return number of output bytes.

Protected Attributes

CNcbiIosm_Stream
 Underlying stream.
CCompressionStreambufm_StreamBuf
 Stream buffer.
CCompressionStreamProcessorm_Reader
 Read processor.
CCompressionStreamProcessorm_Writer
 Write processor.
TOwnership m_Ownership
 Bitwise OR of EOwnership.


Member Typedef Documentation

typedef int CCompressionStream::TOwnership
 

Bitwise OR of EOwnership.

Definition at line 124 of file stream.hpp.


Member Enumeration Documentation

enum CCompressionStream::EDirection
 

Stream processing direction.

Enumerator:
eRead  Reading from stream.
eWrite  Writing into stream.
eReadWrite  eRead + eWrite

Definition at line 107 of file stream.hpp.

enum CCompressionStream::EOwnership
 

Which of the objects (passed in the constructor) should be deleted on this object's destruction.

NOTE: if the reader and writer are in fact one object, it will not be deleted twice.

Enumerator:
fOwnStream  Delete the underlying I/O stream.
fOwnReader  Delete the reader.
fOwnWriter  Delete the writer.
fOwnProcessor 
fOwnAll 

Definition at line 117 of file stream.hpp.


Constructor & Destructor Documentation

CCompressionStream::CCompressionStream CNcbiIos stream,
CCompressionStreamProcessor read_sp,
CCompressionStreamProcessor write_sp,
TOwnership  ownership = 0
 

Constructor.

If read/write stream processor is 0 (NULL), that read/write operations on this stream will be unsuccessful.

Definition at line 96 of file stream.cpp.

References auto_ptr< X >::get(), init(), m_StreamBuf, and auto_ptr< X >::release().

CCompressionStream::~CCompressionStream void   )  [virtual]
 

Destructor.

Definition at line 114 of file stream.cpp.

References fOwnReader, fOwnStream, fOwnWriter, m_Ownership, m_Reader, m_Stream, m_StreamBuf, and m_Writer.


Member Function Documentation

void CCompressionStream::Finalize CCompressionStream::EDirection  dir = CCompressionStream::eReadWrite  )  [virtual]
 

Finalize stream's compression/decompression process for read/write.

This function just calls a streambuf Finalize().

Definition at line 148 of file stream.cpp.

References CCompressionStreambuf::Finalize(), and m_StreamBuf.

Referenced by CZipCompressionFile::Close().

unsigned long CCompressionStream::x_GetOutputSize CCompressionStream::EDirection  dir  )  [protected]
 

Return number of output bytes.

Definition at line 178 of file stream.cpp.

References eRead, CCompressionProcessor::GetOutputSize(), CCompressionStreamProcessor::m_Processor, m_Reader, and m_Writer.

Referenced by CCompressionIOStream::GetOutputSize(), CCompressionOStream::GetOutputSize(), and CCompressionIStream::GetOutputSize().

unsigned long CCompressionStream::x_GetProcessedSize CCompressionStream::EDirection  dir  )  [protected]
 

Return number of processed bytes.

Definition at line 167 of file stream.cpp.

References eRead, CCompressionProcessor::GetProcessedSize(), CCompressionStreamProcessor::m_Processor, m_Reader, and m_Writer.

Referenced by CCompressionIOStream::GetProcessedSize(), CCompressionOStream::GetProcessedSize(), and CCompressionIStream::GetProcessedSize().

CCompressionProcessor::EStatus CCompressionStream::x_GetStatus CCompressionStream::EDirection  dir  )  [protected]
 

Get status of last compression/decompression stream operation.

Definition at line 157 of file stream.cpp.

References eRead, CCompressionProcessor::eStatus_Unknown, CCompressionStreamProcessor::m_LastStatus, m_Reader, and m_Writer.

Referenced by CCompressionIOStream::GetStatus(), CCompressionOStream::GetStatus(), and CCompressionIStream::GetStatus().


Member Data Documentation

TOwnership CCompressionStream::m_Ownership [protected]
 

Bitwise OR of EOwnership.

Definition at line 157 of file stream.hpp.

Referenced by ~CCompressionStream().

CCompressionStreamProcessor* CCompressionStream::m_Reader [protected]
 

Read processor.

Definition at line 155 of file stream.hpp.

Referenced by x_GetOutputSize(), x_GetProcessedSize(), x_GetStatus(), and ~CCompressionStream().

CNcbiIos* CCompressionStream::m_Stream [protected]
 

Underlying stream.

Definition at line 153 of file stream.hpp.

Referenced by ~CCompressionStream().

CCompressionStreambuf* CCompressionStream::m_StreamBuf [protected]
 

Stream buffer.

Definition at line 154 of file stream.hpp.

Referenced by CCompressionStream(), Finalize(), and ~CCompressionStream().

CCompressionStreamProcessor* CCompressionStream::m_Writer [protected]
 

Write processor.

Definition at line 156 of file stream.hpp.

Referenced by x_GetOutputSize(), x_GetProcessedSize(), x_GetStatus(), and ~CCompressionStream().


The documentation for this class was generated from the following files:
Generated on Thu Sep 4 02:21:36 2008 for NCBI C++ ToolKit by  doxygen 1.4.6
Modified on Thu Sep 04 03:25:10 2008 by modify_doxy.py rev. 117643