MySQL 9.3.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
mrs::json::ResponseJsonTemplate Class Reference

#include <response_json_template.h>

Inheritance diagram for mrs::json::ResponseJsonTemplate:
[legend]

Public Types

using JsonSerializer = helper::json::SerializerToText
 
using ResultRow = mysqlrouter::MySQLSession::ResultRow
 
- Public Types inherited from mrs::database::JsonTemplate
using ResultRow = mysqlrouter::MySQLSession::ResultRow
 
using CustomMetadata = std::map< std::string, std::string >
 

Public Member Functions

 ResponseJsonTemplate (bool encode_bigints_as_string=false, const bool include_links=true)
 
void begin_resultset (const std::string &url, const std::string &items_name, const std::vector< helper::Column > &columns) override
 
void begin_resultset_with_limits (uint64_t offset, uint64_t limit, bool is_default_limit, const std::string &url, const std::vector< helper::Column > &columns) override
 
bool push_json_document (const char *document) override
 
bool push_row (const ResultRow &values, const char *ignore_column=nullptr) override
 
void end_resultset (const std::optional< bool > &has_more={}) override
 
void begin () override
 
void finish (const CustomMetadata &custom_metadata={}) override
 
void flush () override
 
std::string get_result () override
 
- Public Member Functions inherited from mrs::database::JsonTemplate
virtual ~JsonTemplate ()=default
 

Private Member Functions

bool count_check_if_push_is_allowed ()
 

Private Attributes

uint64_t offset_ {0}
 
uint64_t limit_ {0}
 
bool is_default_limit_ {false}
 
bool limit_not_set_ {false}
 
std::string url_
 
JsonSerializer serializer_
 
JsonSerializer::Object json_root_
 
JsonSerializer::Array json_root_items_
 
bool has_more_ {false}
 
uint64_t pushed_documents_ {0}
 
bool began_ {false}
 
const std::vector< helper::Column > * columns_ {nullptr}
 
bool encode_bigints_as_string_
 
bool include_links_
 

Additional Inherited Members

- Static Protected Member Functions inherited from mrs::database::JsonTemplate
static bool should_encode_numeric_as_string (enum_field_types field_type)
 

Member Typedef Documentation

◆ JsonSerializer

◆ ResultRow

Constructor & Destructor Documentation

◆ ResponseJsonTemplate()

mrs::json::ResponseJsonTemplate::ResponseJsonTemplate ( bool  encode_bigints_as_string = false,
const bool  include_links = true 
)
explicit

Member Function Documentation

◆ begin()

void mrs::json::ResponseJsonTemplate::begin ( )
overridevirtual

◆ begin_resultset()

void mrs::json::ResponseJsonTemplate::begin_resultset ( const std::string &  url,
const std::string &  items_name,
const std::vector< helper::Column > &  columns 
)
overridevirtual

◆ begin_resultset_with_limits()

void mrs::json::ResponseJsonTemplate::begin_resultset_with_limits ( uint64_t  offset,
uint64_t  limit,
bool  is_default_limit,
const std::string &  url,
const std::vector< helper::Column > &  columns 
)
overridevirtual

◆ count_check_if_push_is_allowed()

bool mrs::json::ResponseJsonTemplate::count_check_if_push_is_allowed ( )
private

◆ end_resultset()

void mrs::json::ResponseJsonTemplate::end_resultset ( const std::optional< bool > &  has_more = {})
overridevirtual

◆ finish()

void mrs::json::ResponseJsonTemplate::finish ( const CustomMetadata custom_metadata = {})
overridevirtual

◆ flush()

void mrs::json::ResponseJsonTemplate::flush ( )
overridevirtual

◆ get_result()

std::string mrs::json::ResponseJsonTemplate::get_result ( )
overridevirtual

◆ push_json_document()

bool mrs::json::ResponseJsonTemplate::push_json_document ( const char *  document)
overridevirtual

◆ push_row()

bool mrs::json::ResponseJsonTemplate::push_row ( const ResultRow values,
const char *  ignore_column = nullptr 
)
overridevirtual

Member Data Documentation

◆ began_

bool mrs::json::ResponseJsonTemplate::began_ {false}
private

◆ columns_

const std::vector<helper::Column>* mrs::json::ResponseJsonTemplate::columns_ {nullptr}
private

◆ encode_bigints_as_string_

bool mrs::json::ResponseJsonTemplate::encode_bigints_as_string_
private

◆ has_more_

bool mrs::json::ResponseJsonTemplate::has_more_ {false}
private

◆ include_links_

bool mrs::json::ResponseJsonTemplate::include_links_
private

◆ is_default_limit_

bool mrs::json::ResponseJsonTemplate::is_default_limit_ {false}
private

◆ json_root_

JsonSerializer::Object mrs::json::ResponseJsonTemplate::json_root_
private

◆ json_root_items_

JsonSerializer::Array mrs::json::ResponseJsonTemplate::json_root_items_
private

◆ limit_

uint64_t mrs::json::ResponseJsonTemplate::limit_ {0}
private

◆ limit_not_set_

bool mrs::json::ResponseJsonTemplate::limit_not_set_ {false}
private

◆ offset_

uint64_t mrs::json::ResponseJsonTemplate::offset_ {0}
private

◆ pushed_documents_

uint64_t mrs::json::ResponseJsonTemplate::pushed_documents_ {0}
private

◆ serializer_

JsonSerializer mrs::json::ResponseJsonTemplate::serializer_
private

◆ url_

std::string mrs::json::ResponseJsonTemplate::url_
private

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