PeanutPressParser.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 PEANUTPRESSPARSER_H_INCLUDED
11 #define PEANUTPRESSPARSER_H_INCLUDED
12 
13 #include <string>
14 #include <unordered_map>
15 #include <vector>
16 
17 #include "PDBParser.h"
18 
19 
20 namespace libebook
21 {
22 
23 struct PeanutPressHeader;
24 
26 {
27 public:
28  typedef std::unordered_map<std::string, std::vector<unsigned char> > ImageMap_t;
29 
30 public:
31  explicit PeanutPressParser(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *document = nullptr);
32  ~PeanutPressParser() override;
33 
34  static bool checkType(unsigned type, unsigned creator);
35 
36  void readAppInfoRecord(librevenge::RVNGInputStream *record) override;
37  void readSortInfoRecord(librevenge::RVNGInputStream *record) override;
38  void readIndexRecord(librevenge::RVNGInputStream *record) override;
39  void readDataRecord(librevenge::RVNGInputStream *record, bool last = false) override;
40 
41  void readDataRecords() override;
42 
43 private:
44  void readText();
45  void readImages();
46  void readImage(librevenge::RVNGInputStream *record, bool verified = false);
47 
48  void openDocument();
49  void closeDocument();
50 
51 private:
52  std::unique_ptr<PeanutPressHeader> m_header;
54 };
55 
56 } // namespace libebook
57 
58 #endif // PEANUTPRESSPARSER_H_INCLUDED
59 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
std::unordered_map< std::string, std::vector< unsigned char > > ImageMap_t
Definition: PeanutPressParser.h:28
void closeDocument()
Definition: PeanutPressParser.cpp:905
Definition: EBOOKHTMLToken.h:89
std::unique_ptr< PeanutPressHeader > m_header
Definition: PeanutPressParser.h:52
void openDocument()
Definition: PeanutPressParser.cpp:899
void readIndexRecord(librevenge::RVNGInputStream *record) override
Definition: PeanutPressParser.cpp:733
void readImages()
Definition: PeanutPressParser.cpp:848
void readDataRecord(librevenge::RVNGInputStream *record, bool last=false) override
Definition: PeanutPressParser.cpp:769
void readAppInfoRecord(librevenge::RVNGInputStream *record) override
Definition: PeanutPressParser.cpp:725
Definition: EBOOKOPFToken.h:50
EBOOKDocument::Type type
Definition: EBOOKDocument.cpp:325
ImageMap_t m_imageMap
Definition: PeanutPressParser.h:53
void readDataRecords() override
Definition: PeanutPressParser.cpp:776
~PeanutPressParser() override
Definition: PeanutPressParser.cpp:716
Definition: PDBParser.h:25
void readSortInfoRecord(librevenge::RVNGInputStream *record) override
Definition: PeanutPressParser.cpp:729
XMLTreeNodePtr_t document
Definition: EBOOKHTMLParser.cpp:163
PeanutPressParser(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *document=nullptr)
Definition: PeanutPressParser.cpp:702
void readText()
Definition: PeanutPressParser.cpp:782
Definition: BBeBCollector.cpp:18
Definition: PeanutPressParser.h:25
static bool checkType(unsigned type, unsigned creator)
Definition: PeanutPressParser.cpp:720
void readImage(librevenge::RVNGInputStream *record, bool verified=false)
Definition: PeanutPressParser.cpp:875

Generated for libe-book by doxygen 1.8.14