ZeroBuf  0.4.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 > T fromJSON( const Json::Value& json );
28 template< class T > void toJSON( const T& value, Json::Value& json);
29 ZEROBUF_API void fromJSON( const Json::Value& json, Zerobuf& zerobuf );
30 ZEROBUF_API void toJSON( const Zerobuf& zerobuf, Json::Value& json );
31 ZEROBUF_API std::string fromJSONBinary( const Json::Value& json );
32 ZEROBUF_API void toJSONBinary( const uint8_t* data, const size_t size,
33  Json::Value& json );
34 ZEROBUF_API void emptyJSONArray( Json::Value& value );
36 }
37 
38 #endif
Defines export visibility macros for library ZeroBuf.
Zero-copy, zero-serialize, zero-hassle protocol buffers.
Definition: Allocator.h:12