26#ifndef MYSQLSHDK_LIBS_UTILS_UTILS_JSON_H_ 
   27#define MYSQLSHDK_LIBS_UTILS_UTILS_JSON_H_ 
   29#ifdef RAPIDJSON_NO_SIZETYPEDEFINE 
   33#include <rapidjson/rapidjson.h> 
   35#include <rapidjson/document.h> 
   53  explicit JSON_dumper(
bool pprint = 
false, 
size_t binary_limit = 0);
 
   77  void append(
bool data) 
const;
 
   78  void append(std::string_view 
key, 
bool data) 
const;
 
   82  void append(
int data) 
const;
 
   83  void append(std::string_view 
key, 
int data) 
const;
 
   87  void append(
unsigned int data) 
const;
 
   88  void append(std::string_view 
key, 
unsigned int data) 
const;
 
   96  void append(
long int data) 
const;
 
   97  void append(std::string_view 
key, 
long int data) 
const;
 
   99  void append(
unsigned long int data) 
const;
 
  100  void append(std::string_view 
key, 
unsigned long int data) 
const;
 
  102  void append(
long long int data) 
const;
 
  103  void append(std::string_view 
key, 
long long int data) 
const;
 
  105  void append(
unsigned long long int data) 
const;
 
  106  void append(std::string_view 
key, 
unsigned long long int data) 
const;
 
  110  void append(std::string_view data) 
const;
 
  112  void append(std::string_view 
key, std::string_view data) 
const;
 
  113  inline void append(std::string_view 
key, 
const char *data)
 const {
 
  119  void append(
double data) 
const;
 
  120  void append(std::string_view 
key, 
double data) 
const;
 
  126  const std::string &
str() 
const;
 
  137using JSON = rapidjson::Document;
 
  175                     bool allow_empty = 
false);
 
  201std::optional<std::string> 
optional(
const JSON &json, 
const char *name,
 
  202                                    bool allow_empty = 
false);
 
Definition: utils_json.cc:106
 
Definition: utils_json.h:49
 
void start_array()
Definition: utils_json.cc:189
 
void append(const Value &value)
Definition: utils_json.cc:305
 
int deep_level() const
Definition: utils_json.h:124
 
int _deep_level
Definition: utils_json.h:129
 
void append_uint(unsigned int data) const
Definition: utils_json.cc:358
 
void append(std::string_view key, const char *data) const
Definition: utils_json.h:113
 
void append_value(const Value &value)
Definition: utils_json.cc:206
 
JSON_dumper(bool pprint=false, size_t binary_limit=0)
Definition: utils_json.cc:179
 
void append(const char *data) const
Definition: utils_json.h:111
 
std::unique_ptr< Writer_base > _writer
Definition: utils_json.h:132
 
void append_json(const std::string &data) const
Definition: utils_json.cc:469
 
void start_object()
Definition: utils_json.cc:197
 
void end_object()
Definition: utils_json.cc:201
 
void append_bool(bool data) const
Definition: utils_json.cc:332
 
void append_int(int data) const
Definition: utils_json.cc:345
 
void append_float(double data) const
Definition: utils_json.cc:454
 
void append_uint64(uint64_t data) const
Definition: utils_json.cc:382
 
size_t _binary_limit
Definition: utils_json.h:130
 
void append_int64(int64_t data) const
Definition: utils_json.cc:373
 
void append_string(std::string_view data) const
Definition: utils_json.cc:438
 
const std::string & str() const
Definition: utils_json.cc:475
 
void append_null() const
Definition: utils_json.cc:325
 
void end_array()
Definition: utils_json.cc:193
 
Define rapidjson::SizeType to be std::uint64_t.
 
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
 
uint64_t required_uint(const JSON &json, const char *name)
Fetches an unsigned integer value of a required field.
Definition: utils_json.cc:528
 
std::string to_string(const JSON &json)
Converts a JSON object to a string.
Definition: utils_json.cc:567
 
std::optional< std::string > optional(const JSON &json, const char *name, bool allow_empty)
Fetches a string value of an optional field.
Definition: utils_json.cc:538
 
std::optional< uint64_t > optional_uint(const JSON &json, const char *name)
Fetches an unsigned integer value of an optional field.
Definition: utils_json.cc:553
 
JSON parse_object_or_throw(std::string_view json)
Parses a JSON string, input is expected to be a JSON object.
Definition: utils_json.cc:502
 
std::string to_pretty_string(const JSON &json)
Converts a JSON object to a nicely formatted string.
Definition: utils_json.cc:574
 
std::string required(const JSON &json, const char *name, bool allow_empty)
Fetches a string value of a required field.
Definition: utils_json.cc:517
 
JSON parse(std::string_view json)
Parses a JSON string.
Definition: utils_json.cc:494
 
rapidjson::Document JSON
Definition: utils_json.h:137
 
Definition: file_system_exceptions.h:34
 
Value::Array_type_ref Array_t
Definition: jit_executor_value.h:431
 
Value::Map_type_ref Dictionary_t
Definition: jit_executor_value.h:430
 
required string key
Definition: replication_asynchronous_connection_failover.proto:60
 
Pointer to a function that may be implemented in any language.
Definition: jit_executor_value.h:130