ZeroBuf  0.5.0
Zero-copy, zero-serialize, zero-hassle protocol buffers
json.h
1 
2 /* Copyright (c) 2016, Human Brain Project
3  * Stefan.Eilemann@epfl.ch
4  */
5 
6 #ifndef ZEROBUF_JSON_H
7 #define ZEROBUF_JSON_H
8 
9 #include <zerobuf/api.h>
10 #include <zerobuf/types.h>
11 
12 namespace zerobuf
13 {
16 ZEROBUF_API bool hasJSONField(const Json::Value& json,
17  const std::string& field);
18 ZEROBUF_API const Json::Value& getJSONField(const Json::Value& json,
19  const std::string& field);
20 ZEROBUF_API Json::Value& getJSONField(Json::Value& json,
21  const std::string& field);
22 ZEROBUF_API const Json::Value& getJSONField(const Json::Value& json,
23  size_t index);
24 ZEROBUF_API Json::Value& getJSONField(Json::Value& json, size_t index);
25 ZEROBUF_API size_t getJSONSize(const Json::Value& json);
26 
27 template <class T>
28 T fromJSON(const Json::Value& json);
29 template <class T>
30 void toJSON(const T& value, Json::Value& json);
31 ZEROBUF_API void fromJSON(const Json::Value& json, Zerobuf& zerobuf);
32 ZEROBUF_API void toJSON(const Zerobuf& zerobuf, Json::Value& json);
33 ZEROBUF_API std::string fromJSONBinary(const Json::Value& json);
34 ZEROBUF_API void toJSONBinary(const uint8_t* data, const size_t size,
35  Json::Value& json);
36 ZEROBUF_API void emptyJSONArray(Json::Value& value);
38 }
39 
40 #endif
Defines export visibility macros for library ZeroBuf.
Zero-copy, zero-serialize, zero-hassle protocol buffers.
Definition: Allocator.h:12