PalmDocParser.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 PALMDOCPARSER_H_INCLUDED
11 #define PALMDOCPARSER_H_INCLUDED
12 
13 #include <memory>
14 #include <vector>
15 
16 #include <librevenge/librevenge.h>
17 
18 #include "PDBParser.h"
19 
20 
21 namespace libebook
22 {
23 
24 class EBOOKCharsetConverter;
25 
26 class PalmDocParser : public PDBParser
27 {
28  // disable copying
31 
32 public:
33  explicit PalmDocParser(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *document = nullptr);
34  ~PalmDocParser() override;
35 
36  static bool checkType(unsigned type, unsigned creator);
37 
38 private:
39  void readAppInfoRecord(librevenge::RVNGInputStream *record) override;
40  void readSortInfoRecord(librevenge::RVNGInputStream *record) override;
41  void readIndexRecord(librevenge::RVNGInputStream *record) override;
42  void readDataRecord(librevenge::RVNGInputStream *record, bool last) override;
43 
44  void createConverter(const std::vector<char> &text);
45 
46  void openDocument();
47  void closeDocument();
48  void handleText(const std::vector<char> &text);
49  void openParagraph();
50  void closeParagraph(bool continuing = false);
51  void handleCharacters(const char *text);
52 
53 private:
55  unsigned m_textLength;
56  unsigned m_recordCount;
57  unsigned m_recordSize;
58  unsigned m_read;
59 
71 
72  std::unique_ptr<EBOOKCharsetConverter> m_converter;
73 };
74 
75 }
76 
77 #endif // PALMDOCPARSER_H_INCLUDED
78 
79 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libebook::PalmDocParser::m_openedParagraph
bool m_openedParagraph
Signalize that a paragraph is split at record break.
Definition: PalmDocParser.h:69
libebook::PalmDocParser::closeParagraph
void closeParagraph(bool continuing=false)
Definition: PalmDocParser.cpp:205
PalmDocParser.h
PDBLZ77Stream.h
libebook::PalmDocParser::openDocument
void openDocument()
Definition: PalmDocParser.cpp:134
libebook::EBOOKCharsetConverter
Definition: EBOOKCharsetConverter.h:22
libebook::PalmDocParser::readIndexRecord
void readIndexRecord(librevenge::RVNGInputStream *record) override
Definition: PalmDocParser.cpp:62
libebook::PalmDocParser::m_textLength
unsigned m_textLength
Definition: PalmDocParser.h:55
libebook::PalmDocParser::m_converter
std::unique_ptr< EBOOKCharsetConverter > m_converter
Definition: PalmDocParser.h:72
libebook::EBOOKOPFToken::creator
@ creator
Definition: EBOOKOPFToken.h:50
libebook
Definition: BBeBCollector.cpp:19
libebook::PDBLZ77Stream
Definition: PDBLZ77Stream.h:21
libebook_utils.h
libebook::PalmDocParser::readDataRecord
void readDataRecord(librevenge::RVNGInputStream *record, bool last) override
Definition: PalmDocParser.cpp:80
text
qi::rule< Iterator, AttrValue_t, qi::space_type > text
Definition: TealDocParser.cpp:232
libebook::getDefaultPageSpanPropList
librevenge::RVNGPropertyList getDefaultPageSpanPropList()
Definition: libebook_utils.cpp:265
libebook::PalmDocParser::readAppInfoRecord
void readAppInfoRecord(librevenge::RVNGInputStream *record) override
Definition: PalmDocParser.cpp:52
libebook::PALMDOC_TYPE
static const unsigned PALMDOC_TYPE
Definition: PalmDocParser.cpp:27
libebook::PalmDocParser::checkType
static bool checkType(unsigned type, unsigned creator)
Definition: PalmDocParser.cpp:47
libebook::PDBParser
Definition: PDBParser.h:26
libebook::PalmDocParser::~PalmDocParser
~PalmDocParser() override
Definition: PalmDocParser.cpp:43
libebook::PALMDOC_CREATOR
static const unsigned PALMDOC_CREATOR
Definition: PalmDocParser.cpp:28
libebook::PalmDocParser::m_compressed
bool m_compressed
Definition: PalmDocParser.h:54
document
XMLTreeNodePtr_t document
Definition: EBOOKHTMLParser.cpp:163
PDBParser.h
metadata
RVNGPropertyList metadata
Definition: EBOOKOPFParser.cpp:63
libebook::PalmDocParser::m_recordCount
unsigned m_recordCount
Definition: PalmDocParser.h:56
libebook::PalmDocParser
Definition: PalmDocParser.h:27
libebook::PalmDocParser::handleCharacters
void handleCharacters(const char *text)
Definition: PalmDocParser.cpp:213
libebook::EBOOKHTMLToken::input
@ input
Definition: EBOOKHTMLToken.h:89
libebook::readU16
uint16_t readU16(librevenge::RVNGInputStream *input, bool bigEndian)
Definition: libebook_utils.cpp:57
libebook::readU8
uint8_t readU8(librevenge::RVNGInputStream *input, bool)
Definition: libebook_utils.cpp:45
libebook::PalmDocParser::m_read
unsigned m_read
Definition: PalmDocParser.h:58
libebook::PalmDocParser::m_recordSize
unsigned m_recordSize
Definition: PalmDocParser.h:57
libebook::readU32
uint32_t readU32(librevenge::RVNGInputStream *input, bool bigEndian)
Definition: libebook_utils.cpp:73
libebook::PalmDocParser::closeDocument
void closeDocument()
Definition: PalmDocParser.cpp:158
name
string name
Definition: HTMLHelpStream.cpp:80
libebook::PDBParser::getDocument
librevenge::RVNGTextInterface * getDocument() const
Get the document generator used for this parsing run.
Definition: PDBParser.cpp:123
libebook::PalmDocParser::m_openedDocument
bool m_openedDocument
Definition: PalmDocParser.h:70
libebook::PDBParser::getName
const char * getName() const
Definition: PDBParser.cpp:128
libebook::PalmDocParser::createConverter
void createConverter(const std::vector< char > &text)
Definition: PalmDocParser.cpp:122
EBOOKCharsetConverter.h
libebook::PalmDocParser::handleText
void handleText(const std::vector< char > &text)
Definition: PalmDocParser.cpp:170
libebook::PalmDocParser::PalmDocParser
PalmDocParser(const PalmDocParser &)
EBOOK_DEBUG_MSG
#define EBOOK_DEBUG_MSG(M)
Definition: libebook_utils.h:44
libebook::PalmDocParser::openParagraph
void openParagraph()
Definition: PalmDocParser.cpp:198
type
EBOOKDocument::Type type
Definition: EBOOKDocument.cpp:325
PDB_CODE
#define PDB_CODE(s)
Definition: PDBParser.h:18
libebook::PalmDocParser::operator=
PalmDocParser & operator=(const PalmDocParser &)
libebook::skip
void skip(librevenge::RVNGInputStream *input, unsigned long numBytes)
Definition: libebook_utils.cpp:145
libebook::PalmDocParser::readSortInfoRecord
void readSortInfoRecord(librevenge::RVNGInputStream *record) override
Definition: PalmDocParser.cpp:57
libebook::GenericException
Definition: libebook_utils.h:106

Generated for libe-book by doxygen 1.8.20