FB2BlockContext.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 FB2BLOCKCONTEXT_H_INCLUDED
11 #define FB2BLOCKCONTEXT_H_INCLUDED
12 
13 #include <string>
14 
15 #include <boost/optional.hpp>
16 
17 #include "FB2ParserContext.h"
18 
19 namespace libebook
20 {
21 
23 {
24 public:
25  FB2BodyContext(FB2ParserContext *parentContext, FB2Collector *collector, bool collectHeadings);
26 
27 private:
28  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
29  virtual void startOfElement();
30  virtual void endOfElement();
31  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
32 
33 private:
34  const bool m_collectHeadings;
35  boost::optional<std::string> m_lang;
36 };
37 
39 {
40 public:
41  FB2CiteContext(FB2ParserContext *parentContext, const FB2BlockFormat &format);
42 
43 private:
44  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
45  virtual void endOfElement();
46  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
47 };
48 
50 {
51 public:
52  explicit FB2EmptyLineContext(FB2ParserContext *parentContext);
53 
54 private:
55  virtual void endOfElement();
56  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
57 };
58 
60 {
61 public:
63 
64 private:
65  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
66  virtual void endOfElement();
67  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
68 };
69 
71 {
72 public:
73  FB2ImageContext(FB2ParserContext *parentContext);
74 
75 private:
76  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
77  virtual void endOfElement();
78  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
79 
80 private:
81  std::string m_href;
82  std::string m_altText;
83  bool m_valid;
84 };
85 
87 {
88 public:
89  FB2PoemContext(FB2ParserContext *parentContext, const FB2BlockFormat &format);
90 
91 private:
92  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
93  virtual void startOfElement();
94  virtual void endOfElement();
95  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
96 };
97 
99 {
100 public:
101  FB2SectionContext(FB2ParserContext *parentContext, const boost::optional<std::string> &lang);
102  FB2SectionContext(FB2ParserContext *parentContext, uint8_t level, const boost::optional<std::string> &lang);
103 
104 private:
105  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
106  virtual void endOfElement();
107  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
108 
110 
111 private:
112  // The level of the section. A section directly in body is at level 1.
113  boost::optional<uint8_t> m_level;
114  boost::optional<std::string> m_lang;
115 };
116 
118 {
119 public:
120  FB2StanzaContext(FB2ParserContext *parentContext, const FB2BlockFormat &format);
121 
122 private:
123  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
124  virtual void endOfElement();
125  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
126 };
127 
129 {
130 public:
131  FB2TitleContext(FB2ParserContext *const parentContext, const FB2BlockFormat &format);
132 
133 private:
134  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
135  virtual void endOfElement();
136  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
137 };
138 
139 }
140 
141 #endif // FB2BLOCKCONTEXT_H_INCLUDED
142 
143 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Definition: EBOOKHTMLToken.h:263
std::string m_altText
Definition: FB2BlockContext.h:82
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2BlockContext.cpp:292
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2BlockContext.cpp:102
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2BlockContext.cpp:125
Base class for non-leaf element contexts.
Definition: FB2ParserContext.h:61
FB2PoemContext(FB2ParserContext *parentContext, const FB2BlockFormat &format)
Definition: FB2BlockContext.cpp:256
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2BlockContext.cpp:393
Base class for leaf data element contexts.
Definition: FB2ParserContext.h:81
virtual void startOfElement()
Signalize the start of an element.
Definition: FB2BlockContext.cpp:57
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2BlockContext.cpp:454
Definition: FB2Collector.h:19
Definition: FB2XMLParserContext.h:18
Definition: FB2Token.h:135
FB2TitleContext(FB2ParserContext *const parentContext, const FB2BlockFormat &format)
Definition: FB2BlockContext.cpp:425
FB2EpigraphContext(FB2ParserContext *parentContext, const FB2BlockFormat &format)
Definition: FB2BlockContext.cpp:129
Definition: EBOOKHTMLToken.h:207
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2BlockContext.cpp:134
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2BlockContext.cpp:62
virtual void startOfElement()
Signalize the start of an element.
Definition: FB2BlockContext.cpp:286
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2BlockContext.cpp:296
const bool m_collectHeadings
Definition: FB2BlockContext.h:34
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2BlockContext.cpp:369
Definition: FB2BlockContext.h:128
FB2EmptyLineContext(FB2ParserContext *parentContext)
Definition: FB2BlockContext.cpp:114
boost::optional< std::string > m_lang
Definition: FB2BlockContext.h:114
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2BlockContext.cpp:176
Definition: FB2BlockContext.h:70
boost::optional< std::string > m_lang
Definition: FB2BlockContext.h:35
std::string m_href
Definition: FB2BlockContext.h:81
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2BlockContext.cpp:419
Definition: FB2ParserContext.h:151
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2BlockContext.cpp:318
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2BlockContext.cpp:158
bool m_valid
Definition: FB2BlockContext.h:83
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2BlockContext.cpp:119
string name
Definition: CHMStream.cpp:80
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2BlockContext.cpp:67
FB2ImageContext(FB2ParserContext *parentContext)
Definition: FB2BlockContext.cpp:168
Definition: FB2BlockContext.h:117
Definition: FB2BlockContext.h:98
FB2BlockFormat makeBlockFormat() const
Definition: FB2BlockContext.cpp:377
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2BlockContext.cpp:27
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2BlockContext.cpp:413
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2BlockContext.cpp:191
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2BlockContext.cpp:221
FB2CiteContext(FB2ParserContext *parentContext, const FB2BlockFormat &format)
Definition: FB2BlockContext.cpp:73
FB2SectionContext(FB2ParserContext *parentContext, const boost::optional< std::string > &lang)
Definition: FB2BlockContext.cpp:304
Definition: EBOOKOPFToken.h:56
FB2BodyContext(FB2ParserContext *parentContext, FB2Collector *collector, bool collectHeadings)
Definition: FB2BlockContext.cpp:20
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2BlockContext.cpp:364
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2BlockContext.cpp:106
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2BlockContext.cpp:78
Definition: FB2BlockContext.h:59
Definition: FB2BlockContext.h:49
Definition: CHMParser.cpp:20
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2BlockContext.cpp:431
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2BlockContext.cpp:261
boost::optional< uint8_t > m_level
Definition: FB2BlockContext.h:113
Definition: FB2Style.h:35
FB2StanzaContext(FB2ParserContext *parentContext, const FB2BlockFormat &format)
Definition: FB2BlockContext.cpp:387
Base class for all contexts.
Definition: FB2ParserContext.h:23
Definition: FB2BlockContext.h:22
Definition: FB2BlockContext.h:86
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2BlockContext.cpp:162
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2BlockContext.cpp:449
Definition: FB2BlockContext.h:38

Generated for libe-book by doxygen 1.8.8