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
20namespace libebook
21{
22
23struct PeanutPressHeader;
24
26{
27public:
28 typedef std::unordered_map<std::string, std::vector<unsigned char> > ImageMap_t;
29
30public:
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
43private:
44 void readText();
45 void readImages();
46 void readImage(librevenge::RVNGInputStream *record, bool verified = false);
47
48 void openDocument();
49 void closeDocument();
50
51private:
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: */
EBOOKDocument::Type type
Definition: EBOOKDocument.cpp:325
XMLTreeNodePtr_t document
Definition: EBOOKHTMLParser.cpp:163
Definition: PDBParser.h:26
Definition: PeanutPressParser.h:26
void readAppInfoRecord(librevenge::RVNGInputStream *record) override
Definition: PeanutPressParser.cpp:725
void readDataRecord(librevenge::RVNGInputStream *record, bool last=false) override
Definition: PeanutPressParser.cpp:769
std::unique_ptr< PeanutPressHeader > m_header
Definition: PeanutPressParser.h:52
void readDataRecords() override
Definition: PeanutPressParser.cpp:776
void readIndexRecord(librevenge::RVNGInputStream *record) override
Definition: PeanutPressParser.cpp:733
~PeanutPressParser() override
Definition: PeanutPressParser.cpp:716
void openDocument()
Definition: PeanutPressParser.cpp:899
void readSortInfoRecord(librevenge::RVNGInputStream *record) override
Definition: PeanutPressParser.cpp:729
void readImage(librevenge::RVNGInputStream *record, bool verified=false)
Definition: PeanutPressParser.cpp:875
static bool checkType(unsigned type, unsigned creator)
Definition: PeanutPressParser.cpp:720
void readText()
Definition: PeanutPressParser.cpp:782
void closeDocument()
Definition: PeanutPressParser.cpp:905
std::unordered_map< std::string, std::vector< unsigned char > > ImageMap_t
Definition: PeanutPressParser.h:28
void readImages()
Definition: PeanutPressParser.cpp:848
ImageMap_t m_imageMap
Definition: PeanutPressParser.h:53
Definition: BBeBCollector.cpp:19

Generated for libe-book by doxygen 1.9.5