pdfobjects::utils::FilterStreamWriter Class Reference

#include <pdfwriter.h>

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

List of all members.

Public Types

typedef std::vector
< boost::shared_ptr
< FilterStreamWriter > > 
WritersList

Public Member Functions

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

Static Public Member Functions

static boost::shared_ptr
< FilterStreamWriter
getInstance (const Object &objStream)
static void registerFilterStreamWriter (const boost::shared_ptr< FilterStreamWriter > &streamWriter)
static void unregisterFilterStreamWriter (const boost::shared_ptr< FilterStreamWriter > &streamWriter)
static void clearAllFilterStreamWriters ()
static void setDefaultStreamWriter (const boost::shared_ptr< FilterStreamWriter > &defaultWriter)

Static Protected Attributes

static WritersList writers
static boost::shared_ptr
< FilterStreamWriter
defaultWriter

Detailed Description

Base class for filter stream writers. Note that this class - unlike StreamWriter classes defined in streamwriter.h file is not based on xpdf Stream object. Its purpose is to help IPdfWriter class to write stream object into the pdf document.
Use factory getInstance method to get proper filter stream writer implementation for given stream object. Default writer is used if no such implementation is available.


Member Typedef Documentation


Member Function Documentation

void pdfobjects::utils::FilterStreamWriter::clearAllFilterStreamWriters (  )  [static]

Removes all registered filter writers.

References writers.

virtual void pdfobjects::utils::FilterStreamWriter::compress ( const Object &  obj,
Ref *  ref,
StreamWriter outStream 
) const [pure 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.

Implemented in pdfobjects::utils::NullFilterStreamWriter, and pdfobjects::utils::ZlibFilterStreamWriter.

boost::shared_ptr< FilterStreamWriter > pdfobjects::utils::FilterStreamWriter::getInstance ( const Object &  objStream  )  [static]

Finds proper filter stream writer for given obj. If no registered appropriate writer exists, defaultWriter is tried. If neither defaultWriter is ok, NullFilterStreamWriter is used which writes stream object as it is without no filters.

Parameters:
objStream Stream object.
Returns:
Appropriate filter stream writer (never NULL).

References defaultWriter, pdfobjects::utils::NullFilterStreamWriter::getInstance(), pdfobjects::utils::lookupFilterStreamWriter(), and writers.

Referenced by pdfobjects::utils::writeObject().

void pdfobjects::utils::FilterStreamWriter::registerFilterStreamWriter ( const boost::shared_ptr< FilterStreamWriter > &  streamWriter  )  [static]

Adds new filter writer to the registered.

Parameters:
streamwriter Filter stream writer implementation.

References writers.

void pdfobjects::utils::FilterStreamWriter::setDefaultStreamWriter ( const boost::shared_ptr< FilterStreamWriter > &  defaultWriter  )  [static]

Sets default stream writer.

Parameters:
streamWriter Writer to be set.

References defaultWriter.

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

Checks whether this filter writer is able to handle given object. Implementation is absolutely free on which criteria it decides whether it is or not able to handle this object. Usual way, however, is to check Filter entry and check if curren writer is able to write data in given format.

See also:
compress method for more information
Parameters:
obj Object to be written.
Returns:
true if able, false otherwise.

Implemented in pdfobjects::utils::ZlibFilterStreamWriter.

void pdfobjects::utils::FilterStreamWriter::unregisterFilterStreamWriter ( const boost::shared_ptr< FilterStreamWriter > &  streamWriter  )  [static]

Removes already registerd filter writer.

Parameters:
streamWriter Filter stream writer to remove.

References writers.


Member Data Documentation

Default filter stream writer used if no registered can be used.

Referenced by getInstance(), and setDefaultStreamWriter().

List of the registered filter stream writers.

Referenced by clearAllFilterStreamWriters(), getInstance(), registerFilterStreamWriter(), and unregisterFilterStreamWriter().


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