Open Lighting Architecture  Latest Git
Public Member Functions | Static Public Member Functions | List of all members
ola::web::JsonPatchParser Class Reference

Detailed Description

Parse a JSON Patch document (RFC 6902).

Inheritance diagram for ola::web::JsonPatchParser:
Inheritance graph
[legend]
Collaboration diagram for ola::web::JsonPatchParser:
Collaboration graph
[legend]

Public Member Functions

 JsonPatchParser (JsonPatchSet *patch_set)
 
void Begin ()
 Called when parsing begins.
 
void End ()
 Called when parsing completes.
 
void String (const std::string &value)
 Called when a string is encountered. More...
 
void Number (uint32_t value)
 Called when a uint32_t is encountered.
 
void Number (int32_t value)
 Called when a int32_t is encountered.
 
void Number (uint64_t value)
 Called when a uint64_t is encountered.
 
void Number (int64_t value)
 Called when a int64_t is encountered.
 
void Number (const JsonDouble::DoubleRepresentation &rep)
 Called when a double value is encountered. More...
 
void Number (double value)
 Called when a double value is encountered.
 
void Bool (bool value)
 Called when a bool is encountered.
 
void Null ()
 Called when a null token is encountered.
 
void OpenArray ()
 Called when an array starts.
 
void CloseArray ()
 Called when an array completes.
 
void OpenObject ()
 Called when an object starts.
 
void ObjectKey (const std::string &key)
 Called when a new key is encountered. More...
 
void CloseObject ()
 Called when an object completes.
 
void SetError (const std::string &error)
 Can be called at any time to indicate an error with the input data.
 
std::string GetError () const
 Check if parsing was successful.
 
bool IsValid () const
 Check if this patch document was valid.
 

Static Public Member Functions

static bool Parse (const std::string &input, JsonPatchSet *patch_set, std::string *error)
 Build a JsonPatchSet from a JSON document. More...
 

Member Function Documentation

◆ Number()

void ola::web::JsonPatchParser::Number ( const JsonDouble::DoubleRepresentation rep)
virtual

Called when a double value is encountered.

MinGW struggles with long doubles http://mingw.5.n7.nabble.com/Strange-behaviour-of-gcc-4-8-1-with-long-double-td32949.html To avoid this, and to keep as many significant bits as possible we keep the components of a double separate. See JsonDouble for details.

Implements ola::web::JsonParserInterface.

◆ ObjectKey()

void ola::web::JsonPatchParser::ObjectKey ( const std::string &  key)
virtual

Called when a new key is encountered.

This may be called multiple times for the same object. The standard doesn't specify how to handle duplicate keys, so I generally use the last one.

Implements ola::web::JsonParserInterface.

◆ Parse()

bool ola::web::JsonPatchParser::Parse ( const std::string &  input,
JsonPatchSet patch_set,
std::string *  error 
)
static

Build a JsonPatchSet from a JSON document.

Parameters
inputthe JSON text to parse
patch_setthe JsonPatchSet to populate
errorwhere to store any errors.

◆ String()

void ola::web::JsonPatchParser::String ( const std::string &  value)
virtual

Called when a string is encountered.

This is not called for object keys, see ObjectKey() below.

Implements ola::web::JsonParserInterface.


The documentation for this class was generated from the following files: