libebook::PDXParser Class Referenceabstract

#include <PDXParser.h>

Inheritance diagram for libebook::PDXParser:
libebook::PDBParser libebook::PLKRParser libebook::PMLParser libebook::TDParser libebook::ZTXTParser

Public Member Functions

virtual ~PDXParser ()=0
 
bool isSupported ()
 Test whether the input document is in supported format. More...
 
bool parse ()
 Parse input and produce output to document. More...
 

Protected Member Functions

 PDXParser (WPXInputStream *input, WPXDocumentInterface *document)
 Instantiate a parser for a document in Palm Database Format. More...
 
WPXDocumentInterface * getDocument () const
 Get the document generator used for this parsing run. More...
 
const char * getName () const
 
WPXInputStream * getAppInfoRecord () const
 Return a stream for the format's appInfo record, if it is present. More...
 
WPXInputStream * getIndexRecord () const
 Return a stream for the format's index record. More...
 
unsigned getDataRecordCount () const
 Return the number of data records in the document. More...
 
WPXInputStream * getDataRecord (unsigned n) const
 Return a stream for the n-th data record. More...
 
WPXInputStream * getDataRecords () const
 Return a stream for all data records. More...
 
WPXInputStream * getDataRecords (unsigned first, unsigned last) const
 Return a stream for data records in a given range. More...
 

Private Member Functions

 PDXParser (const PDXParser &other)
 
PDXParseroperator= (const PDXParser &other)
 
virtual bool isFormatSupported (unsigned type, unsigned creator)=0
 Check whether a specific subformat is supported. More...
 
virtual void readAppInfoRecord (WPXInputStream *record)=0
 
virtual void readSortInfoRecord (WPXInputStream *record)=0
 
virtual void readIndexRecord (WPXInputStream *record)=0
 
virtual void readDataRecord (WPXInputStream *record, bool last=false)=0
 
virtual void readDataRecords ()
 
void readHeader ()
 
WPXInputStream * getRecordStream (unsigned n) const
 

Private Attributes

boost::scoped_ptr< PDXParserImplm_impl
 

Constructor & Destructor Documentation

libebook::PDXParser::PDXParser ( const PDXParser other)
private
libebook::PDXParser::~PDXParser ( )
pure virtual
libebook::PDXParser::PDXParser ( WPXInputStream *  input,
WPXDocumentInterface *  document 
)
protected

Instantiate a parser for a document in Palm Database Format.

  • [in] input input stream
  • [in] document output document generator

Member Function Documentation

WPXInputStream * libebook::PDXParser::getAppInfoRecord ( ) const
protected

Return a stream for the format's appInfo record, if it is present.

A parser for a subformat might want to peek into the appInfo record in isSupported().

Returns
a newly allocated stream spanning the appInfo record or 0, if there is no appInfo record
WPXInputStream * libebook::PDXParser::getDataRecord ( unsigned  n) const
protected

Return a stream for the n-th data record.

  • [in] n the stream number, 0-based
    Returns
    a newly allocated stream spanning one data record

Referenced by libebook::PLKRParser::readDataRecords(), libebook::PMLParser::readImages(), and libebook::PMLParser::readText().

unsigned libebook::PDXParser::getDataRecordCount ( ) const
protected

Return the number of data records in the document.

Returns
the number of data records

Referenced by libebook::PLKRParser::readDataRecords(), libebook::PMLParser::readImages(), and libebook::TDParser::readIndexRecord().

WPXInputStream * libebook::PDXParser::getDataRecords ( ) const
protected

Return a stream for all data records.

Returns
a newly allocated stream spanning all data records

Referenced by libebook::ZTXTParser::readDataRecords(), and libebook::PMLParser::readText().

WPXInputStream * libebook::PDXParser::getDataRecords ( unsigned  first,
unsigned  last 
) const
protected

Return a stream for data records in a given range.

  • [in] first the first data record to include
  • [in] last the first data record not to include
Returns
a newly allocated stream spanning data records in a given range
WPXInputStream * libebook::PDXParser::getIndexRecord ( ) const
protected

Return a stream for the format's index record.

A parser for a subformat might want to peek into the index record in isSupported().

Returns
a newly allocated stream spanning the index record

Referenced by libebook::PMLParser::isFormatSupported(), and libebook::PLKRParser::isFormatSupported().

const char * libebook::PDXParser::getName ( ) const
protected
WPXInputStream * libebook::PDXParser::getRecordStream ( unsigned  n) const
private
virtual bool libebook::PDXParser::isFormatSupported ( unsigned  type,
unsigned  creator 
)
privatepure virtual

Check whether a specific subformat is supported.

type the subformat's type creator the document's creator app.

Returns
true if the subformat is supported

Implemented in libebook::PLKRParser, libebook::PDBParser, libebook::PMLParser, libebook::TDParser, and libebook::ZTXTParser.

Referenced by isSupported().

bool libebook::PDXParser::isSupported ( )

Test whether the input document is in supported format.

This function will typically only read the Palm Database Format header, but it might read the info block too.

Returns
true if the document is supported
PDXParser& libebook::PDXParser::operator= ( const PDXParser other)
private
bool libebook::PDXParser::parse ( )

Parse input and produce output to document.

Returns
true if the input has been parsed successfully.
virtual void libebook::PDXParser::readAppInfoRecord ( WPXInputStream *  record)
privatepure virtual
virtual void libebook::PDXParser::readDataRecord ( WPXInputStream *  record,
bool  last = false 
)
privatepure virtual
void libebook::PDXParser::readDataRecords ( )
privatevirtual

Reimplemented in libebook::PLKRParser, libebook::PMLParser, and libebook::ZTXTParser.

Referenced by parse().

void libebook::PDXParser::readHeader ( )
private

Referenced by isSupported(), and parse().

virtual void libebook::PDXParser::readIndexRecord ( WPXInputStream *  record)
privatepure virtual
virtual void libebook::PDXParser::readSortInfoRecord ( WPXInputStream *  record)
privatepure virtual

Member Data Documentation

boost::scoped_ptr<PDXParserImpl> libebook::PDXParser::m_impl
private

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

Generated for libe-book by doxygen 1.8.5