FictionBook2ParserContext.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 FICTIONBOOK2PARSERCONTEXT_H_INCLUDED
11#define FICTIONBOOK2PARSERCONTEXT_H_INCLUDED
12
14#include "FictionBook2Style.h"
15
16namespace libebook
17{
18
20
23class FictionBook2ParserContext : public FictionBook2XMLParserContext, public std::enable_shared_from_this<FictionBook2ParserContext>
24{
25 // no copying
28
29public:
35 explicit FictionBook2ParserContext(std::shared_ptr<FictionBook2ParserContext> parentContext, FictionBook2Collector *collector = nullptr);
36
38
39 std::shared_ptr<FictionBook2XMLParserContext> leaveContext() const override;
40
46
51 std::shared_ptr<FictionBook2ParserContext> getParentContext() const;
52
53private:
55 std::shared_ptr<FictionBook2ParserContext> const m_parentContext;
56};
57
64{
65public:
66 explicit FictionBook2NodeContextBase(std::shared_ptr<FictionBook2ParserContext> parentContext, FictionBook2Collector *collector = nullptr);
67
68private:
69 void startOfElement() override;
70 void endOfAttributes() override;
71 void text(const char *value) override;
72};
73
84{
85public:
86 explicit FictionBook2DataContextBase(std::shared_ptr<FictionBook2ParserContext> parentContext);
87
88private:
89 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
90 void startOfElement() override;
91 void endOfAttributes() override;
92 void text(const char *value) override;
93};
94
101{
102public:
103 explicit FictionBook2TextContextBase(std::shared_ptr<FictionBook2ParserContext> parentContext);
104
105private:
106 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
107 void startOfElement() override;
108 void endOfElement() override;
109 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
110 void endOfAttributes() override;
111};
112
116{
117public:
118 explicit FictionBook2SkipElementContext(std::shared_ptr<FictionBook2ParserContext> parentContext);
119
120private:
121 std::shared_ptr<FictionBook2XMLParserContext> leaveContext() const override;
122
123 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
124 void startOfElement() override;
125 void endOfElement() override;
126 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
127 void endOfAttributes() override;
128 void text(const char *value) override;
129
130private:
131 unsigned m_level;
132};
133
135{
136public:
137 FictionBook2StyleContextBase(std::shared_ptr<FictionBook2ParserContext> parentContext, const FictionBook2Style &style);
138
139protected:
142
143 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
144 void endOfElement() override;
145 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
146 void endOfAttributes() override;
147 void text(const char *value) override;
148
149private:
151};
152
154{
155public:
156 FictionBook2BlockFormatContextBase(std::shared_ptr<FictionBook2ParserContext> parentContext, const FictionBook2BlockFormat &format);
157
160
161 void setLang(const char *lang);
162
163private:
165};
166
167}
168
169#endif // FICTIONBOOK2PARSERCONTEXT_H_INCLUDED
170
171/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
FictionBook2BlockFormat m_format
Definition FictionBook2ParserContext.h:164
FictionBook2BlockFormat & getBlockFormat()
Definition FictionBook2ParserContext.cpp:223
void setLang(const char *lang)
Definition FictionBook2ParserContext.cpp:233
FictionBook2BlockFormatContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2BlockFormat &format)
Definition FictionBook2ParserContext.cpp:217
Definition FictionBook2Collector.h:23
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2ParserContext.cpp:65
void endOfAttributes() override
Signalize the end of attributes.
Definition FictionBook2ParserContext.cpp:74
FictionBook2DataContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext)
Definition FictionBook2ParserContext.cpp:60
void startOfElement() override
Signalize the start of an element.
Definition FictionBook2ParserContext.cpp:70
void endOfAttributes() override
Signalize the end of attributes.
Definition FictionBook2ParserContext.cpp:52
FictionBook2NodeContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext, FictionBook2Collector *collector=nullptr)
Definition FictionBook2ParserContext.cpp:43
void startOfElement() override
Signalize the start of an element.
Definition FictionBook2ParserContext.cpp:48
virtual ~FictionBook2ParserContext()
Definition FictionBook2ParserContext.cpp:24
FictionBook2Collector * getCollector() const
Get the collector.
Definition FictionBook2ParserContext.cpp:33
std::shared_ptr< FictionBook2ParserContext > const m_parentContext
Definition FictionBook2ParserContext.h:55
FictionBook2ParserContext(const FictionBook2ParserContext &other)
FictionBook2Collector *const m_collector
Definition FictionBook2ParserContext.h:54
FictionBook2ParserContext & operator=(const FictionBook2ParserContext &other)
std::shared_ptr< FictionBook2ParserContext > getParentContext() const
Get the parent context.
Definition FictionBook2ParserContext.cpp:38
std::shared_ptr< FictionBook2XMLParserContext > leaveContext() const override
Destroy this context and return parent.
Definition FictionBook2ParserContext.cpp:28
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2ParserContext.cpp:136
FictionBook2SkipElementContext(std::shared_ptr< FictionBook2ParserContext > parentContext)
Definition FictionBook2ParserContext.cpp:108
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2ParserContext.cpp:131
void endOfAttributes() override
Signalize the end of attributes.
Definition FictionBook2ParserContext.cpp:140
std::shared_ptr< FictionBook2XMLParserContext > leaveContext() const override
Destroy this context and return parent.
Definition FictionBook2ParserContext.cpp:114
void startOfElement() override
Signalize the start of an element.
Definition FictionBook2ParserContext.cpp:127
unsigned m_level
Definition FictionBook2ParserContext.h:131
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2ParserContext.cpp:121
FictionBook2Style & getStyle()
Definition FictionBook2ParserContext.cpp:154
FictionBook2StyleContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2Style &style)
Definition FictionBook2ParserContext.cpp:148
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2ParserContext.cpp:196
FictionBook2Style m_style
Definition FictionBook2ParserContext.h:150
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2ParserContext.cpp:164
FictionBook2TextFormat & getTextFormat()
Definition FictionBook2ParserContext.cpp:159
void endOfAttributes() override
Signalize the end of attributes.
Definition FictionBook2ParserContext.cpp:200
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2ParserContext.cpp:204
Definition FictionBook2Style.h:56
void endOfAttributes() override
Signalize the end of attributes.
Definition FictionBook2ParserContext.cpp:104
FictionBook2TextContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext)
Definition FictionBook2ParserContext.cpp:82
void startOfElement() override
Signalize the start of an element.
Definition FictionBook2ParserContext.cpp:92
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2ParserContext.cpp:87
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2ParserContext.cpp:96
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2ParserContext.cpp:100
Definition FictionBook2XMLParserContext.h:21
@ lang
Definition EBOOKHTMLToken.h:205
@ value
Definition EBOOKHTMLToken.h:261
@ style
Definition EBOOKHTMLToken.h:135
@ name
Definition EBOOKHTMLToken.h:214
@ text
Definition EBOOKHTMLToken.h:257
@ format
Definition EBOOKOPFToken.h:54
Definition BBeBCollector.cpp:20
Definition FictionBook2Style.h:36
Definition FictionBook2Style.h:22
Definition FictionBook2Token.h:134

Generated for libe-book by doxygen 1.16.1