Download NHK English news podcast automatically. XML Parser "spxml" is used. This application requires mpod mother board. See also http://mbed.org/users/geodenx/notebook/mpod/
Dependencies: BlinkLed HTTPClient EthernetInterface FatFileSystemCpp MSCFileSystem spxml mbed-rtos mbed
Fork of mpod_nhk_english by
Download NHK English news podcast automatically.
XML Parser "spxml" is used.
This application requires mpod mother board.
See also http://mbed.org/users/geodenx/notebook/mpod/
spxml/spxmlreader.hpp@4:7dae52cf560f, 2012-08-20 (annotated)
- Committer:
- togayan
- Date:
- Mon Aug 20 13:27:17 2012 +0000
- Revision:
- 4:7dae52cf560f
1st revision
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
togayan | 4:7dae52cf560f | 1 | /* |
togayan | 4:7dae52cf560f | 2 | * Copyright 2007 Stephen Liu |
togayan | 4:7dae52cf560f | 3 | * For license terms, see the file COPYING along with this library. |
togayan | 4:7dae52cf560f | 4 | */ |
togayan | 4:7dae52cf560f | 5 | |
togayan | 4:7dae52cf560f | 6 | #ifndef __spxmlreader_hpp__ |
togayan | 4:7dae52cf560f | 7 | #define __spxmlreader_hpp__ |
togayan | 4:7dae52cf560f | 8 | |
togayan | 4:7dae52cf560f | 9 | class SP_XmlPullParser; |
togayan | 4:7dae52cf560f | 10 | class SP_XmlPullEvent; |
togayan | 4:7dae52cf560f | 11 | class SP_XmlStringBuffer; |
togayan | 4:7dae52cf560f | 12 | |
togayan | 4:7dae52cf560f | 13 | class SP_XmlReader { |
togayan | 4:7dae52cf560f | 14 | public: |
togayan | 4:7dae52cf560f | 15 | enum { MAX_READER = 16 }; |
togayan | 4:7dae52cf560f | 16 | enum { ePI, eDocType, eSTag, eETag, ePCData, |
togayan | 4:7dae52cf560f | 17 | eCDataSection, eComment, eLBracket, eSign }; |
togayan | 4:7dae52cf560f | 18 | |
togayan | 4:7dae52cf560f | 19 | /** |
togayan | 4:7dae52cf560f | 20 | * @param parser : act as reader's context |
togayan | 4:7dae52cf560f | 21 | * @param c : a char in xml stream |
togayan | 4:7dae52cf560f | 22 | */ |
togayan | 4:7dae52cf560f | 23 | virtual void read( SP_XmlPullParser * parser, char c ) = 0; |
togayan | 4:7dae52cf560f | 24 | |
togayan | 4:7dae52cf560f | 25 | /** |
togayan | 4:7dae52cf560f | 26 | * reset reader state |
togayan | 4:7dae52cf560f | 27 | */ |
togayan | 4:7dae52cf560f | 28 | virtual void reset(); |
togayan | 4:7dae52cf560f | 29 | |
togayan | 4:7dae52cf560f | 30 | /** |
togayan | 4:7dae52cf560f | 31 | * convert internal xml string to event |
togayan | 4:7dae52cf560f | 32 | * @return NULL : this reader don't generate any event or error occured |
togayan | 4:7dae52cf560f | 33 | */ |
togayan | 4:7dae52cf560f | 34 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ) = 0; |
togayan | 4:7dae52cf560f | 35 | |
togayan | 4:7dae52cf560f | 36 | protected: |
togayan | 4:7dae52cf560f | 37 | SP_XmlStringBuffer * mBuffer; |
togayan | 4:7dae52cf560f | 38 | |
togayan | 4:7dae52cf560f | 39 | friend class SP_XmlReaderPool; |
togayan | 4:7dae52cf560f | 40 | |
togayan | 4:7dae52cf560f | 41 | SP_XmlReader(); |
togayan | 4:7dae52cf560f | 42 | virtual ~SP_XmlReader(); |
togayan | 4:7dae52cf560f | 43 | |
togayan | 4:7dae52cf560f | 44 | /// help to call parser->changeReader |
togayan | 4:7dae52cf560f | 45 | void changeReader( SP_XmlPullParser * parser, SP_XmlReader * reader ); |
togayan | 4:7dae52cf560f | 46 | |
togayan | 4:7dae52cf560f | 47 | /// help to call parser->getReader |
togayan | 4:7dae52cf560f | 48 | SP_XmlReader * getReader( SP_XmlPullParser * parser, int type ); |
togayan | 4:7dae52cf560f | 49 | |
togayan | 4:7dae52cf560f | 50 | /// help to call parser->setError |
togayan | 4:7dae52cf560f | 51 | static void setError( SP_XmlPullParser * parser, const char * error ); |
togayan | 4:7dae52cf560f | 52 | |
togayan | 4:7dae52cf560f | 53 | private: |
togayan | 4:7dae52cf560f | 54 | SP_XmlReader( SP_XmlReader & ); |
togayan | 4:7dae52cf560f | 55 | SP_XmlReader & operator=( SP_XmlReader & ); |
togayan | 4:7dae52cf560f | 56 | }; |
togayan | 4:7dae52cf560f | 57 | |
togayan | 4:7dae52cf560f | 58 | class SP_XmlPIReader : public SP_XmlReader { |
togayan | 4:7dae52cf560f | 59 | public: |
togayan | 4:7dae52cf560f | 60 | SP_XmlPIReader(); |
togayan | 4:7dae52cf560f | 61 | virtual ~SP_XmlPIReader(); |
togayan | 4:7dae52cf560f | 62 | virtual void read( SP_XmlPullParser * parser, char c ); |
togayan | 4:7dae52cf560f | 63 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ); |
togayan | 4:7dae52cf560f | 64 | |
togayan | 4:7dae52cf560f | 65 | private: |
togayan | 4:7dae52cf560f | 66 | static SP_XmlPullEvent * parseDocDeclEvent( SP_XmlPullParser * parser, |
togayan | 4:7dae52cf560f | 67 | SP_XmlStringBuffer * buffer ); |
togayan | 4:7dae52cf560f | 68 | }; |
togayan | 4:7dae52cf560f | 69 | |
togayan | 4:7dae52cf560f | 70 | class SP_XmlStartTagReader : public SP_XmlReader { |
togayan | 4:7dae52cf560f | 71 | public: |
togayan | 4:7dae52cf560f | 72 | SP_XmlStartTagReader(); |
togayan | 4:7dae52cf560f | 73 | virtual ~SP_XmlStartTagReader(); |
togayan | 4:7dae52cf560f | 74 | virtual void read( SP_XmlPullParser * parser, char c ); |
togayan | 4:7dae52cf560f | 75 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ); |
togayan | 4:7dae52cf560f | 76 | virtual void reset(); |
togayan | 4:7dae52cf560f | 77 | |
togayan | 4:7dae52cf560f | 78 | private: |
togayan | 4:7dae52cf560f | 79 | int mIsQuot; |
togayan | 4:7dae52cf560f | 80 | }; |
togayan | 4:7dae52cf560f | 81 | |
togayan | 4:7dae52cf560f | 82 | class SP_XmlEndTagReader : public SP_XmlReader { |
togayan | 4:7dae52cf560f | 83 | public: |
togayan | 4:7dae52cf560f | 84 | SP_XmlEndTagReader(); |
togayan | 4:7dae52cf560f | 85 | virtual ~SP_XmlEndTagReader(); |
togayan | 4:7dae52cf560f | 86 | virtual void read( SP_XmlPullParser * parser, char c ); |
togayan | 4:7dae52cf560f | 87 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ); |
togayan | 4:7dae52cf560f | 88 | }; |
togayan | 4:7dae52cf560f | 89 | |
togayan | 4:7dae52cf560f | 90 | class SP_XmlPCDataReader : public SP_XmlReader { |
togayan | 4:7dae52cf560f | 91 | public: |
togayan | 4:7dae52cf560f | 92 | SP_XmlPCDataReader(); |
togayan | 4:7dae52cf560f | 93 | virtual ~SP_XmlPCDataReader(); |
togayan | 4:7dae52cf560f | 94 | virtual void read( SP_XmlPullParser * parser, char c ); |
togayan | 4:7dae52cf560f | 95 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ); |
togayan | 4:7dae52cf560f | 96 | }; |
togayan | 4:7dae52cf560f | 97 | |
togayan | 4:7dae52cf560f | 98 | class SP_XmlCDataSectionReader : public SP_XmlReader { |
togayan | 4:7dae52cf560f | 99 | public: |
togayan | 4:7dae52cf560f | 100 | SP_XmlCDataSectionReader(); |
togayan | 4:7dae52cf560f | 101 | virtual ~SP_XmlCDataSectionReader(); |
togayan | 4:7dae52cf560f | 102 | virtual void read( SP_XmlPullParser * parser, char c ); |
togayan | 4:7dae52cf560f | 103 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ); |
togayan | 4:7dae52cf560f | 104 | }; |
togayan | 4:7dae52cf560f | 105 | |
togayan | 4:7dae52cf560f | 106 | class SP_XmlCommentReader : public SP_XmlReader { |
togayan | 4:7dae52cf560f | 107 | public: |
togayan | 4:7dae52cf560f | 108 | SP_XmlCommentReader(); |
togayan | 4:7dae52cf560f | 109 | virtual ~SP_XmlCommentReader(); |
togayan | 4:7dae52cf560f | 110 | virtual void read( SP_XmlPullParser * parser, char c ); |
togayan | 4:7dae52cf560f | 111 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ); |
togayan | 4:7dae52cf560f | 112 | }; |
togayan | 4:7dae52cf560f | 113 | |
togayan | 4:7dae52cf560f | 114 | class SP_XmlDocTypeReader : public SP_XmlReader { |
togayan | 4:7dae52cf560f | 115 | public: |
togayan | 4:7dae52cf560f | 116 | SP_XmlDocTypeReader(); |
togayan | 4:7dae52cf560f | 117 | virtual ~SP_XmlDocTypeReader(); |
togayan | 4:7dae52cf560f | 118 | virtual void read( SP_XmlPullParser * parser, char c ); |
togayan | 4:7dae52cf560f | 119 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ); |
togayan | 4:7dae52cf560f | 120 | }; |
togayan | 4:7dae52cf560f | 121 | |
togayan | 4:7dae52cf560f | 122 | class SP_XmlLeftBracketReader : public SP_XmlReader { |
togayan | 4:7dae52cf560f | 123 | public: |
togayan | 4:7dae52cf560f | 124 | SP_XmlLeftBracketReader(); |
togayan | 4:7dae52cf560f | 125 | virtual ~SP_XmlLeftBracketReader(); |
togayan | 4:7dae52cf560f | 126 | virtual void read( SP_XmlPullParser * parser, char c ); |
togayan | 4:7dae52cf560f | 127 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ); |
togayan | 4:7dae52cf560f | 128 | virtual void reset(); |
togayan | 4:7dae52cf560f | 129 | |
togayan | 4:7dae52cf560f | 130 | private: |
togayan | 4:7dae52cf560f | 131 | int mHasReadBracket; |
togayan | 4:7dae52cf560f | 132 | }; |
togayan | 4:7dae52cf560f | 133 | |
togayan | 4:7dae52cf560f | 134 | class SP_XmlSignReader : public SP_XmlReader { |
togayan | 4:7dae52cf560f | 135 | public: |
togayan | 4:7dae52cf560f | 136 | SP_XmlSignReader(); |
togayan | 4:7dae52cf560f | 137 | virtual ~SP_XmlSignReader(); |
togayan | 4:7dae52cf560f | 138 | virtual void read( SP_XmlPullParser * parser, char c ); |
togayan | 4:7dae52cf560f | 139 | virtual SP_XmlPullEvent * getEvent( SP_XmlPullParser * parser ); |
togayan | 4:7dae52cf560f | 140 | }; |
togayan | 4:7dae52cf560f | 141 | |
togayan | 4:7dae52cf560f | 142 | class SP_XmlReaderPool { |
togayan | 4:7dae52cf560f | 143 | public: |
togayan | 4:7dae52cf560f | 144 | SP_XmlReaderPool(); |
togayan | 4:7dae52cf560f | 145 | ~SP_XmlReaderPool(); |
togayan | 4:7dae52cf560f | 146 | SP_XmlReader * borrow( int type ); |
togayan | 4:7dae52cf560f | 147 | void save( SP_XmlReader * reader ); |
togayan | 4:7dae52cf560f | 148 | |
togayan | 4:7dae52cf560f | 149 | private: |
togayan | 4:7dae52cf560f | 150 | SP_XmlReader ** mReaderList; |
togayan | 4:7dae52cf560f | 151 | }; |
togayan | 4:7dae52cf560f | 152 | |
togayan | 4:7dae52cf560f | 153 | #endif |