HoviTron Video Pipeline
JsonParser.h
1/*
2Original authors:
3
4Universite Libre de Bruxelles, Brussels, Belgium:
5 Sarah Fachada, Sarah.Fernandes.Pinto.Fachada@ulb.ac.be
6 Daniele Bonatto, Daniele.Bonatto@ulb.ac.be
7 Arnaud Schenkel, arnaud.schenkel@ulb.ac.be
8
9Koninklijke Philips N.V., Eindhoven, The Netherlands:
10 Bart Kroon, bart.kroon@philips.com
11 Bart Sonneveldt, bart.sonneveldt@philips.com
12*/
13#ifndef RVSOCULUS_JSONPARSER_H
14#define RVSOCULUS_JSONPARSER_H
15
16#include <iosfwd>
17#include <string>
18#include <memory>
19
20namespace json
21{
22 struct Value;
23 struct Object;
24
25 class Node
26 {
27 public:
28 enum class Type
29 {
30 number,
31 string,
32 array,
33 object,
34 boolean,
35 null
36 };
37
39 static Node readFrom(std::istream&);
40
41 /* Specify overrides (for Object only) */
42 void setOverrides(Node overrides);
43
45 Type type() const;
46
50 Node optional(std::string const& key) const;
51
55 Node require(std::string const& key) const;
56
58 Node at(std::size_t index) const;
59
61 std::size_t size() const;
62
64 double asDouble() const;
65
67 float asFloat() const;
68
70 int asInt() const;
71
73 std::string const& asString() const;
74
76 bool asBool() const;
77
79 operator bool() const;
80
81 private:
82 Node();
83 Node(std::shared_ptr<Value>);
84
85 std::shared_ptr<Value> m_value;
86 std::shared_ptr<Object> m_overrides;
87 };
88}
89#endif //RVSOCULUS_JSONPARSER_H
Node optional(std::string const &key) const
Definition: JsonParser.cpp:238
std::size_t size() const
Definition: JsonParser.cpp:277
std::string const & asString() const
Definition: JsonParser.cpp:314
Type type() const
Definition: JsonParser.cpp:233
double asDouble() const
Definition: JsonParser.cpp:290
Node require(std::string const &key) const
Definition: JsonParser.cpp:259
int asInt() const
Definition: JsonParser.cpp:303
Node at(std::size_t index) const
Definition: JsonParser.cpp:269
bool asBool() const
Definition: JsonParser.cpp:322
static Node readFrom(std::istream &)
Definition: JsonParser.cpp:203
float asFloat() const
Definition: JsonParser.cpp:298