GreatWksDBParser Class Referencefinal

the main class to read a GreatWorks database file More...

#include <GreatWksDBParser.hxx>

Inheritance diagram for GreatWksDBParser:
MWAWSpreadsheetParser MWAWParser

Public Member Functions

 GreatWksDBParser (MWAWInputStreamPtr const &input, MWAWRSRCParserPtr const &rsrcParser, MWAWHeader *header)
 constructor
 
 ~GreatWksDBParser () final
 destructor
 
bool checkHeader (MWAWHeader *header, bool strict=false) final
 checks if the document header is correct (or not)
 
void parse (librevenge::RVNGSpreadsheetInterface *documentInterface) final
 virtual function used to parse the input
 
- Public Member Functions inherited from MWAWSpreadsheetParser
 ~MWAWSpreadsheetParser () override
 destructor
 
virtual void parse (librevenge::RVNGSpreadsheetInterface *documentInterface)=0
 virtual function used to parse the input
 
- Public Member Functions inherited from MWAWParser
virtual ~MWAWParser ()
 virtual destructor
 
virtual bool checkHeader (MWAWHeader *header, bool strict=false)=0
 virtual function used to check if the document header is correct (or not)
 
int version () const
 returns the works version
 
MWAWParserStatePtr getParserState ()
 returns the parser state
 
MWAWHeadergetHeader ()
 returns the header
 
MWAWInputStreamPtrgetInput ()
 returns the actual input
 
MWAWListenerPtr getMainListener ()
 returns the main listener
 
MWAWGraphicListenerPtrgetGraphicListener ()
 returns the graphic listener
 
MWAWPresentationListenerPtrgetPresentationListener ()
 returns the presentation listener
 
MWAWSpreadsheetListenerPtrgetSpreadsheetListener ()
 returns the spreadsheet listener
 
MWAWTextListenerPtrgetTextListener ()
 returns the text listener
 
MWAWFontConverterPtrgetFontConverter ()
 returns the font converter
 
MWAWFontManagerPtrgetFontManager ()
 returns the font manager
 
MWAWPageSpan const & getPageSpan () const
 returns the actual page dimension
 
MWAWPageSpangetPageSpan ()
 returns the actual page dimension
 
double getFormLength () const
 returns the form length
 
double getFormWidth () const
 returns the form width
 
double getPageLength () const
 returns the page length (form length without margin )
 
double getPageWidth () const
 returns the page width (form width without margin )
 
MWAWRSRCParserPtrgetRSRCParser ()
 returns the rsrc parser
 
libmwaw::DebugFileascii ()
 a DebugFile used to write what we recognize when we parse the document
 

Protected Member Functions

void init ()
 inits all internal variables
 
void createDocument (librevenge::RVNGSpreadsheetInterface *documentInterface)
 creates the listener which will be associated to the document
 
bool sendDatabase ()
 try to send the main database
 
bool sendHF (int id)
 try to send the i^th header/footer
 
bool createZones ()
 finds the different objects zones
 
bool readDatabase ()
 read the database block
 
bool readHeader ()
 try to read the database header: list of zones, ...
 
bool readFields (MWAWEntry const &zone)
 try to read the fields' zone
 
bool readField (GreatWksDBParserInternal::Field &field)
 try to read a field
 
bool readFieldAuxis (MWAWEntry const &zon)
 try to read a field extra v2 zone ( small zone 13)
 
bool readFieldLinks (GreatWksDBParserInternal::Field &field)
 try to read a zone which links a field to zone record
 
bool readFieldRecords (GreatWksDBParserInternal::Field &field)
 try to read a list of records corresponding to field
 
bool readFormLinks (MWAWEntry const &zone)
 try to read the list of form
 
bool readForm (MWAWEntry const &zone)
 try to read a form zone
 
bool readRowLinks (GreatWksDBParserInternal::Block &block)
 try to read row record to small zone link (the 1th big zone)
 
bool readRowRecords (MWAWEntry const &zone)
 try to read a list of records corresponding to a row
 
bool readRecordList (GreatWksDBParserInternal::Block const &block)
 try to read the record list (the 3th big zone)
 
bool readFreeList (GreatWksDBParserInternal::Block &block)
 try to read the free zone list: 0th big zone
 
bool readFormula (long endPos, std::vector< MWAWCellContent::FormulaInstruction > &formula)
 try to read a formula result in field definition
 
bool readFormulaResult (long endPos, GreatWksDBParserInternal::Cell &cell, std::string &extra)
 try to read a formula result in a row content zone
 
bool readIntList (MWAWEntry const &zone, std::vector< int > &list)
 try to read a int's zone
 
bool readSmallZone (MWAWEntry const &zone)
 try to read an unknown small zone, ie. a default reader: type, 0, size, N, dSz
 
bool checkSmallZone (MWAWEntry &zone)
 check if a pointer correspond or not to a small zone entry, if so update the entry
 
std::shared_ptr< GreatWksDBParserInternal::BlockcreateBlock (GreatWksDBParserInternal::BlockHeader &entry)
 try to create a block corresponding to an entry
 
bool readBlock (GreatWksDBParserInternal::Block const &block, int fieldSize)
 try to read a unknown block, knowing the field size
 
bool readZone12 (MWAWEntry const &zone)
 try to read the small zone 12(unknown format, maybe some preferences)
 
bool readBlockHeader2 (GreatWksDBParserInternal::Block const &block)
 try to read the 2th big zone (maybe a list of pointers, but I only see a list of 0:recordId )
 
bool readBlockHeader (GreatWksDBParserInternal::BlockHeader &entry)
 try to read a big block entry
 
- Protected Member Functions inherited from MWAWSpreadsheetParser
 MWAWSpreadsheetParser (MWAWInputStreamPtr const &input, MWAWRSRCParserPtr const &rsrcParser, MWAWHeader *header)
 constructor (protected)
 
 MWAWSpreadsheetParser (MWAWParserStatePtr const &state)
 constructor using a state
 
- Protected Member Functions inherited from MWAWParser
 MWAWParser (MWAWParserState::Type type, MWAWInputStreamPtr const &input, MWAWRSRCParserPtr const &rsrcParser, MWAWHeader *header)
 constructor (protected)
 
 MWAWParser (MWAWParserStatePtr const &state)
 constructor using a state
 
void setVersion (int vers)
 sets the document's version
 
void setGraphicListener (MWAWGraphicListenerPtr &listener)
 sets the graphic listener
 
void resetGraphicListener ()
 resets the listener
 
void setPresentationListener (MWAWPresentationListenerPtr &listener)
 sets the presentation listener
 
void resetPresentationListener ()
 resets the listener
 
void setSpreadsheetListener (MWAWSpreadsheetListenerPtr &listener)
 sets the spreadsheet listener
 
void resetSpreadsheetListener ()
 resets the listener
 
void setTextListener (MWAWTextListenerPtr &listener)
 sets the text listener
 
void resetTextListener ()
 resets the listener
 
void setAsciiName (char const *name)
 Debugging: change the default ascii file.
 
std::string const & asciiName () const
 return the ascii file name
 

Protected Attributes

std::shared_ptr< GreatWksDBParserInternal::Statem_state
 the state
 
std::shared_ptr< GreatWksDocumentm_document
 the document
 

Friends

class GreatWksDBParserInternal::SubDocument
 

Detailed Description

the main class to read a GreatWorks database file

Constructor & Destructor Documentation

◆ GreatWksDBParser()

GreatWksDBParser::GreatWksDBParser ( MWAWInputStreamPtr const &  input,
MWAWRSRCParserPtr const &  rsrcParser,
MWAWHeader header 
)

constructor

◆ ~GreatWksDBParser()

GreatWksDBParser::~GreatWksDBParser ( )
final

destructor

Member Function Documentation

◆ checkHeader()

bool GreatWksDBParser::checkHeader ( MWAWHeader header,
bool  strict = false 
)
finalvirtual

checks if the document header is correct (or not)

Implements MWAWParser.

Referenced by parse().

◆ checkSmallZone()

bool GreatWksDBParser::checkSmallZone ( MWAWEntry zone)
protected

check if a pointer correspond or not to a small zone entry, if so update the entry

Referenced by readFormLinks(), and readHeader().

◆ createBlock()

std::shared_ptr< GreatWksDBParserInternal::Block > GreatWksDBParser::createBlock ( GreatWksDBParserInternal::BlockHeader entry)
protected

try to create a block corresponding to an entry

Referenced by createZones(), and readFieldRecords().

◆ createDocument()

void GreatWksDBParser::createDocument ( librevenge::RVNGSpreadsheetInterface *  documentInterface)
protected

creates the listener which will be associated to the document

Referenced by parse().

◆ createZones()

bool GreatWksDBParser::createZones ( )
protected

finds the different objects zones

Referenced by parse().

◆ init()

void GreatWksDBParser::init ( )
protected

inits all internal variables

Referenced by GreatWksDBParser().

◆ parse()

void GreatWksDBParser::parse ( librevenge::RVNGSpreadsheetInterface *  documentInterface)
finalvirtual

virtual function used to parse the input

Implements MWAWSpreadsheetParser.

◆ readBlock()

bool GreatWksDBParser::readBlock ( GreatWksDBParserInternal::Block const &  block,
int  fieldSize 
)
protected

try to read a unknown block, knowing the field size

◆ readBlockHeader()

bool GreatWksDBParser::readBlockHeader ( GreatWksDBParserInternal::BlockHeader entry)
protected

try to read a big block entry

Referenced by checkHeader(), readFieldLinks(), and readHeader().

◆ readBlockHeader2()

bool GreatWksDBParser::readBlockHeader2 ( GreatWksDBParserInternal::Block const &  block)
protected

try to read the 2th big zone (maybe a list of pointers, but I only see a list of 0:recordId )

Referenced by createZones().

◆ readDatabase()

bool GreatWksDBParser::readDatabase ( )
protected

read the database block

Referenced by createZones().

◆ readField()

bool GreatWksDBParser::readField ( GreatWksDBParserInternal::Field field)
protected

try to read a field

Referenced by readFields().

◆ readFieldAuxis()

bool GreatWksDBParser::readFieldAuxis ( MWAWEntry const &  zon)
protected

try to read a field extra v2 zone ( small zone 13)

Referenced by readDatabase().

◆ readFieldLinks()

bool GreatWksDBParser::readFieldLinks ( GreatWksDBParserInternal::Field field)
protected

try to read a zone which links a field to zone record

Referenced by readDatabase().

◆ readFieldRecords()

bool GreatWksDBParser::readFieldRecords ( GreatWksDBParserInternal::Field field)
protected

try to read a list of records corresponding to field

Referenced by readDatabase().

◆ readFields()

bool GreatWksDBParser::readFields ( MWAWEntry const &  zone)
protected

try to read the fields' zone

Referenced by readDatabase().

◆ readForm()

bool GreatWksDBParser::readForm ( MWAWEntry const &  zone)
protected

try to read a form zone

Referenced by readFormLinks().

◆ readFormLinks()

bool GreatWksDBParser::readFormLinks ( MWAWEntry const &  zone)
protected

try to read the list of form

Referenced by createZones().

◆ readFormula()

bool GreatWksDBParser::readFormula ( long  endPos,
std::vector< MWAWCellContent::FormulaInstruction > &  formula 
)
protected

try to read a formula result in field definition

Referenced by readFields().

◆ readFormulaResult()

bool GreatWksDBParser::readFormulaResult ( long  endPos,
GreatWksDBParserInternal::Cell cell,
std::string &  extra 
)
protected

try to read a formula result in a row content zone

Note
: we fill the cell content, which can overidden later if we find a formula to associate with the cell

Referenced by readRowRecords().

◆ readFreeList()

bool GreatWksDBParser::readFreeList ( GreatWksDBParserInternal::Block block)
protected

try to read the free zone list: 0th big zone

Referenced by createZones().

◆ readHeader()

bool GreatWksDBParser::readHeader ( )
protected

try to read the database header: list of zones, ...

Referenced by createZones().

◆ readIntList()

bool GreatWksDBParser::readIntList ( MWAWEntry const &  zone,
std::vector< int > &  list 
)
protected

try to read a int's zone

Referenced by createZones().

◆ readRecordList()

bool GreatWksDBParser::readRecordList ( GreatWksDBParserInternal::Block const &  block)
protected

try to read the record list (the 3th big zone)

Referenced by createZones().

◆ readRowLinks()

bool GreatWksDBParser::readRowLinks ( GreatWksDBParserInternal::Block block)
protected

try to read row record to small zone link (the 1th big zone)

Referenced by createZones().

◆ readRowRecords()

bool GreatWksDBParser::readRowRecords ( MWAWEntry const &  zone)
protected

try to read a list of records corresponding to a row

Referenced by readDatabase().

◆ readSmallZone()

bool GreatWksDBParser::readSmallZone ( MWAWEntry const &  zone)
protected

try to read an unknown small zone, ie. a default reader: type, 0, size, N, dSz

Referenced by createZones(), and readDatabase().

◆ readZone12()

bool GreatWksDBParser::readZone12 ( MWAWEntry const &  zone)
protected

try to read the small zone 12(unknown format, maybe some preferences)

Referenced by createZones().

◆ sendDatabase()

bool GreatWksDBParser::sendDatabase ( )
protected

try to send the main database

Referenced by parse().

◆ sendHF()

bool GreatWksDBParser::sendHF ( int  id)
protected

try to send the i^th header/footer

Friends And Related Function Documentation

◆ GreatWksDBParserInternal::SubDocument

Member Data Documentation

◆ m_document

std::shared_ptr<GreatWksDocument> GreatWksDBParser::m_document
protected

◆ m_state


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

Generated on Wed May 3 2023 07:18:29 for libmwaw by doxygen 1.9.6