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 Satoshi Togawa

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/

Committer:
togayan
Date:
Mon Aug 20 13:27:17 2012 +0000
Revision:
4:7dae52cf560f
1st revision

Who changed what in which revision?

UserRevisionLine numberNew 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