TDParser.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 TDPARSER_H_INCLUDED
11 #define TDPARSER_H_INCLUDED
12 
13 #include <vector>
14 
15 #include "PDXParser.h"
16 
17 
18 namespace libebook
19 {
20 
21 class EBOOKCharsetConverter;
22 
23 class TDTextParser;
24 
25 class TDParser : public PDXParser
26 {
27  // disable copying
28  TDParser(const TDParser &);
30 
31 public:
32  explicit TDParser(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *document = 0);
33  virtual ~TDParser();
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 
48 private:
50  unsigned m_textLength;
51  unsigned m_recordCount;
52  unsigned m_recordSize;
53  unsigned m_read;
54 
56 
59 };
60 
61 }
62 
63 #endif // TDPARSER_H_INCLUDED
64 
65 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libebook::TDParser::readSortInfoRecord
virtual void readSortInfoRecord(librevenge::RVNGInputStream *record)
Definition: TDParser.cpp:530
libebook::TDParser::readAppInfoRecord
virtual void readAppInfoRecord(librevenge::RVNGInputStream *record)
Definition: TDParser.cpp:525
libebook::EBOOKCharsetConverter::guessEncoding
bool guessEncoding(const char *in, unsigned length)
Definition: EBOOKCharsetConverter.cpp:99
libebook::EBOOKCharsetConverter
Definition: EBOOKCharsetConverter.h:21
font
optional< Font > font
Definition: TDParser.cpp:105
libebook::TDParser::m_read
unsigned m_read
Definition: TDParser.h:53
libebook::TDTextParser::finishParagraph
void finishParagraph()
Definition: TDParser.cpp:443
libebook::TDParser::readIndexRecord
virtual void readIndexRecord(librevenge::RVNGInputStream *record)
Definition: TDParser.cpp:535
libebook::TDTextParser::openParagraph
void openParagraph(const TDAttributes &attributes=TDAttributes())
Definition: TDParser.cpp:410
libebook::TDParser::openDocument
void openDocument()
Definition: TDParser.cpp:603
libebook::EBOOKUTF8Stream
Definition: EBOOKUTF8Stream.h:23
libebook::PDXParser::getDocument
librevenge::RVNGTextInterface * getDocument() const
Get the document generator used for this parsing run.
Definition: PDXParser.cpp:123
libebook::EBOOKHTMLToken::get
@ get
Definition: EBOOKHTMLToken.h:285
libebook::TDTextParser::m_text
string m_text
Definition: TDParser.cpp:161
libebook
Definition: CHMParser.cpp:21
libebook::PDXParser
Definition: PDXParser.h:26
libebook::TDParser::m_textLength
unsigned m_textLength
Definition: TDParser.h:50
libebook::TDTextParser
Definition: TDParser.cpp:120
libebook::TDTextParser::SaveAttribute
Definition: TDParser.cpp:129
libebook_utils.h
libebook::TDTextParser::flushText
void flushText(const TDAttributes &attributes=TDAttributes())
Definition: TDParser.cpp:449
PDXLZ77Stream.h
libebook::TDTextParser::parseAttribute
void parseAttribute(const string &name, const string &rawValue, TDAttributes &attributes)
Definition: TDParser.cpp:307
libebook::TDParser::m_converter
EBOOKCharsetConverter * m_converter
Definition: TDParser.h:57
libebook::EBOOKMemoryStream
Definition: EBOOKMemoryStream.h:19
libebook::TDParser::m_compressed
bool m_compressed
Definition: TDParser.h:49
libebook::TDTextParser::TokenMap_t
boost::unordered_map< string, Token > TokenMap_t
Definition: TDParser.cpp:126
libebook::TDTextParser::closeParagraph
void closeParagraph()
Definition: TDParser.cpp:436
libebook::EBOOKHTMLToken::value
@ value
Definition: EBOOKHTMLToken.h:263
libebook::TDParser
Definition: TDParser.h:26
EBOOKMemoryStream.h
libebook::TDParser::m_openedDocument
bool m_openedDocument
Definition: TDParser.h:55
libebook::TDTextParser::SaveAttribute::m_attributeValue
const string & m_attributeValue
Definition: TDParser.cpp:138
libebook::EBOOKOPFToken::creator
@ creator
Definition: EBOOKOPFToken.h:52
libebook::TDTextParser::m_document
librevenge::RVNGTextInterface *const m_document
Definition: TDParser.cpp:159
libebook::TDTextParser::TDTextParser
TDTextParser(const TDTextParser &other)
libebook::TDTextParser::SaveAttribute::m_attributeName
const string & m_attributeName
Definition: TDParser.cpp:137
document
XMLTreeNodePtr_t document
Definition: EBOOKHTMLParser.cpp:169
libebook::EBOOKHTMLToken::text
@ text
Definition: EBOOKHTMLToken.h:259
metadata
RVNGPropertyList metadata
Definition: EBOOKOPFParser.cpp:63
libebook::PDXParser::getDataRecordCount
unsigned getDataRecordCount() const
Return the number of data records in the document.
Definition: PDXParser.cpp:144
libebook::TDParser::operator=
TDParser & operator=(const TDParser &)
libebook::EBOOKHTMLToken::input
@ input
Definition: EBOOKHTMLToken.h:91
libebook::readU16
uint16_t readU16(librevenge::RVNGInputStream *input, bool bigEndian)
Definition: libebook_utils.cpp:55
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::TDParser::TDParser
TDParser(const TDParser &)
name
string name
Definition: CHMStream.cpp:80
libebook::readU32
uint32_t readU32(librevenge::RVNGInputStream *input, bool bigEndian)
Definition: libebook_utils.cpp:71
libebook::TDTextParser::Attributes_t
deque< std::pair< string, string > > Attributes_t
Definition: TDParser.cpp:125
libebook::TDParser::checkType
static bool checkType(unsigned type, unsigned creator)
Definition: TDParser.cpp:520
m_attributes
PLKRAttributes m_attributes
Definition: PLKRParser.cpp:913
EBOOKUTF8Stream.h
EBOOKCharsetConverter.h
libebook::TDTextParser::SaveAttribute::m_attributes
Attributes_t & m_attributes
Definition: TDParser.cpp:136
libebook::TDParser::readDataRecord
virtual void readDataRecord(librevenge::RVNGInputStream *record, bool last)
Definition: TDParser.cpp:550
EBOOK_DEBUG_MSG
#define EBOOK_DEBUG_MSG(M)
Definition: libebook_utils.h:73
TDParser.h
libebook::TDTextParser::parseHeaderTag
bool parseHeaderTag(const Attributes_t &attributeList)
Definition: TDParser.cpp:293
libebook::PDXParser::getName
const char * getName() const
Definition: PDXParser.cpp:128
libebook::TDTextParser::operator=
TDTextParser operator=(const TDTextParser &other)
libebook::TDParser::m_recordCount
unsigned m_recordCount
Definition: TDParser.h:51
libebook::TDParser::m_textParser
TDTextParser * m_textParser
Definition: TDParser.h:58
type
EBOOKDocument::Type type
Definition: EBOOKDocument.cpp:328
libebook::TDParser::closeDocument
void closeDocument()
Definition: TDParser.cpp:627
libebook::TDTextParser::parseTag
bool parseTag(librevenge::RVNGInputStream *input)
Definition: TDParser.cpp:213
libebook::TDParser::createConverter
void createConverter(const std::vector< char > &text)
Definition: TDParser.cpp:588
style
optional< Style > style
Definition: TDParser.cpp:106
PDX_CODE
#define PDX_CODE(s)
Definition: PDXParser.h:18
PDXParser.h
libebook::TDTextParser::parse
void parse(librevenge::RVNGInputStream *input, bool last=false)
Definition: TDParser.cpp:189
libebook::TDTextParser::m_openedParagraph
bool m_openedParagraph
Definition: TDParser.cpp:163
libebook::TDParser::m_recordSize
unsigned m_recordSize
Definition: TDParser.h:52
libebook::TDTextParser::SaveAttribute::operator()
void operator()(const char *first, const char *last) const
Definition: TDParser.cpp:173
libebook::skip
void skip(librevenge::RVNGInputStream *input, unsigned long numBytes)
Definition: libebook_utils.cpp:143
align
optional< Align > align
Definition: TDParser.cpp:107
libebook::GenericException
Definition: libebook_utils.h:132
libebook::TDParser::~TDParser
virtual ~TDParser()
Definition: TDParser.cpp:514

Generated for libe-book by doxygen 1.8.18