| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /**
- * jsonObject.hh for jsonstroller
- *
- * Author: isundil <isundill@gmail.com>
- **/
- #pragma once
- #include "config.h"
- #include "jsonContainer.hh"
- #include "jsonObjectEntry.hh"
- #include "jsonException.hh"
- class JSonObject: public JSonContainer
- {
- public:
- JSonObject(JSonContainer *parent);
- virtual ~JSonObject();
- /**
- * Add entry
- **/
- virtual void push(const std::string &key, JSonElement *child);
- /**
- * find object by key
- **/
- JSonObject::const_iterator find(const std::string &key) const;
- /**
- * remove object by key
- **/
- bool erase(const std::string &);
- /**
- * check if object exists
- **/
- bool contains(const std::string &) const;
- /**
- * fetch object by key
- **/
- const JSonElement* get(const std::string &) const;
- virtual JSonElement *firstChild();
- virtual const JSonElement *firstChild() const;
- virtual std::string stringify() const;
- /**
- * multiple objects exists for this key
- **/
- class DoubleKeyException: public JsonException
- {
- public:
- DoubleKeyException(unsigned long long offset, const std::string &key, LinearHistory &buf);
- };
- /**
- * Invalid value for key
- **/
- class NotAKeyException: public JsonException
- {
- public:
- NotAKeyException(unsigned long long offset, LinearHistory &buf);
- };
- };
- class JSonSortedObject: public JSonObject
- {
- public:
- JSonSortedObject(JSonContainer *parent);
- void push(const std::string &key, JSonElement *child);
- };
|