Orderbook Simulation
OrderbookSim is a C++ application simulating a financial market order book. It efficiently manages and matches buy and sell orders while calculating the Volume-Weighted Average Price (VWAP).
Public Types | Public Member Functions | List of all members
json_sax< BasicJsonType > Struct Template Referenceabstract

SAX interface. More...

#include <json.hpp>

Public Types

using number_integer_t = typename BasicJsonType::number_integer_t
 
using number_unsigned_t = typename BasicJsonType::number_unsigned_t
 
using number_float_t = typename BasicJsonType::number_float_t
 
using string_t = typename BasicJsonType::string_t
 
using binary_t = typename BasicJsonType::binary_t
 

Public Member Functions

virtual bool null ()=0
 a null value was read More...
 
virtual bool boolean (bool val)=0
 a boolean value was read More...
 
virtual bool number_integer (number_integer_t val)=0
 an integer number was read More...
 
virtual bool number_unsigned (number_unsigned_t val)=0
 an unsigned integer number was read More...
 
virtual bool number_float (number_float_t val, const string_t &s)=0
 a floating-point number was read More...
 
virtual bool string (string_t &val)=0
 a string value was read More...
 
virtual bool binary (binary_t &val)=0
 a binary value was read More...
 
virtual bool start_object (std::size_t elements)=0
 the beginning of an object was read More...
 
virtual bool key (string_t &val)=0
 an object key was read More...
 
virtual bool end_object ()=0
 the end of an object was read More...
 
virtual bool start_array (std::size_t elements)=0
 the beginning of an array was read More...
 
virtual bool end_array ()=0
 the end of an array was read More...
 
virtual bool parse_error (std::size_t position, const std::string &last_token, const detail::exception &ex)=0
 a parse error occurred More...
 
 json_sax ()=default
 
 json_sax (const json_sax &)=default
 
 json_sax (json_sax &&) noexcept=default
 
json_saxoperator= (const json_sax &)=default
 
json_saxoperator= (json_sax &&) noexcept=default
 
virtual ~json_sax ()=default
 

Detailed Description

template<typename BasicJsonType>
struct json_sax< BasicJsonType >

SAX interface.

This class describes the SAX interface used by nlohmann::json::sax_parse. Each function is called in different situations while the input is parsed. The boolean return value informs the parser whether to continue processing the input.

Member Typedef Documentation

◆ binary_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::binary_t = typename BasicJsonType::binary_t

◆ number_float_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::number_float_t = typename BasicJsonType::number_float_t

◆ number_integer_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::number_integer_t = typename BasicJsonType::number_integer_t

◆ number_unsigned_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::number_unsigned_t = typename BasicJsonType::number_unsigned_t

◆ string_t

template<typename BasicJsonType >
using json_sax< BasicJsonType >::string_t = typename BasicJsonType::string_t

Constructor & Destructor Documentation

◆ json_sax() [1/3]

template<typename BasicJsonType >
json_sax< BasicJsonType >::json_sax ( )
default

◆ json_sax() [2/3]

template<typename BasicJsonType >
json_sax< BasicJsonType >::json_sax ( const json_sax< BasicJsonType > &  )
default

◆ json_sax() [3/3]

template<typename BasicJsonType >
json_sax< BasicJsonType >::json_sax ( json_sax< BasicJsonType > &&  )
defaultnoexcept

◆ ~json_sax()

template<typename BasicJsonType >
virtual json_sax< BasicJsonType >::~json_sax ( )
virtualdefault

Member Function Documentation

◆ binary()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::binary ( binary_t val)
pure virtual

a binary value was read

Parameters
[in]valbinary value
Returns
whether parsing should proceed
Note
It is safe to move the passed binary value.

◆ boolean()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::boolean ( bool  val)
pure virtual

a boolean value was read

Parameters
[in]valboolean value
Returns
whether parsing should proceed

◆ end_array()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::end_array ( )
pure virtual

the end of an array was read

Returns
whether parsing should proceed

◆ end_object()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::end_object ( )
pure virtual

the end of an object was read

Returns
whether parsing should proceed

◆ key()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::key ( string_t val)
pure virtual

an object key was read

Parameters
[in]valobject key
Returns
whether parsing should proceed
Note
It is safe to move the passed string.

◆ null()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::null ( )
pure virtual

a null value was read

Returns
whether parsing should proceed

◆ number_float()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::number_float ( number_float_t  val,
const string_t s 
)
pure virtual

a floating-point number was read

Parameters
[in]valfloating-point value
[in]sraw token value
Returns
whether parsing should proceed

◆ number_integer()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::number_integer ( number_integer_t  val)
pure virtual

an integer number was read

Parameters
[in]valinteger value
Returns
whether parsing should proceed

◆ number_unsigned()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::number_unsigned ( number_unsigned_t  val)
pure virtual

an unsigned integer number was read

Parameters
[in]valunsigned integer value
Returns
whether parsing should proceed

◆ operator=() [1/2]

template<typename BasicJsonType >
json_sax& json_sax< BasicJsonType >::operator= ( const json_sax< BasicJsonType > &  )
default

◆ operator=() [2/2]

template<typename BasicJsonType >
json_sax& json_sax< BasicJsonType >::operator= ( json_sax< BasicJsonType > &&  )
defaultnoexcept

◆ parse_error()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::parse_error ( std::size_t  position,
const std::string &  last_token,
const detail::exception ex 
)
pure virtual

a parse error occurred

Parameters
[in]positionthe position in the input where the error occurs
[in]last_tokenthe last read token
[in]exan exception object describing the error
Returns
whether parsing should proceed (must return false)

◆ start_array()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::start_array ( std::size_t  elements)
pure virtual

the beginning of an array was read

Parameters
[in]elementsnumber of array elements or -1 if unknown
Returns
whether parsing should proceed
Note
binary formats may report the number of elements

◆ start_object()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::start_object ( std::size_t  elements)
pure virtual

the beginning of an object was read

Parameters
[in]elementsnumber of object elements or -1 if unknown
Returns
whether parsing should proceed
Note
binary formats may report the number of elements

◆ string()

template<typename BasicJsonType >
virtual bool json_sax< BasicJsonType >::string ( string_t val)
pure virtual

a string value was read

Parameters
[in]valstring value
Returns
whether parsing should proceed
Note
It is safe to move the passed string value.

The documentation for this struct was generated from the following file: