PDBParser.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is part of the libe-book project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #ifndef PDBPARSER_H_INCLUDED
11 #define PDBPARSER_H_INCLUDED
12 
13 #include <vector>
14 
15 #include <librevenge/librevenge.h>
16 
17 #include "PDXParser.h"
18 
19 
20 namespace libebook
21 {
22 
23 class EBOOKCharsetConverter;
24 
25 class PDBParser : public PDXParser
26 {
27  // disable copying
28  PDBParser(const PDBParser &);
30 
31 public:
32  explicit PDBParser(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *document = 0);
33  virtual ~PDBParser();
34 
35  static bool checkType(unsigned type, unsigned creator);
36 
37 private:
38  virtual void readAppInfoRecord(librevenge::RVNGInputStream *record);
39  virtual void readSortInfoRecord(librevenge::RVNGInputStream *record);
40  virtual void readIndexRecord(librevenge::RVNGInputStream *record);
41  virtual void readDataRecord(librevenge::RVNGInputStream *record, bool last);
42 
43  void createConverter(const std::vector<char> &text);
44 
45  void openDocument();
46  void closeDocument();
47  void handleText(const std::vector<char> &text);
48  void openParagraph();
49  void closeParagraph(bool continuing = false);
50  void handleCharacters(const char *text);
51 
52 private:
54  unsigned m_textLength;
55  unsigned m_recordCount;
56  unsigned m_recordSize;
57  unsigned m_read;
58 
70 
72 };
73 
74 }
75 
76 #endif // PDBPARSER_H_INCLUDED
77 
78 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libebook::PDBParser::readIndexRecord
virtual void readIndexRecord(librevenge::RVNGInputStream *record)
Definition: PDBParser.cpp:65
libebook::PDB_TYPE
static const unsigned PDB_TYPE
Definition: PDBParser.cpp:29
libebook::EBOOKCharsetConverter::guessEncoding
bool guessEncoding(const char *in, unsigned length)
Definition: EBOOKCharsetConverter.cpp:99
libebook::EBOOKCharsetConverter
Definition: EBOOKCharsetConverter.h:21
libebook::PDBParser::m_openedParagraph
bool m_openedParagraph
Signalize that a paragraph is split at record break.
Definition: PDBParser.h:68
libebook::PDBParser::m_textLength
unsigned m_textLength
Definition: PDBParser.h:54
libebook::PDBParser::openParagraph
void openParagraph()
Definition: PDBParser.cpp:196
libebook::PDBParser::m_recordSize
unsigned m_recordSize
Definition: PDBParser.h:56
libebook::PDBParser::closeDocument
void closeDocument()
Definition: PDBParser.cpp:156
libebook::PDBParser::PDBParser
PDBParser(const PDBParser &)
libebook::PDBParser::operator=
PDBParser & operator=(const PDBParser &)
libebook::PDXParser::getDocument
librevenge::RVNGTextInterface * getDocument() const
Get the document generator used for this parsing run.
Definition: PDXParser.cpp:123
libebook
Definition: CHMParser.cpp:21
libebook::PDBParser::m_converter
EBOOKCharsetConverter * m_converter
Definition: PDBParser.h:71
libebook::PDXParser
Definition: PDXParser.h:26
libebook_utils.h
PDXLZ77Stream.h
libebook::PDBParser::closeParagraph
void closeParagraph(bool continuing=false)
Definition: PDBParser.cpp:203
libebook::PDBParser::checkType
static bool checkType(unsigned type, unsigned creator)
Definition: PDBParser.cpp:50
libebook::PDBParser::m_openedDocument
bool m_openedDocument
Definition: PDBParser.h:69
libebook::PDBParser
Definition: PDBParser.h:26
libebook::PDBParser::handleText
void handleText(const std::vector< char > &text)
Definition: PDBParser.cpp:168
libebook::PDBParser::openDocument
void openDocument()
Definition: PDBParser.cpp:132
libebook::PDB_CREATOR
static const unsigned PDB_CREATOR
Definition: PDBParser.cpp:30
libebook::EBOOKOPFToken::creator
@ creator
Definition: EBOOKOPFToken.h:52
libebook::PDBParser::m_compressed
bool m_compressed
Definition: PDBParser.h:53
document
XMLTreeNodePtr_t document
Definition: EBOOKHTMLParser.cpp:169
libebook::EBOOKHTMLToken::text
@ text
Definition: EBOOKHTMLToken.h:259
libebook::PDBParser::createConverter
void createConverter(const std::vector< char > &text)
Definition: PDBParser.cpp:117
PDBParser.h
metadata
RVNGPropertyList metadata
Definition: EBOOKOPFParser.cpp:63
libebook::EBOOKHTMLToken::input
@ input
Definition: EBOOKHTMLToken.h:91
libebook::readU16
uint16_t readU16(librevenge::RVNGInputStream *input, bool bigEndian)
Definition: libebook_utils.cpp:55
libebook::PDBParser::handleCharacters
void handleCharacters(const char *text)
Definition: PDBParser.cpp:211
libebook::EBOOKCharsetConverter::convertBytes
bool convertBytes(const char *in, unsigned length, std::vector< char > &out)
Definition: EBOOKCharsetConverter.cpp:117
libebook::readU8
uint8_t readU8(librevenge::RVNGInputStream *input, bool)
Definition: libebook_utils.cpp:43
libebook::PDXLZ77Stream
Definition: PDXLZ77Stream.h:21
libebook::PDBParser::m_read
unsigned m_read
Definition: PDBParser.h:57
libebook::readU32
uint32_t readU32(librevenge::RVNGInputStream *input, bool bigEndian)
Definition: libebook_utils.cpp:71
EBOOKCharsetConverter.h
EBOOK_DEBUG_MSG
#define EBOOK_DEBUG_MSG(M)
Definition: libebook_utils.h:73
libebook::PDXParser::getName
const char * getName() const
Definition: PDXParser.cpp:128
libebook::PDBParser::readSortInfoRecord
virtual void readSortInfoRecord(librevenge::RVNGInputStream *record)
Definition: PDBParser.cpp:60
type
EBOOKDocument::Type type
Definition: EBOOKDocument.cpp:328
PDX_CODE
#define PDX_CODE(s)
Definition: PDXParser.h:18
PDXParser.h
libebook::PDBParser::~PDBParser
virtual ~PDBParser()
Definition: PDBParser.cpp:45
libebook::PDBParser::readDataRecord
virtual void readDataRecord(librevenge::RVNGInputStream *record, bool last)
Definition: PDBParser.cpp:83
libebook::skip
void skip(librevenge::RVNGInputStream *input, unsigned long numBytes)
Definition: libebook_utils.cpp:143
libebook::PDBParser::readAppInfoRecord
virtual void readAppInfoRecord(librevenge::RVNGInputStream *record)
Definition: PDBParser.cpp:55
libebook::GenericException
Definition: libebook_utils.h:132
libebook::PDBParser::m_recordCount
unsigned m_recordCount
Definition: PDBParser.h:55

Generated for libe-book by doxygen 1.8.18