CZipCompressionFile Class Reference
[Compression]

Search Toolkit Book for CZipCompressionFile

#include <zlib.hpp>

Inheritance diagram for CZipCompressionFile:

Inheritance graph
[legend]
Collaboration diagram for CZipCompressionFile:

Collaboration graph
[legend]
List of all members.

Detailed Description

CZipCompressionFile --.

Allow read/write operations on files in zlib or gzip (.gz) formats. Throw exceptions on critical errors.

Definition at line 333 of file zlib.hpp.

Public Member Functions

 CZipCompressionFile (const string &file_name, EMode mode, ELevel level=eLevel_Default, int window_bits=kZlibDefaultWbits, int mem_level=kZlibDefaultMemLevel, int strategy=kZlibDefaultStrategy)
 Constructor.
 CZipCompressionFile (ELevel level=eLevel_Default, int window_bits=kZlibDefaultWbits, int mem_level=kZlibDefaultMemLevel, int strategy=kZlibDefaultStrategy)
 Conventional constructor.
 ~CZipCompressionFile (void)
 Destructor.
virtual bool Open (const string &file_name, EMode mode)
 Opens a compressed file for reading or writing.
virtual bool Open (const string &file_name, EMode mode, SFileInfo *info)
 Opens a compressed file for reading or writing.
virtual long Read (void *buf, size_t len)
 Read data from compressed file.
virtual long Write (const void *buf, size_t len)
 Write data to compressed file.
virtual bool Close (void)
 Close compressed file.

Private Attributes

EMode m_Mode
 I/O mode (read/write).
CNcbiFstreamm_File
 File stream.
CCompressionIOStreamm_Zip
 [De]comression stream.


Constructor & Destructor Documentation

CZipCompressionFile::CZipCompressionFile const string &  file_name,
EMode  mode,
ELevel  level = eLevel_Default,
int  window_bits = kZlibDefaultWbits,
int  mem_level = kZlibDefaultMemLevel,
int  strategy = kZlibDefaultStrategy
 

Constructor.

For a special parameters description see CZipCompression.

Definition at line 645 of file zlib.cpp.

References CCompressionFile::eMode_Read, CZipCompression::fCheckFileHeader, CZipCompression::fWriteGZipFormat, CCompression::GetFlags(), NCBI_THROW, Open(), and CCompression::SetFlags().

CZipCompressionFile::CZipCompressionFile ELevel  level = eLevel_Default,
int  window_bits = kZlibDefaultWbits,
int  mem_level = kZlibDefaultMemLevel,
int  strategy = kZlibDefaultStrategy
 

Conventional constructor.

For a special parameters description see CZipCompression.

Definition at line 664 of file zlib.cpp.

References CZipCompression::fCheckFileHeader, CZipCompression::fWriteGZipFormat, CCompression::GetFlags(), and CCompression::SetFlags().

CZipCompressionFile::~CZipCompressionFile void   ) 
 

Destructor.

Definition at line 675 of file zlib.cpp.

References Close().


Member Function Documentation

bool CZipCompressionFile::Close void   )  [virtual]
 

Close compressed file.

Flushes all pending output if necessary, closes the compressed file.

Returns:
TRUE on success, FALSE on error.
See also:
Open, Read, Write

Implements CCompressionFile.

Definition at line 809 of file zlib.cpp.

References CCompressionStream::Finalize(), m_File, and m_Zip.

Referenced by Open(), and ~CZipCompressionFile().

bool CZipCompressionFile::Open const string &  file_name,
EMode  mode,
SFileInfo *  info
[virtual]
 

Opens a compressed file for reading or writing.

Do the same as standard Open(), but can also get/set file info.

Parameters:
file_name File name of the file to open.
mode File open mode.
info Pointer to file information structure. If it is not NULL, that it will be used to get information about compressed file in the read mode, and set it in the write mode for gzip files.
Returns:
TRUE if file was opened succesfully or FALSE otherwise.
See also:
CZipCompression, Read, Write, Close

Definition at line 688 of file zlib.cpp.

References Close(), CCompressionFile::eMode_Read, m_File, m_Mode, out(), and CCompression::SetError().

bool CZipCompressionFile::Open const string &  file_name,
EMode  mode
[virtual]
 

Opens a compressed file for reading or writing.

For reading/writing gzip (.gz) files the appropriate CZipCompression::EFlags flags should be set before Open() call.

Parameters:
file_name File name of the file to open.
mode File open mode.
Returns:
TRUE if file was opened succesfully or FALSE otherwise.
See also:
CZipCompression, Read, Write, Close

Definition at line 682 of file zlib.cpp.

Referenced by CZipCompression::CompressFile(), CZipCompressionFile(), CZipCompression::DecompressFile(), and CZipCompression::DecompressFileIntoDir().

long CZipCompressionFile::Read void *  buf,
size_t  len
[virtual]
 

Read data from compressed file.

Read up to "len" uncompressed bytes from the compressed file "file" into the buffer "buf".

Parameters:
buf Buffer for requested data.
len Number of bytes to read.
Returns:
Number of bytes actually read (0 for end of file, -1 for error). The number of really readed bytes can be less than requested.
See also:
Open, Write, Close

Implements CCompressionFile.

Definition at line 761 of file zlib.cpp.

References CCompressionFile::eMode_Read, LIMIT_SIZE_PARAM_U, m_Mode, m_Zip, and NCBI_THROW.

long CZipCompressionFile::Write const void *  buf,
size_t  len
[virtual]
 

Write data to compressed file.

Writes the given number of uncompressed bytes from the buffer into the compressed file.

Parameters:
buf Buffer with written data.
len Number of bytes to write.
Returns:
Number of bytes actually written or -1 for error.
See also:
Open, Read, Close

Implements CCompressionFile.

Definition at line 789 of file zlib.cpp.

References CCompressionFile::eMode_Write, LIMIT_SIZE_PARAM_U, m_Mode, m_Zip, and NCBI_THROW.


Member Data Documentation

CNcbiFstream* CZipCompressionFile::m_File [private]
 

File stream.

Reimplemented from CCompressionFile.

Definition at line 430 of file zlib.hpp.

Referenced by Close(), and Open().

EMode CZipCompressionFile::m_Mode [private]
 

I/O mode (read/write).

Reimplemented from CCompressionFile.

Definition at line 429 of file zlib.hpp.

Referenced by Open(), Read(), and Write().

CCompressionIOStream* CZipCompressionFile::m_Zip [private]
 

[De]comression stream.

Definition at line 431 of file zlib.hpp.

Referenced by Close(), Read(), and Write().


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