nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX > Class Template Reference

deserialization of CBOR, MessagePack, and UBJSON values More...

`#include <json.hpp>`

Collaboration diagram for nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >:

## Public Member Functions

| binary_reader (InputAdapterType &&adapter) noexcept
| create a binary reader More...
| binary_reader (const binary_reader &)=delete
| binary_reader (binary_reader &&)=default
binary_reader & | operator= (const binary_reader &)=delete
binary_reader & | operator= (binary_reader &&)=default
| ~binary_reader ()=default
bool | sax_parse (const input_format_t format, json_sax_t *sax_, const bool strict=true, const cbor_tag_handler_t tag_handler=cbor_tag_handler_t::error)

## Private 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
using | json_sax_t = SAX
using | char_type = typename InputAdapterType::char_type
using | char_int_type = typename std::char_traits< char_type >::int_type

## Private Member Functions

bool | parse_bson_internal ()
| Reads in a BSON-object and passes it to the SAX-parser. More...
bool | get_bson_cstr (string_t &result)
| Parses a C-style string from the BSON input. More...
template<typename NumberType >
bool | get_bson_string (const NumberType len, string_t &result)
| Parses a zero-terminated string of length len from the BSON input. More...
template<typename NumberType >
bool | get_bson_binary (const NumberType len, binary_t &result)
| Parses a byte array input of length len from the BSON input. More...
bool | parse_bson_element_internal (const char_int_type element_type, const std::size_t element_type_parse_position)
| Read a BSON document element of the given element_type. More...
bool | parse_bson_element_list (const bool is_array)
| Read a BSON element list (as specified in the BSON-spec) More...
bool | parse_bson_array ()
| Reads an array from the BSON input and passes it to the SAX-parser. More...
bool | parse_cbor_internal (const bool get_char, const cbor_tag_handler_t tag_handler)
bool | get_cbor_string (string_t &result)
| reads a CBOR string More...
bool | get_cbor_binary (binary_t &result)
| reads a CBOR byte array More...
bool | get_cbor_array (const std::size_t len, const cbor_tag_handler_t tag_handler)
bool | get_cbor_object (const std::size_t len, const cbor_tag_handler_t tag_handler)
bool | parse_msgpack_internal ()
bool | get_msgpack_string (string_t &result)
| reads a MessagePack string More...
bool | get_msgpack_binary (binary_t &result)
| reads a MessagePack byte array More...
bool | get_msgpack_array (const std::size_t len)
bool | get_msgpack_object (const std::size_t len)
bool | parse_ubjson_internal (const bool get_char=true)
bool | get_ubjson_string (string_t &result, const bool get_char=true)
| reads a UBJSON string More...
bool | get_ubjson_size_value (std::size_t &result)
bool | get_ubjson_size_type (std::pair< std::size_t, char_int_type > &result)
| determine the type and size for a container More...
bool | get_ubjson_value (const char_int_type prefix)
bool | get_ubjson_array ()
bool | get_ubjson_object ()
bool | get_ubjson_high_precision_number ()
char_int_type | get ()
| get next character from the input More...
char_int_type | get_ignore_noop ()
template<typename NumberType , bool InputIsLittleEndian = false>
bool | get_number (const input_format_t format, NumberType &result)
template<typename NumberType >
bool | get_string (const input_format_t format, const NumberType len, string_t &result)
| create a string by reading characters from the input More...
template<typename NumberType >
bool | get_binary (const input_format_t format, const NumberType len, binary_t &result)
| create a byte array by reading bytes from the input More...
bool | unexpect_eof (const input_format_t format, const char *context) const
std::string | get_token_string () const
std::string | exception_message (const input_format_t format, const std::string &detail, const std::string &context) const

## Private Attributes

InputAdapterType | ia
| input adapter More...
char_int_type | current = std::char_traits<char_type>::eof()
| the current character More...
std::size_t | chars_read = 0
| the number of characters read More...
const bool | is_little_endian = little_endianess()
| whether we can assume little endianess More...
json_sax_t * | sax = nullptr
| the SAX parser More...

## Detailed Description

### template<typename BasicJsonType, typename InputAdapterType, typename SAX = json_sax_dom_parser<BasicJsonType>>
class nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >

deserialization of CBOR, MessagePack, and UBJSON values

Definition at line 8239 of file json.hpp.

## Member Typedef Documentation

## binary_t

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

using nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::binary_t = typename BasicJsonType::binary_t

private

Definition at line 8245 of file json.hpp.

## char_int_type

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

using nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::char_int_type = typename std::char_traits<char_type>::int_type

private

Definition at line 8248 of file json.hpp.

## char_type

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

using nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::char_type = typename InputAdapterType::char_type

private

Definition at line 8247 of file json.hpp.

## json_sax_t

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

using nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::json_sax_t = SAX

private

Definition at line 8246 of file json.hpp.

## number_float_t

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

using nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::number_float_t = typename BasicJsonType::number_float_t

private

Definition at line 8243 of file json.hpp.

## number_integer_t

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

using nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::number_integer_t = typename BasicJsonType::number_integer_t

private

Definition at line 8241 of file json.hpp.

## number_unsigned_t

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

using nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::number_unsigned_t = typename BasicJsonType::number_unsigned_t

private

Definition at line 8242 of file json.hpp.

## string_t

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

using nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::string_t = typename BasicJsonType::string_t

private

Definition at line 8244 of file json.hpp.

## Constructor & Destructor Documentation

## binary_reader() [1/3]

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::binary_reader | ( | InputAdapterType && | adapter | ) |

inlineexplicitnoexcept

create a binary reader

Parameters

  [in] | adapter | input adapter to read from

Definition at line 8256 of file json.hpp.

References JSON_HEDLEY_NON_NULL, and nlohmann::detail::void().

## binary_reader() [2/3]

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::binary_reader | ( | const binary_reader< BasicJsonType, InputAdapterType, SAX > & |  | ) |

delete

## binary_reader() [3/3]

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::binary_reader | ( | binary_reader< BasicJsonType, InputAdapterType, SAX > && |  | ) |

default

## ~binary_reader()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::~binary_reader | ( |  | ) |

default

## Member Function Documentation

## exception_message()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

std::string nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::exception_message | ( | const input_format_t | format,
|  | const std::string & | detail,
|  | const std::string & | context
| ) |  | const

inlineprivate

Parameters

  [in] | format | the current format
  [in] | detail | a detailed error message
  [in] | context | further context information

Returns
  a message string to use in the parse_error exceptions

Definition at line 10595 of file json.hpp.

References nlohmann::detail::bson, nlohmann::detail::cbor, JSON_ASSERT, nlohmann::detail::msgpack, nlohmann::detail::string, and nlohmann::detail::ubjson.

## get()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

char_int_type nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get | ( |  | ) |

inlineprivate

get next character from the input

This function provides the interface to the used input adapter. It does not throw in case the input reached EOF, but returns a -'ve valued `std::char_traits<char_type>::eof()` in that case.

Returns
  character read from the input

Definition at line 10435 of file json.hpp.

## get_binary()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
template<typename NumberType >

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_binary | ( | const input_format_t | format,
|  | const NumberType | len,
|  | binary_t & | result
| ) |  |

inlineprivate

create a byte array by reading bytes from the input

Template Parameters

  NumberType | the type of the number

Parameters

  [in] | format | the current format (for diagnostics)
  [in] | len | number of bytes to read
  [out] | result | byte array created by reading len bytes

Returns
  whether byte array creation completed

Note
  We can not reserve len bytes for the result, because len may be too large. Usually, unexpect_eof() detects the end of the input before we run out of memory.

Definition at line 10545 of file json.hpp.

References JSON_HEDLEY_NON_NULL, and JSON_HEDLEY_UNLIKELY.

## get_bson_binary()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
template<typename NumberType >

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_bson_binary | ( | const NumberType | len,
|  | binary_t & | result
| ) |  |

inlineprivate

Parses a byte array input of length len from the BSON input.

Parameters

  [in] | len | The length of the byte array to be read.
  [in,out] | result | A reference to the binary variable where the read array is to be stored.

Template Parameters

  NumberType | The type of the length len

Precondition
  len >= 0

Returns
  `true` if the byte array was successfully parsed

Definition at line 8414 of file json.hpp.

References nlohmann::detail::bson, nlohmann::detail::parse_error::create(), JSON_HEDLEY_UNLIKELY, and nlohmann::to_string().

## get_bson_cstr()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_bson_cstr | ( | string_t & | result | ) |

inlineprivate

Parses a C-style string from the BSON input.

Parameters

  [in,out] | result | A reference to the string variable where the read string is to be stored.

Returns
  `true` if the -byte indicating the end of the string was encountered before the EOF; false` indicates an unexpected EOF.

Definition at line 8363 of file json.hpp.

References nlohmann::detail::bson, and JSON_HEDLEY_UNLIKELY.

## get_bson_string()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
template<typename NumberType >

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_bson_string | ( | const NumberType | len,
|  | string_t & | result
| ) |  |

inlineprivate

Parses a zero-terminated string of length len from the BSON input.

Parameters

  [in] | len | The length (including the zero-byte at the end) of the string to be read.
  [in,out] | result | A reference to the string variable where the read string is to be stored.

Template Parameters

  NumberType | The type of the length len

Precondition
  len >= 1

Returns
  `true` if the string was successfully parsed

Definition at line 8393 of file json.hpp.

References nlohmann::detail::bson, nlohmann::detail::parse_error::create(), JSON_HEDLEY_UNLIKELY, and nlohmann::to_string().

## get_cbor_array()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_array | ( | const std::size_t | len,
|  | const cbor_tag_handler_t | tag_handler
| ) |  |

inlineprivate

Parameters

  [in] | len | the length of the array or std::size_t(-1) for an array of indefinite size
  [in] | tag_handler | how CBOR tags should be treated

Returns
  whether array creation completed

Definition at line 9221 of file json.hpp.

References JSON_HEDLEY_UNLIKELY.

## get_cbor_binary()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_binary | ( | binary_t & | result | ) |

inlineprivate

reads a CBOR byte array

This function first reads starting bytes to determine the expected byte array length and then copies this number of bytes into the byte array. Additionally, CBOR's byte arrays with indefinite lengths are supported.

Parameters

  [out] | result | created byte array

Returns
  whether byte array creation completed

Definition at line 9127 of file json.hpp.

References nlohmann::detail::cbor, nlohmann::detail::parse_error::create(), and JSON_HEDLEY_UNLIKELY.

## get_cbor_object()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_object | ( | const std::size_t | len,
|  | const cbor_tag_handler_t | tag_handler
| ) |  |

inlineprivate

Parameters

  [in] | len | the length of the object or std::size_t(-1) for an object of indefinite size
  [in] | tag_handler | how CBOR tags should be treated

Returns
  whether object creation completed

Definition at line 9259 of file json.hpp.

References JSON_HEDLEY_UNLIKELY, and nlohmann::detail::key.

## get_cbor_string()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_cbor_string | ( | string_t & | result | ) |

inlineprivate

reads a CBOR string

This function first reads starting bytes to determine the expected string length and then copies this number of bytes into a string. Additionally, CBOR's strings with indefinite lengths are supported.

Parameters

  [out] | result | created string

Returns
  whether string creation completed

Definition at line 9032 of file json.hpp.

References nlohmann::detail::cbor, nlohmann::detail::parse_error::create(), and JSON_HEDLEY_UNLIKELY.

## get_ignore_noop()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

char_int_type nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ignore_noop | ( |  | ) |

inlineprivate

Returns
  character read from the input after ignoring all 'N' entries

Definition at line 10444 of file json.hpp.

## get_msgpack_array()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_msgpack_array | ( | const std::size_t | len | ) |

inlineprivate

Parameters

  [in] | len | the length of the array

Returns
  whether array creation completed

Definition at line 9885 of file json.hpp.

References JSON_HEDLEY_UNLIKELY.

## get_msgpack_binary()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_msgpack_binary | ( | binary_t & | result | ) |

inlineprivate

reads a MessagePack byte array

This function first reads starting bytes to determine the expected byte array length and then copies this number of bytes into a byte array.

Parameters

  [out] | result | created byte array

Returns
  whether byte array creation completed

Definition at line 9774 of file json.hpp.

References nlohmann::detail::msgpack.

## get_msgpack_object()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_msgpack_object | ( | const std::size_t | len | ) |

inlineprivate

Parameters

  [in] | len | the length of the object

Returns
  whether object creation completed

Definition at line 9907 of file json.hpp.

References JSON_HEDLEY_UNLIKELY, and nlohmann::detail::key.

## get_msgpack_string()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_msgpack_string | ( | string_t & | result | ) |

inlineprivate

reads a MessagePack string

This function first reads starting bytes to determine the expected string length and then copies this number of bytes into a string.

Parameters

  [out] | result | created string

Returns
  whether string creation completed

Definition at line 9692 of file json.hpp.

References nlohmann::detail::parse_error::create(), JSON_HEDLEY_UNLIKELY, and nlohmann::detail::msgpack.

## get_number()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
template<typename NumberType , bool InputIsLittleEndian = false>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_number | ( | const input_format_t | format,
|  | NumberType & | result
| ) |  |

inlineprivate

Definition at line 10469 of file json.hpp.

References JSON_HEDLEY_UNLIKELY.

## get_string()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>
template<typename NumberType >

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_string | ( | const input_format_t | format,
|  | const NumberType | len,
|  | string_t & | result
| ) |  |

inlineprivate

create a string by reading characters from the input

Template Parameters

  NumberType | the type of the number

Parameters

  [in] | format | the current format (for diagnostics)
  [in] | len | number of characters to read
  [out] | result | string created by reading len bytes

Returns
  whether string creation completed

Note
  We can not reserve len bytes for the result, because len may be too large. Usually, unexpect_eof() detects the end of the input before we run out of string memory.

Definition at line 10512 of file json.hpp.

References JSON_HEDLEY_UNLIKELY.

## get_token_string()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

std::string nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_token_string | ( |  | ) | const

inlineprivate

Returns
  a string representation of the last read byte

Definition at line 10582 of file json.hpp.

References nlohmann::detail::string.

## get_ubjson_array()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_array | ( |  | ) |

inlineprivate

Returns
  whether array creation completed

Definition at line 10236 of file json.hpp.

References JSON_HEDLEY_UNLIKELY.

## get_ubjson_high_precision_number()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_high_precision_number | ( |  | ) |

inlineprivate

Definition at line 10373 of file json.hpp.

References nlohmann::detail::parse_error::create(), nlohmann::detail::input_adapter(), JSON_HEDLEY_UNLIKELY, nlohmann::detail::lexer< BasicJsonType, InputAdapterType >::scan(), and nlohmann::detail::ubjson.

## get_ubjson_object()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_object | ( |  | ) |

inlineprivate

Returns
  whether object creation completed

Definition at line 10298 of file json.hpp.

References JSON_HEDLEY_UNLIKELY, and nlohmann::detail::key.

## get_ubjson_size_type()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_size_type | ( | std::pair< std::size_t, char_int_type > & | result | ) |

inlineprivate

determine the type and size for a container

In the optimized UBJSON format, a type and a size can be provided to allow for a more compact representation.

Parameters

  [out] | result | pair of the size and the type

Returns
  whether pair creation completed

Definition at line 10094 of file json.hpp.

References nlohmann::detail::parse_error::create(), JSON_HEDLEY_UNLIKELY, and nlohmann::detail::ubjson.

## get_ubjson_size_value()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_size_value | ( | std::size_t & | result | ) |

inlineprivate

Parameters

  [out] | result | determined size

Returns
  whether size determination completed

Definition at line 10017 of file json.hpp.

References nlohmann::detail::parse_error::create(), JSON_HEDLEY_UNLIKELY, and nlohmann::detail::ubjson.

## get_ubjson_string()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_string | ( | string_t & | result,
|  | const bool | get_char = `true`
| ) |  |

inlineprivate

reads a UBJSON string

This function is either called after reading the 'S' byte explicitly indicating a string, or in case of an object key where the 'S' byte can be left out.

Parameters

  [out] | result | created string
  [in] | get_char | whether a new character should be retrieved from the input (true, default) or whether the last read character should be considered instead

Returns
  whether string creation completed

Definition at line 9963 of file json.hpp.

References nlohmann::detail::parse_error::create(), JSON_HEDLEY_UNLIKELY, and nlohmann::detail::ubjson.

## get_ubjson_value()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::get_ubjson_value | ( | const char_int_type | prefix | ) |

inlineprivate

Parameters

  prefix | the previously read or set type prefix

Returns
  whether value creation completed

Definition at line 10135 of file json.hpp.

References nlohmann::detail::parse_error::create(), JSON_HEDLEY_UNLIKELY, and nlohmann::detail::ubjson.

## operator=() [1/2]

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

binary_reader& nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::operator= | ( | const binary_reader< BasicJsonType, InputAdapterType, SAX > & |  | ) |

delete

## operator=() [2/2]

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

binary_reader& nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::operator= | ( | binary_reader< BasicJsonType, InputAdapterType, SAX > && |  | ) |

default

## parse_bson_array()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_bson_array | ( |  | ) |

inlineprivate

Reads an array from the BSON input and passes it to the SAX-parser.

Returns
  whether a valid BSON-array was passed to the SAX parser

Definition at line 8556 of file json.hpp.

References nlohmann::detail::bson, and JSON_HEDLEY_UNLIKELY.

## parse_bson_element_internal()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_bson_element_internal | ( | const char_int_type | element_type,
|  | const std::size_t | element_type_parse_position
| ) |  |

inlineprivate

Read a BSON document element of the given element_type.

Parameters

  [in] | element_type | The BSON element type, c.f. http://bsonspec.org/spec.html
  [in] | element_type_parse_position | The position in the input stream, where the `element_type` was read.

Warning
  Not all BSON element types are supported yet. An unsupported element_type will give rise to a parse_error.114: Unsupported BSON record type 0x...

Returns
  whether a valid BSON-object/array was passed to the SAX parser

Definition at line 8440 of file json.hpp.

References nlohmann::detail::bson, nlohmann::detail::parse_error::create(), nlohmann::detail::string, and nlohmann::detail::value.

## parse_bson_element_list()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_bson_element_list | ( | const bool | is_array | ) |

inlineprivate

Read a BSON element list (as specified in the BSON-spec)

The same binary layout is used for objects and arrays, hence it must be indicated with the argument is_array which one is expected (true –> array, false –> object).

Parameters

  [in] | is_array | Determines if the element list being read is to be treated as an object (is_array == false), or as an array (is_array == true).

Returns
  whether a valid BSON-object/array was passed to the SAX parser

Definition at line 8518 of file json.hpp.

References nlohmann::detail::bson, JSON_HEDLEY_UNLIKELY, and nlohmann::detail::key.

## parse_bson_internal()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_bson_internal | ( |  | ) |

inlineprivate

Reads in a BSON-object and passes it to the SAX-parser.

Returns
  whether a valid BSON-value was passed to the SAX parser

Definition at line 8338 of file json.hpp.

References nlohmann::detail::bson, and JSON_HEDLEY_UNLIKELY.

## parse_cbor_internal()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_cbor_internal | ( | const bool | get_char,
|  | const cbor_tag_handler_t | tag_handler
| ) |  |

inlineprivate

Parameters

  [in] | get_char | whether a new character should be retrieved from the input (true) or whether the last read character should be considered instead (false)
  [in] | tag_handler | how CBOR tags should be treated

Returns
  whether a valid CBOR value was passed to the SAX parser

Definition at line 8586 of file json.hpp.

References nlohmann::detail::cbor, nlohmann::detail::parse_error::create(), nlohmann::detail::error, nlohmann::detail::ignore, JSON_ASSERT, and JSON_HEDLEY_UNLIKELY.

## parse_msgpack_internal()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_msgpack_internal | ( |  | ) |

inlineprivate

Returns
  whether a valid MessagePack value was passed to the SAX parser

Definition at line 9312 of file json.hpp.

References nlohmann::detail::parse_error::create(), and nlohmann::detail::msgpack.

## parse_ubjson_internal()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::parse_ubjson_internal | ( | const bool | get_char = `true` | ) |

inlineprivate

Parameters

  [in] | get_char | whether a new character should be retrieved from the input (true, default) or whether the last read character should be considered instead

Returns
  whether a valid UBJSON value was passed to the SAX parser

Definition at line 9944 of file json.hpp.

## sax_parse()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::sax_parse | ( | const input_format_t | format,
|  | json_sax_t * | sax_,
|  | const bool | strict = `true`,
|  | const cbor_tag_handler_t | tag_handler = `cbor_tag_handler_t::error`
| ) |  |

inline

Parameters

  [in] | format | the binary format to parse
  [in] | sax_ | a SAX event processor
  [in] | strict | whether to expect the input to be consumed completed
  [in] | tag_handler | how to treat CBOR tags

Returns
  whether parsing was successful

Definition at line 8277 of file json.hpp.

References nlohmann::detail::bson, nlohmann::detail::cbor, nlohmann::detail::parse_error::create(), JSON_ASSERT, JSON_HEDLEY_UNLIKELY, nlohmann::detail::msgpack, nlohmann::detail::strict, and nlohmann::detail::ubjson.

## unexpect_eof()

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::unexpect_eof | ( | const input_format_t | format,
|  | const char * | context
| ) |  | const

inlineprivate

Parameters

  [in] | format | the current format (for diagnostics)
  [in] | context | further context information (for diagnostics)

Returns
  whether the last read character is not EOF

Definition at line 10569 of file json.hpp.

References nlohmann::detail::parse_error::create(), and JSON_HEDLEY_UNLIKELY.

## Member Data Documentation

## chars_read

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

std::size_t nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::chars_read = 0

private

the number of characters read

Definition at line 10634 of file json.hpp.

## current

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

char_int_type nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::current = std::char_traits<char_type>::eof()

private

the current character

Definition at line 10631 of file json.hpp.

## ia

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

InputAdapterType nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::ia

private

input adapter

Definition at line 10628 of file json.hpp.

## is_little_endian

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

const bool nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::is_little_endian = little_endianess()

private

whether we can assume little endianess

Definition at line 10637 of file json.hpp.

## sax

template<typename BasicJsonType , typename InputAdapterType , typename SAX = json_sax_dom_parser<BasicJsonType>>

json_sax_t* nlohmann::detail::binary_reader< BasicJsonType, InputAdapterType, SAX >::sax = nullptr

private

the SAX parser

Definition at line 10640 of file json.hpp.

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

- json.hpp