xrootd
|
#include <XrdOucJson.hh>
Public Member Functions | |
serializer (output_adapter_t< char > s, const char ichar, error_handler_t error_handler_=error_handler_t::strict) | |
serializer (const serializer &)=delete | |
serializer & | operator= (const serializer &)=delete |
serializer (serializer &&)=delete | |
serializer & | operator= (serializer &&)=delete |
~serializer ()=default | |
void | dump (const BasicJsonType &val, const bool pretty_print, const bool ensure_ascii, const unsigned int indent_step, const unsigned int current_indent=0) |
internal implementation of the serialization function | |
for (std::size_t i=0;i< s.size();++i) | |
if (JSON_HEDLEY_LIKELY(state==UTF8_ACCEPT)) | |
Public Attributes | |
JSON_PRIVATE_UNLESS_TESTED | : void dump_escaped(const string_t& s |
JSON_PRIVATE_UNLESS_TESTED const bool | ensure_ascii |
std::uint8_t | state = UTF8_ACCEPT |
std::size_t | bytes = 0 |
std::size_t | bytes_after_last_accept = 0 |
std::size_t | undumped_chars = 0 |
else | |
std::array< char, 64 > | number_buffer {{}} |
a (hopefully) large enough character buffer | |
const std::lconv * | loc = nullptr |
the locale | |
const char | thousands_sep = '\0' |
the locale's thousand separator character | |
const char | decimal_point = '\0' |
the locale's decimal point character | |
std::array< char, 512 > | string_buffer {{}} |
string buffer | |
const char | indent_char |
the indentation character | |
string_t | indent_string |
the indentation string | |
const error_handler_t | error_handler |
error_handler how to react on decoding errors | |
Private Types | |
using | string_t = typename BasicJsonType::string_t |
using | number_float_t = typename BasicJsonType::number_float_t |
using | number_integer_t = typename BasicJsonType::number_integer_t |
using | number_unsigned_t = typename BasicJsonType::number_unsigned_t |
using | binary_char_t = typename BasicJsonType::binary_t::value_type |
Static Private Attributes | |
static constexpr std::uint8_t | UTF8_ACCEPT = 0 |
static constexpr std::uint8_t | UTF8_REJECT = 1 |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
[in] | s | output stream to serialize to |
[in] | ichar | indentation character to use |
[in] | error_handler_ | how to react on decoding errors |
|
delete |
|
delete |
|
default |
|
inline |
internal implementation of the serialization function
This function is called by the public member function dump and organizes the serialization internally. The indentation level is propagated as additional parameter. In case of arrays and objects, the function is called recursively.
escape_string()
operator<<
"%g"
format[in] | val | value to serialize |
[in] | pretty_print | whether the output shall be pretty-printed |
[in] | ensure_ascii | If ensure_ascii is true, all non-ASCII characters in the output are escaped with \uXXXX sequences, and the result consists of ASCII characters only. |
[in] | indent_step | the indent level |
[in] | current_indent | the current indent level (only used internally) |
References nlohmann::detail::array, nlohmann::detail::binary, nlohmann::detail::boolean, nlohmann::detail::discarded, nlohmann::detail::serializer< BasicJsonType >::dump(), nlohmann::detail::serializer< BasicJsonType >::ensure_ascii, nlohmann::detail::serializer< BasicJsonType >::indent_string, JSON_ASSERT, JSON_HEDLEY_UNLIKELY, nlohmann::detail::null, nlohmann::detail::number_float, nlohmann::detail::number_integer, nlohmann::detail::number_unsigned, nlohmann::detail::object, and nlohmann::detail::string.
Referenced by nlohmann::detail::serializer< BasicJsonType >::dump().
|
inline |
References nlohmann::detail::serializer< BasicJsonType >::bytes, nlohmann::detail::serializer< BasicJsonType >::bytes_after_last_accept, nlohmann::detail::type_error::create(), nlohmann::detail::serializer< BasicJsonType >::ensure_ascii, nlohmann::detail::serializer< BasicJsonType >::error_handler, nlohmann::detail::ignore, JSON_ASSERT, JSON_THROW, nlohmann::detail::replace, nlohmann::detail::serializer< BasicJsonType >::state, nlohmann::detail::strict, nlohmann::detail::serializer< BasicJsonType >::string_buffer, nlohmann::detail::binary_writer< BasicJsonType, CharType >::to_char_type(), nlohmann::detail::serializer< BasicJsonType >::undumped_chars, nlohmann::detail::serializer< BasicJsonType >::UTF8_ACCEPT, and nlohmann::detail::serializer< BasicJsonType >::UTF8_REJECT.
|
inline |
|
delete |
|
delete |
JSON_PRIVATE_UNLESS_TESTED nlohmann::detail::serializer< BasicJsonType >::__pad0__ |
std::size_t nlohmann::detail::serializer< BasicJsonType >::bytes = 0 |
std::size_t nlohmann::detail::serializer< BasicJsonType >::bytes_after_last_accept = 0 |
Referenced by nlohmann::detail::serializer< BasicJsonType >::for().
const char nlohmann::detail::serializer< BasicJsonType >::decimal_point = '\0' |
the locale's decimal point character
nlohmann::detail::serializer< BasicJsonType >::else |
JSON_PRIVATE_UNLESS_TESTED const bool nlohmann::detail::serializer< BasicJsonType >::ensure_ascii |
Referenced by nlohmann::detail::serializer< BasicJsonType >::dump(), and nlohmann::detail::serializer< BasicJsonType >::for().
const error_handler_t nlohmann::detail::serializer< BasicJsonType >::error_handler |
error_handler how to react on decoding errors
Referenced by nlohmann::detail::serializer< BasicJsonType >::for().
const char nlohmann::detail::serializer< BasicJsonType >::indent_char |
the indentation character
string_t nlohmann::detail::serializer< BasicJsonType >::indent_string |
the indentation string
Referenced by nlohmann::detail::serializer< BasicJsonType >::dump().
const std::lconv* nlohmann::detail::serializer< BasicJsonType >::loc = nullptr |
the locale
std::array<char, 64> nlohmann::detail::serializer< BasicJsonType >::number_buffer {{}} |
a (hopefully) large enough character buffer
std::uint8_t nlohmann::detail::serializer< BasicJsonType >::state = UTF8_ACCEPT |
Referenced by nlohmann::detail::serializer< BasicJsonType >::for().
std::array<char, 512> nlohmann::detail::serializer< BasicJsonType >::string_buffer {{}} |
string buffer
Referenced by nlohmann::detail::serializer< BasicJsonType >::for(), and nlohmann::detail::serializer< BasicJsonType >::if().
const char nlohmann::detail::serializer< BasicJsonType >::thousands_sep = '\0' |
the locale's thousand separator character
std::size_t nlohmann::detail::serializer< BasicJsonType >::undumped_chars = 0 |
Referenced by nlohmann::detail::serializer< BasicJsonType >::for().
|
staticconstexprprivate |
Referenced by nlohmann::detail::serializer< BasicJsonType >::for().
|
staticconstexprprivate |
Referenced by nlohmann::detail::serializer< BasicJsonType >::for().