MySQL 9.3.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
helper::json::RapidReaderHandlerToStruct< UserResult > Class Template Reference

This class is a adapter for Reader from RapidJson. More...

#include <rapid_json_to_struct.h>

Inheritance diagram for helper::json::RapidReaderHandlerToStruct< UserResult >:
[legend]

Classes

struct  KeyValue
 

Public Types

using Handler = RapidReaderHandlerToStruct< UserResult >
 
using Parent = rapidjson::BaseReaderHandler< rapidjson::UTF8<>, RapidReaderHandlerToStruct< UserResult > >
 
using Ch = typename Parent::Ch
 
using Result = UserResult
 

Public Member Functions

 RapidReaderHandlerToStruct (const std::string &separator=".")
 
virtual ~RapidReaderHandlerToStruct ()=default
 
const UserResult & get_result ()
 
virtual bool on_new_value ()
 
virtual bool Null ()
 
virtual bool Bool (bool)
 
virtual bool String (const Ch *, rapidjson::SizeType, bool)
 
virtual bool Int (int)
 
virtual bool Uint (unsigned)
 
virtual bool Int64 (int64_t)
 
virtual bool Uint64 (uint64_t)
 
virtual bool Double (double)
 
virtual void empty_object ()
 
virtual void empty_array ()
 
virtual bool RawNumber (const Ch *, rapidjson::SizeType, bool)
 enabled via kParseNumbersAsStringsFlag, string is not null-terminated (use length) More...
 
bool StartObject ()
 
bool EndObject (rapidjson::SizeType)
 
bool Key (const Ch *str, rapidjson::SizeType len, bool)
 
bool StartArray ()
 
bool EndArray (rapidjson::SizeType)
 

Static Public Attributes

constexpr static rapidjson::ParseFlag k_parse_flags
 

Protected Member Functions

bool is_object_path ()
 
bool is_array_value ()
 
int get_level () const
 
std::string get_current_key () const
 
std::list< KeyValueget_keys () const
 

Protected Attributes

UserResult result_ {}
 
const std::string separator_
 

Private Member Functions

KeyValueget_parent_key ()
 

Private Attributes

uint64_t values_processed_ {0}
 
std::list< KeyValuekeys_
 
KeyValue key_
 
int level_ {0}
 
int arrays_ {0}
 

Detailed Description

template<typename UserResult>
class helper::json::RapidReaderHandlerToStruct< UserResult >

This class is a adapter for Reader from RapidJson.

This class adapts std::map of strings (keys and values are strings) to be destination of text document conversion done be rapidjson::Reader. There are some constrains to what is converted:

  • values from top level document are inserted into the map,
  • value must be a simple type, sub objects, or arrays are ignored.

Member Typedef Documentation

◆ Ch

template<typename UserResult >
using helper::json::RapidReaderHandlerToStruct< UserResult >::Ch = typename Parent::Ch

◆ Handler

template<typename UserResult >
using helper::json::RapidReaderHandlerToStruct< UserResult >::Handler = RapidReaderHandlerToStruct<UserResult>

◆ Parent

template<typename UserResult >
using helper::json::RapidReaderHandlerToStruct< UserResult >::Parent = rapidjson::BaseReaderHandler<rapidjson::UTF8<>, RapidReaderHandlerToStruct<UserResult> >

◆ Result

template<typename UserResult >
using helper::json::RapidReaderHandlerToStruct< UserResult >::Result = UserResult

Constructor & Destructor Documentation

◆ RapidReaderHandlerToStruct()

template<typename UserResult >
helper::json::RapidReaderHandlerToStruct< UserResult >::RapidReaderHandlerToStruct ( const std::string &  separator = ".")
inline

◆ ~RapidReaderHandlerToStruct()

template<typename UserResult >
virtual helper::json::RapidReaderHandlerToStruct< UserResult >::~RapidReaderHandlerToStruct ( )
virtualdefault

Member Function Documentation

◆ Bool()

◆ Double()

template<typename UserResult >
virtual bool helper::json::RapidReaderHandlerToStruct< UserResult >::Double ( double  )
inlinevirtual

◆ empty_array()

template<typename UserResult >
virtual void helper::json::RapidReaderHandlerToStruct< UserResult >::empty_array ( )
inlinevirtual

◆ empty_object()

template<typename UserResult >
virtual void helper::json::RapidReaderHandlerToStruct< UserResult >::empty_object ( )
inlinevirtual

◆ EndArray()

template<typename UserResult >
bool helper::json::RapidReaderHandlerToStruct< UserResult >::EndArray ( rapidjson::SizeType  )
inline

◆ EndObject()

template<typename UserResult >
bool helper::json::RapidReaderHandlerToStruct< UserResult >::EndObject ( rapidjson::SizeType  )
inline

◆ get_current_key()

template<typename UserResult >
std::string helper::json::RapidReaderHandlerToStruct< UserResult >::get_current_key ( ) const
inlineprotected

◆ get_keys()

template<typename UserResult >
std::list< KeyValue > helper::json::RapidReaderHandlerToStruct< UserResult >::get_keys ( ) const
inlineprotected

◆ get_level()

template<typename UserResult >
int helper::json::RapidReaderHandlerToStruct< UserResult >::get_level ( ) const
inlineprotected

◆ get_parent_key()

template<typename UserResult >
KeyValue & helper::json::RapidReaderHandlerToStruct< UserResult >::get_parent_key ( )
inlineprivate

◆ get_result()

template<typename UserResult >
const UserResult & helper::json::RapidReaderHandlerToStruct< UserResult >::get_result ( )
inline

◆ Int()

template<typename UserResult >
virtual bool helper::json::RapidReaderHandlerToStruct< UserResult >::Int ( int  )
inlinevirtual

◆ Int64()

template<typename UserResult >
virtual bool helper::json::RapidReaderHandlerToStruct< UserResult >::Int64 ( int64_t  )
inlinevirtual

◆ is_array_value()

template<typename UserResult >
bool helper::json::RapidReaderHandlerToStruct< UserResult >::is_array_value ( )
inlineprotected

◆ is_object_path()

template<typename UserResult >
bool helper::json::RapidReaderHandlerToStruct< UserResult >::is_object_path ( )
inlineprotected

◆ Key()

template<typename UserResult >
bool helper::json::RapidReaderHandlerToStruct< UserResult >::Key ( const Ch str,
rapidjson::SizeType  len,
bool   
)
inline

◆ Null()

template<typename UserResult >
virtual bool helper::json::RapidReaderHandlerToStruct< UserResult >::Null ( )
inlinevirtual

◆ on_new_value()

template<typename UserResult >
virtual bool helper::json::RapidReaderHandlerToStruct< UserResult >::on_new_value ( )
inlinevirtual

◆ RawNumber()

◆ StartArray()

template<typename UserResult >
bool helper::json::RapidReaderHandlerToStruct< UserResult >::StartArray ( )
inline

◆ StartObject()

template<typename UserResult >
bool helper::json::RapidReaderHandlerToStruct< UserResult >::StartObject ( )
inline

◆ String()

◆ Uint()

template<typename UserResult >
virtual bool helper::json::RapidReaderHandlerToStruct< UserResult >::Uint ( unsigned  )
inlinevirtual

◆ Uint64()

template<typename UserResult >
virtual bool helper::json::RapidReaderHandlerToStruct< UserResult >::Uint64 ( uint64_t  )
inlinevirtual

Member Data Documentation

◆ arrays_

template<typename UserResult >
int helper::json::RapidReaderHandlerToStruct< UserResult >::arrays_ {0}
private

◆ k_parse_flags

template<typename UserResult >
constexpr static rapidjson::ParseFlag helper::json::RapidReaderHandlerToStruct< UserResult >::k_parse_flags
staticconstexpr
Initial value:
{
rapidjson::kParseNumbersAsStringsFlag}

◆ key_

template<typename UserResult >
KeyValue helper::json::RapidReaderHandlerToStruct< UserResult >::key_
private

◆ keys_

template<typename UserResult >
std::list<KeyValue> helper::json::RapidReaderHandlerToStruct< UserResult >::keys_
private

◆ level_

template<typename UserResult >
int helper::json::RapidReaderHandlerToStruct< UserResult >::level_ {0}
private

◆ result_

template<typename UserResult >
UserResult helper::json::RapidReaderHandlerToStruct< UserResult >::result_ {}
protected

◆ separator_

template<typename UserResult >
const std::string helper::json::RapidReaderHandlerToStruct< UserResult >::separator_
protected

◆ values_processed_

template<typename UserResult >
uint64_t helper::json::RapidReaderHandlerToStruct< UserResult >::values_processed_ {0}
private

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