diff options
| author | Mike Buland <mbuland@penny-arcade.com> | 2017-06-06 22:45:21 -0700 |
|---|---|---|
| committer | Mike Buland <mbuland@penny-arcade.com> | 2017-06-06 22:45:21 -0700 |
| commit | dc759b40b9a18b20454b68244dd063ab56155c3e (patch) | |
| tree | e16c5b024f44c30b9aeef8fc3bb85087039cf1f0 /src/unstable/json.h | |
| parent | b7751f0136502592e9b1897b51859b1133339a93 (diff) | |
| download | libbu++-dc759b40b9a18b20454b68244dd063ab56155c3e.tar.gz libbu++-dc759b40b9a18b20454b68244dd063ab56155c3e.tar.bz2 libbu++-dc759b40b9a18b20454b68244dd063ab56155c3e.tar.xz libbu++-dc759b40b9a18b20454b68244dd063ab56155c3e.zip | |
Reading, writing, and accessing loaded data all work.
Diffstat (limited to 'src/unstable/json.h')
| -rw-r--r-- | src/unstable/json.h | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/unstable/json.h b/src/unstable/json.h index 47009cb..2d1770d 100644 --- a/src/unstable/json.h +++ b/src/unstable/json.h | |||
| @@ -11,7 +11,14 @@ namespace Bu | |||
| 11 | 11 | ||
| 12 | class Json | 12 | class Json |
| 13 | { | 13 | { |
| 14 | private: | ||
| 15 | Json( char &c, Bu::Stream &sInput ); | ||
| 16 | typedef Bu::Hash<Bu::String, Json *> JsonHash; | ||
| 17 | typedef Bu::List<Json *> JsonList; | ||
| 18 | |||
| 14 | public: | 19 | public: |
| 20 | typedef JsonList::iterator iterator; | ||
| 21 | typedef JsonList::const_iterator const_iterator; | ||
| 15 | enum Type | 22 | enum Type |
| 16 | { | 23 | { |
| 17 | Invalid, | 24 | Invalid, |
| @@ -29,10 +36,28 @@ namespace Bu | |||
| 29 | Json( Bu::Stream &sInput ); | 36 | Json( Bu::Stream &sInput ); |
| 30 | virtual ~Json(); | 37 | virtual ~Json(); |
| 31 | 38 | ||
| 39 | Type getType() const; | ||
| 40 | Bu::String getString() const; | ||
| 41 | double getNumber() const; | ||
| 42 | bool getBoolean() const; | ||
| 43 | bool isNull() const; | ||
| 44 | Json *operator[]( const Bu::String &sKey ) const; | ||
| 45 | int getSize() const; | ||
| 46 | iterator begin(); | ||
| 47 | const_iterator begin() const; | ||
| 48 | iterator end(); | ||
| 49 | const_iterator end() const; | ||
| 50 | |||
| 32 | void parse( Bu::Stream &sInput ); | 51 | void parse( Bu::Stream &sInput ); |
| 33 | void reset(); | 52 | void reset(); |
| 34 | 53 | ||
| 54 | void write( Bu::Stream &sOutput ) const; | ||
| 55 | void writeStable( Bu::Stream &sOutput ) const; | ||
| 56 | Bu::String toString() const; | ||
| 57 | Bu::String toStringStable() const; | ||
| 58 | |||
| 35 | private: | 59 | private: |
| 60 | void parse( char &c, Bu::Stream &sInput ); | ||
| 36 | void parseString( char &c, Bu::Stream &sInput, Bu::String &sOut ); | 61 | void parseString( char &c, Bu::Stream &sInput, Bu::String &sOut ); |
| 37 | void parseString( char &c, Bu::Stream &sInput ); | 62 | void parseString( char &c, Bu::Stream &sInput ); |
| 38 | void parseObject( char &c, Bu::Stream &sInput ); | 63 | void parseObject( char &c, Bu::Stream &sInput ); |
| @@ -42,11 +67,10 @@ namespace Bu | |||
| 42 | bool readChar( char &c, Bu::Stream &sInput ); | 67 | bool readChar( char &c, Bu::Stream &sInput ); |
| 43 | void readChar( char &c, Bu::Stream &sInput, const char *sSection ); | 68 | void readChar( char &c, Bu::Stream &sInput, const char *sSection ); |
| 44 | bool isWs( char c ); | 69 | bool isWs( char c ); |
| 70 | void skipWs( char &c, Bu::Stream &sInput ); | ||
| 71 | void writeStr( const Bu::String &sStr, Bu::Stream &sOutput ) const; | ||
| 45 | 72 | ||
| 46 | private: | 73 | private: |
| 47 | typedef Bu::Hash<Bu::String, Json *> JsonHash; | ||
| 48 | typedef Bu::List<Json *> JsonList; | ||
| 49 | |||
| 50 | Type eType; | 74 | Type eType; |
| 51 | union DatUnion | 75 | union DatUnion |
| 52 | { | 76 | { |
