Open Lighting Architecture: ola::web::JsonPatchParser Class Reference

| Open Lighting Architecture 0.10.9

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
ola::web::JsonPatchParser Class Reference
JSON

## Detailed Description

Parse a JSON Patch document (RFC 6902).

Inheritance diagram for ola::web::JsonPatchParser:

## 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.
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.
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.
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.

## Member Function Documentation

## ◆ Begin()

void ola::web::JsonPatchParser::Begin | ( |  | ) |
| virtual

Called when parsing begins.

Implements ola::web::JsonParserInterface.

## ◆ Bool()

void ola::web::JsonPatchParser::Bool | ( | bool | value | ) |
| virtual

Called when a bool is encountered.

Implements ola::web::JsonParserInterface.

## ◆ CloseArray()

void ola::web::JsonPatchParser::CloseArray | ( |  | ) |
| virtual

Called when an array completes.

Implements ola::web::JsonParserInterface.

## ◆ CloseObject()

void ola::web::JsonPatchParser::CloseObject | ( |  | ) |
| virtual

Called when an object completes.

Implements ola::web::JsonParserInterface.

## ◆ End()

void ola::web::JsonPatchParser::End | ( |  | ) |
| virtual

Called when parsing completes.

Implements ola::web::JsonParserInterface.

## ◆ Null()

void ola::web::JsonPatchParser::Null | ( |  | ) |
| virtual

Called when a null token is encountered.

Implements ola::web::JsonParserInterface.

## ◆ Number() [1/6]

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.

## ◆ Number() [2/6]

void ola::web::JsonPatchParser::Number | ( | double | d | ) |
| virtual

Called when a double value is encountered.

Implements ola::web::JsonParserInterface.

## ◆ Number() [3/6]

void ola::web::JsonPatchParser::Number | ( | int32_t | value | ) |
| virtual

Called when a int32_t is encountered.

Implements ola::web::JsonParserInterface.

## ◆ Number() [4/6]

void ola::web::JsonPatchParser::Number | ( | int64_t | value | ) |
| virtual

Called when a int64_t is encountered.

Implements ola::web::JsonParserInterface.

## ◆ Number() [5/6]

void ola::web::JsonPatchParser::Number | ( | uint32_t | value | ) |
| virtual

Called when a uint32_t is encountered.

Implements ola::web::JsonParserInterface.

## ◆ Number() [6/6]

void ola::web::JsonPatchParser::Number | ( | uint64_t | value | ) |
| virtual

Called when a uint64_t is encountered.

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.

## ◆ OpenArray()

void ola::web::JsonPatchParser::OpenArray | ( |  | ) |
| virtual

Called when an array starts.

Implements ola::web::JsonParserInterface.

## ◆ OpenObject()

void ola::web::JsonPatchParser::OpenObject | ( |  | ) |
| virtual

Called when an object starts.

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

  input | the JSON text to parse
  patch_set | the JsonPatchSet to populate
  error | where to store any errors.

## ◆ SetError()

void ola::web::JsonPatchParser::SetError | ( | const std::string & | error | ) |
| virtual

Can be called at any time to indicate an error with the input data.

Implements ola::web::JsonParserInterface.

## ◆ 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:

- include/ola/web/JsonPatchParser.h
- common/web/JsonPatchParser.cpp