Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef FB2BLOCKCONTEXT_H_INCLUDED
00018 #define FB2BLOCKCONTEXT_H_INCLUDED
00019
00020 #include <string>
00021
00022 #include "FB2ParserContext.h"
00023
00024 namespace libebook
00025 {
00026
00027 class FB2BodyContext : public FB2NodeContextBase
00028 {
00029 public:
00030 FB2BodyContext(FB2ParserContext *parentContext, FB2Collector *collector);
00031
00032 private:
00033 virtual FB2XMLParserContext *element(const EBOOKToken &name, const EBOOKToken &ns);
00034 virtual void startOfElement();
00035 virtual void endOfElement();
00036 virtual void attribute(const EBOOKToken &name, const EBOOKToken *ns, const char *value);
00037 };
00038
00039 class FB2CiteContext : public FB2BlockFormatContextBase
00040 {
00041 public:
00042 FB2CiteContext(FB2ParserContext *parentContext, const FB2BlockFormat &format);
00043
00044 private:
00045 virtual FB2XMLParserContext *element(const EBOOKToken &name, const EBOOKToken &ns);
00046 virtual void endOfElement();
00047 virtual void attribute(const EBOOKToken &name, const EBOOKToken *ns, const char *value);
00048 };
00049
00050 class FB2EmptyLineContext : public FB2DataContextBase
00051 {
00052 public:
00053 explicit FB2EmptyLineContext(FB2ParserContext *parentContext);
00054
00055 private:
00056 virtual void endOfElement();
00057 virtual void attribute(const EBOOKToken &name, const EBOOKToken *ns, const char *value);
00058 };
00059
00060 class FB2EpigraphContext : public FB2BlockFormatContextBase
00061 {
00062 public:
00063 FB2EpigraphContext(FB2ParserContext *parentContext, const FB2BlockFormat &format);
00064
00065 private:
00066 virtual FB2XMLParserContext *element(const EBOOKToken &name, const EBOOKToken &ns);
00067 virtual void endOfElement();
00068 virtual void attribute(const EBOOKToken &name, const EBOOKToken *ns, const char *value);
00069 };
00070
00071 class FB2ImageContext : public FB2NodeContextBase
00072 {
00073 public:
00074 FB2ImageContext(FB2ParserContext *parentContext);
00075
00076 private:
00077 virtual FB2XMLParserContext *element(const EBOOKToken &name, const EBOOKToken &ns);
00078 virtual void endOfElement();
00079 virtual void attribute(const EBOOKToken &name, const EBOOKToken *ns, const char *value);
00080
00081 private:
00082 std::string m_href;
00083 std::string m_altText;
00084 bool m_valid;
00085 };
00086
00087 class FB2PoemContext : public FB2BlockFormatContextBase
00088 {
00089 public:
00090 FB2PoemContext(FB2ParserContext *parentContext, const FB2BlockFormat &format);
00091
00092 private:
00093 virtual FB2XMLParserContext *element(const EBOOKToken &name, const EBOOKToken &ns);
00094 virtual void startOfElement();
00095 virtual void endOfElement();
00096 virtual void attribute(const EBOOKToken &name, const EBOOKToken *ns, const char *value);
00097 };
00098
00099 class FB2SectionContext : public FB2NodeContextBase
00100 {
00101 public:
00102 FB2SectionContext(FB2ParserContext *parentContext);
00103
00104 private:
00105 virtual FB2XMLParserContext *element(const EBOOKToken &name, const EBOOKToken &ns);
00106 virtual void endOfElement();
00107 virtual void attribute(const EBOOKToken &name, const EBOOKToken *ns, const char *value);
00108 };
00109
00110 class FB2StanzaContext : public FB2BlockFormatContextBase
00111 {
00112 public:
00113 FB2StanzaContext(FB2ParserContext *parentContext, const FB2BlockFormat &format);
00114
00115 private:
00116 virtual FB2XMLParserContext *element(const EBOOKToken &name, const EBOOKToken &ns);
00117 virtual void endOfElement();
00118 virtual void attribute(const EBOOKToken &name, const EBOOKToken *ns, const char *value);
00119 };
00120
00121 class FB2TitleContext : public FB2BlockFormatContextBase
00122 {
00123 public:
00124 FB2TitleContext(FB2ParserContext *const parentContext, const FB2BlockFormat &format);
00125
00126 private:
00127 virtual FB2XMLParserContext *element(const EBOOKToken &name, const EBOOKToken &ns);
00128 virtual void endOfElement();
00129 virtual void attribute(const EBOOKToken &name, const EBOOKToken *ns, const char *value);
00130 };
00131
00132 }
00133
00134 #endif // FB2BLOCKCONTEXT_H_INCLUDED
00135
00136