26#ifndef ROUTER_SRC_REST_MRS_SRC_HELPER_JSON_SERIALIZERTOTEXT_H_ 
   27#define ROUTER_SRC_REST_MRS_SRC_HELPER_JSON_SERIALIZERTOTEXT_H_ 
   33#include <rapidjson/document.h> 
   34#include <rapidjson/ostreamwrapper.h> 
   35#include <rapidjson/writer.h> 
   64      other.finalized_ = 
true;
 
  101      other.finalized_ = 
true;
 
  105    template <
typename Arr>
 
  108      while (it != std::end(arr)) {
 
  214      case JsonType::kNull:
 
  234    rapidjson::StringBuffer json_buf;
 
  236      rapidjson::Writer<rapidjson::StringBuffer> json_writer(json_buf);
 
  238      value.Accept(json_writer);
 
  241    return add_value(json_buf.GetString(), json_buf.GetLength(),
 
  257  template <
typename Str1, 
typename Str2>
 
  264  template <
typename Str1, 
typename Value>
 
  270  template <
typename Str1>
 
  278  template <
typename Str1>
 
  286  template <
typename Str1>
 
  298  template <
typename Value>
 
  301    *this << (std::forward<Value>(
value));
 
  304  template <
typename Value>
 
  308      *
this << (
value.value());
 
  312  template <
typename Value>
 
  316      *
this << (
value.value());
 
Lightweight implementation of optional.
Definition: optional.h:39
 
Definition: serializer_to_text.h:85
 
SerializerToText * operator->()
Definition: serializer_to_text.h:93
 
Array & add(const Arr &arr)
Definition: serializer_to_text.h:106
 
Array(Array &&other)
Definition: serializer_to_text.h:87
 
void initialize()
Definition: serializer_to_text.h:117
 
Array & operator=(Array &&other)
Definition: serializer_to_text.h:97
 
bool finalized_
Definition: serializer_to_text.h:130
 
void finalize()
Definition: serializer_to_text.h:123
 
bool is_usable() const
Definition: serializer_to_text.h:95
 
SerializerToText * serializer_
Definition: serializer_to_text.h:129
 
Array(SerializerToText *serializer=nullptr)
Definition: serializer_to_text.h:88
 
SerializerToText & operator*()
Definition: serializer_to_text.h:94
 
~Array()
Definition: serializer_to_text.h:91
 
Definition: serializer_to_text.h:47
 
void finalize()
Definition: serializer_to_text.h:68
 
bool is_usable() const
Definition: serializer_to_text.h:58
 
Object(Object &&other)
Definition: serializer_to_text.h:49
 
~Object()
Definition: serializer_to_text.h:55
 
SerializerToText * serializer_
Definition: serializer_to_text.h:81
 
SerializerToText * operator->()
Definition: serializer_to_text.h:57
 
bool finalized_
Definition: serializer_to_text.h:82
 
Object & operator=(Object &&other)
Definition: serializer_to_text.h:60
 
void initialize()
Definition: serializer_to_text.h:75
 
Object(SerializerToText *serializer=nullptr)
Definition: serializer_to_text.h:51
 
Definition: serializer_to_text.h:45
 
void add_member_impl(const char *key, helper::Optional< Value > &value)
Definition: serializer_to_text.h:305
 
void flush()
Definition: serializer_to_text.h:245
 
SerializerToText & add_value(const char *value, JsonType ct=JsonType::kString)
Definition: serializer_to_text.h:197
 
void add_member_impl(const char *key, const helper::Optional< Value > &value)
Definition: serializer_to_text.h:313
 
SerializerToText & operator<<(const uint64_t value)
Definition: serializer_to_text.h:170
 
SerializerToText & member_add_value(const Str1 &key, Value &&value)
Definition: serializer_to_text.h:265
 
SerializerToText & operator<<(const char *value)
Definition: serializer_to_text.h:145
 
std::string get_result()
Definition: serializer_to_text.h:137
 
const char * get_raw(const std::string &value)
Definition: serializer_to_text.h:295
 
void add_member_impl(const char *key, const char *value, JsonType ct)
Definition: serializer_to_text.h:320
 
SerializerToText & member_add_value(const Str1 &key, const char *str, uint32_t len, JsonType ct)
Definition: serializer_to_text.h:279
 
SerializerToText & operator<<(const int value)
Definition: serializer_to_text.h:160
 
const char * get_raw(const char *value)
Definition: serializer_to_text.h:294
 
SerializerToText & operator<<(const int64_t value)
Definition: serializer_to_text.h:180
 
Object add_object()
Definition: serializer_to_text.h:142
 
std::stringstream value_
Definition: serializer_to_text.h:326
 
SerializerToText(const bool bigint_encode_as_string=false)
Definition: serializer_to_text.h:134
 
rapidjson::Writer< rapidjson::OStreamWrapper > writer_
Definition: serializer_to_text.h:328
 
SerializerToText & member_add_null_value(const Str1 &key)
Definition: serializer_to_text.h:287
 
SerializerToText & member_add_value(const Str1 &key, const Str2 &value, JsonType ct)
Definition: serializer_to_text.h:258
 
SerializerToText & operator<<(const unsigned int value)
Definition: serializer_to_text.h:165
 
void add_member_impl(const char *key, Value &&value)
Definition: serializer_to_text.h:299
 
Array member_add_array(const char *key)
Definition: serializer_to_text.h:247
 
SerializerToText & operator<<(const float value)
Definition: serializer_to_text.h:155
 
Array add_array()
Definition: serializer_to_text.h:143
 
SerializerToText & operator<<(const std::string &value)
Definition: serializer_to_text.h:150
 
rapidjson::OStreamWrapper ostream_
Definition: serializer_to_text.h:327
 
bool bigint_encode_as_string_
Definition: serializer_to_text.h:325
 
Object member_add_object(const char *key)
Definition: serializer_to_text.h:252
 
SerializerToText & member_add_value(const Str1 &key, const char *str, uint32_t len)
Definition: serializer_to_text.h:271
 
SerializerToText & add_value(const char *value, uint32_t length, JsonType ct)
Definition: serializer_to_text.h:202
 
SerializerToText & add_value(const rapidjson::Value &value)
Definition: serializer_to_text.h:233
 
const char * get_raw(const bool value)
Definition: serializer_to_text.h:296
 
SerializerToText & operator<<(const bool value)
Definition: serializer_to_text.h:192
 
static std::string to_string(const LEX_STRING &str)
Definition: lex_string.h:50
 
Define rapidjson::SizeType to be std::uint64_t.
 
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1078
 
MysqlCacheManager::Object Object
Definition: mysql_cache_manager.cc:101
 
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:76
 
JsonType
Definition: mysql_column_types.h:35
 
@ kBool
Definition: mysql_column_types.h:35
 
@ kJson
Definition: mysql_column_types.h:35
 
@ kBlob
Definition: mysql_column_types.h:35
 
@ kNumeric
Definition: mysql_column_types.h:35
 
@ kObject
Definition: mysql_column_types.h:35
 
@ kString
Definition: mysql_column_types.h:35
 
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
 
const char * begin(const char *const c)
Definition: base64.h:44
 
@ Array
C++ Object.
Definition: jit_executor_value.h:67
 
required string key
Definition: replication_asynchronous_connection_failover.proto:60