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 &);
29  PDBParser &operator=(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: */
void openDocument()
Definition: PDBParser.cpp:132
Definition: EBOOKHTMLToken.h:91
bool m_compressed
Definition: PDBParser.h:53
void handleText(const std::vector< char > &text)
Definition: PDBParser.cpp:168
unsigned m_read
Definition: PDBParser.h:57
Definition: EBOOKCharsetConverter.h:20
unsigned m_recordSize
Definition: PDBParser.h:56
Definition: EBOOKOPFToken.h:52
Definition: PDXParser.h:25
void closeParagraph(bool continuing=false)
Definition: PDBParser.cpp:203
void closeDocument()
Definition: PDBParser.cpp:156
EBOOKDocument::Type type
Definition: EBOOKDocument.cpp:328
Definition: EBOOKHTMLToken.h:259
static bool checkType(unsigned type, unsigned creator)
Definition: PDBParser.cpp:50
virtual ~PDBParser()
Definition: PDBParser.cpp:45
void createConverter(const std::vector< char > &text)
Definition: PDBParser.cpp:117
PDBParser & operator=(const PDBParser &)
virtual void readDataRecord(librevenge::RVNGInputStream *record, bool last)
Definition: PDBParser.cpp:83
Definition: PDBParser.h:25
virtual void readSortInfoRecord(librevenge::RVNGInputStream *record)
Definition: PDBParser.cpp:60
XMLTreeNodePtr_t document
Definition: EBOOKHTMLParser.cpp:169
void handleCharacters(const char *text)
Definition: PDBParser.cpp:211
bool m_openedParagraph
Signalize that a paragraph is split at record break.
Definition: PDBParser.h:68
Definition: CHMParser.cpp:20
unsigned m_recordCount
Definition: PDBParser.h:55
void openParagraph()
Definition: PDBParser.cpp:196
bool m_openedDocument
Definition: PDBParser.h:69
PDBParser(const PDBParser &)
virtual void readIndexRecord(librevenge::RVNGInputStream *record)
Definition: PDBParser.cpp:65
EBOOKCharsetConverter * m_converter
Definition: PDBParser.h:71
unsigned m_textLength
Definition: PDBParser.h:54
virtual void readAppInfoRecord(librevenge::RVNGInputStream *record)
Definition: PDBParser.cpp:55

Generated for libe-book by doxygen 1.8.8