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
Public Member Functions inherited from MWAWParser
virtual ~MWAWParser ()
 virtual destructor
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 GreatWksDBParserInternal::SubDocument, and 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 GreatWksDBParserInternal::SubDocument, 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(), GreatWksDBParserInternal::SubDocument, and readFieldRecords().

◆ createDocument()

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

creates the listener which will be associated to the document

Referenced by GreatWksDBParserInternal::SubDocument, and parse().

◆ createZones()

bool GreatWksDBParser::createZones ( )
protected

finds the different objects zones

Referenced by GreatWksDBParserInternal::SubDocument, and parse().

◆ init()

void GreatWksDBParser::init ( )
protected

inits all internal variables

Referenced by GreatWksDBParser(), and GreatWksDBParserInternal::SubDocument.

◆ parse()

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

virtual function used to parse the input

Implements MWAWSpreadsheetParser.

Referenced by GreatWksDBParserInternal::SubDocument.

◆ readBlock()

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

try to read a unknown block, knowing the field size

Referenced by GreatWksDBParserInternal::SubDocument.

◆ readBlockHeader()

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

try to read a big block entry

Referenced by checkHeader(), GreatWksDBParserInternal::SubDocument, 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(), and GreatWksDBParserInternal::SubDocument.

◆ readDatabase()

bool GreatWksDBParser::readDatabase ( )
protected

read the database block

Referenced by createZones(), and GreatWksDBParserInternal::SubDocument.

◆ readField()

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

try to read a field

Referenced by GreatWksDBParserInternal::SubDocument, and readFields().

◆ readFieldAuxis()

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

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

Referenced by GreatWksDBParserInternal::SubDocument, and readDatabase().

◆ readFieldLinks()

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

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

Referenced by GreatWksDBParserInternal::SubDocument, and readDatabase().

◆ readFieldRecords()

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

try to read a list of records corresponding to field

Referenced by GreatWksDBParserInternal::SubDocument, and readDatabase().

◆ readFields()

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

try to read the fields' zone

Referenced by GreatWksDBParserInternal::SubDocument, and readDatabase().

◆ readForm()

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

try to read a form zone

Referenced by GreatWksDBParserInternal::SubDocument, and readFormLinks().

◆ readFormLinks()

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

try to read the list of form

Referenced by createZones(), and GreatWksDBParserInternal::SubDocument.

◆ readFormula()

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

try to read a formula result in field definition

Referenced by GreatWksDBParserInternal::SubDocument, and 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 GreatWksDBParserInternal::SubDocument, and readRowRecords().

◆ readFreeList()

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

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

Referenced by createZones(), and GreatWksDBParserInternal::SubDocument.

◆ readHeader()

bool GreatWksDBParser::readHeader ( )
protected

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

Referenced by createZones(), and GreatWksDBParserInternal::SubDocument.

◆ readIntList()

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

try to read a int's zone

Referenced by createZones(), and GreatWksDBParserInternal::SubDocument.

◆ readRecordList()

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

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

Referenced by createZones(), and GreatWksDBParserInternal::SubDocument.

◆ readRowLinks()

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

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

Referenced by createZones(), and GreatWksDBParserInternal::SubDocument.

◆ readRowRecords()

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

try to read a list of records corresponding to a row

Referenced by GreatWksDBParserInternal::SubDocument, and 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(), GreatWksDBParserInternal::SubDocument, 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(), and GreatWksDBParserInternal::SubDocument.

◆ sendDatabase()

bool GreatWksDBParser::sendDatabase ( )
protected

try to send the main database

Referenced by GreatWksDBParserInternal::SubDocument, and parse().

◆ sendHF()

bool GreatWksDBParser::sendHF ( int id)
protected

try to send the i^th header/footer

Referenced by GreatWksDBParserInternal::SubDocument.

◆ 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 Sun Jun 29 2025 04:36:27 for libmwaw by doxygen 1.14.0