pdfobjects::utils::ZlibFilterStreamWriter Class Reference

#include <pdfwriter.h>

Inheritance diagram for pdfobjects::utils::ZlibFilterStreamWriter:
pdfobjects::utils::FilterStreamWriter

List of all members.

Public Member Functions

virtual bool supportObject (const Object &obj) const
virtual void compress (const Object &obj, Ref *ref, StreamWriter &outStream) const

Static Public Member Functions

static boost::shared_ptr
< ZlibFilterStreamWriter
getInstance ()
static unsigned char * deflate_buffer (unsigned char *in, size_t in_size, size_t &size)
static unsigned char * deflate (const Object &obj, size_t &size)

Static Private Member Functions

static void update_dict (const Object &obj)

Static Private Attributes

static boost::shared_ptr
< ZlibFilterStreamWriter
instance

Detailed Description

Implementation of FlateDecode filter stream writer. It is based on zlib implementation of default deflate method.


Member Function Documentation

void pdfobjects::utils::ZlibFilterStreamWriter::compress ( const Object &  obj,
Ref *  ref,
StreamWriter outStream 
) const [virtual]

Writes given stream object to the output stream. Implementation has to follow pdf specification in format of the data writen in the stream. Nevertheless it is absolutely free in how it does it. It can modify given object to use those filters (and all associated parameters) which are then used when data are written.

Parameters:
obj Object to write (must be stream).
ref Indirect reference for object (NULL for direct object).
outStream Output stream where to put data.

Implements pdfobjects::utils::FilterStreamWriter.

References debug::DBG_WARN, deflate(), StreamWriter::putLine(), pdfobjects::utils::streamToCharBuffer(), and utilsPrintDbg.

unsigned char * pdfobjects::utils::ZlibFilterStreamWriter::deflate ( const Object &  obj,
size_t &  size 
) [static]

Stream data extractor implementation for streamToCharBuffer function.

Parameters:
obj Stream object.
size Size of the returned buffer data.
Returns:
allocated buffer with data or NULL on failure.

Uses bufferFromStreamData to get raw data without any filters, compresses returned buffer with the deflate_buffer function and updates given stream object's dictionary to contain proper filter data.

References pdfobjects::utils::convertStreamToDecodedData(), debug::DBG_DBG, deflate_buffer(), update_dict(), and utilsPrintDbg.

Referenced by compress(), and deflate_buffer().

unsigned char * pdfobjects::utils::ZlibFilterStreamWriter::deflate_buffer ( unsigned char *  in,
size_t  in_size,
size_t &  size 
) [static]

Compress given buffer with deflate method.

Parameters:
in Input buffer.
in_size Input buffer size.
size Size of the output buffer data.
Returns:
allocated buffer with the size data bytes or NULL on failure.

Uses zlib interface to deflate given data.

References debug::DBG_CRIT, debug::DBG_DBG, debug::DBG_ERR, deflate(), and utilsPrintDbg.

Referenced by deflate().

boost::shared_ptr< ZlibFilterStreamWriter > pdfobjects::utils::ZlibFilterStreamWriter::getInstance (  )  [static]

References instance.

bool pdfobjects::utils::ZlibFilterStreamWriter::supportObject ( const Object &  obj  )  const [virtual]

Checks whether given stream object is supported by this writer.

Parameters:
obj Stream object.
Returns:
true if no filter FlateDecode are used.

Implements pdfobjects::utils::FilterStreamWriter.

References pdfobjects::utils::getFiltersFromStream().

void pdfobjects::utils::ZlibFilterStreamWriter::update_dict ( const Object &  obj  )  [static, private]

Updates given stream object with the applied fiter data.

Parameters:
obj Stream object.

Only for internal use of ZlibFilterStreamWriter class.

Referenced by deflate().


Member Data Documentation

Shared writer instance

Referenced by getInstance().


The documentation for this class was generated from the following files: