26#ifndef ROUTER_SRC_ROUTING_GUIDELINES_SRC_UTILS_H_
27#define ROUTER_SRC_ROUTING_GUIDELINES_SRC_UTILS_H_
42std::string
str_strip(
const std::string &s,
43 const std::string &chars =
" \r\n\t");
45inline bool str_eq(std::string_view a, std::string_view b) {
51 return ::_stricmp(a, b) == 0;
53 return ::strcasecmp(a, b) == 0;
57inline bool str_caseeq(
const char *a,
const char *b,
size_t n) {
59 return ::_strnicmp(a, b,
n) == 0;
61 return ::strncasecmp(a, b,
n) == 0;
65inline bool str_caseeq(std::string_view lhs, std::string_view rhs) {
75 return ::_stricmp(a, b);
77 return ::strcasecmp(a, b);
81inline int str_casecmp(
const std::string &a,
const std::string &b) {
86 if (prefix.size() >
str.size())
return false;
88 for (
size_t i = 0; i < prefix.size(); ++i) {
99 return str.starts_with(prefix);
123template <
typename Container>
130bool is_ipv4(
const std::string &address);
131bool is_ipv6(
const std::string &address);
134std::string
network(
const std::string &address,
unsigned int bitlen);
143 const rapidjson::ParseResult &ok,
size_t chars);
static bool equal(const Item *i1, const Item *i2, const Field *f2)
Definition: sql_select.cc:3937
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1084
Definition: atomics_array.h:39
char tolower(const char &ch)
Definition: parsing_helpers.h:41
Definition: my_rapidjson_size_t.h:38
Definition: routing_guidelines_datatypes.h:31
bool str_ibeginswith(std::string_view str, std::string_view prefix)
Definition: utils.h:85
bool json_document_complete(const std::string &s)
Is JSON document held by the string complete or not.
Definition: utils.cc:232
bool is_ipv6(const std::string &host)
Definition: utils.cc:194
std::string str_upper(std::string_view s)
Convert a copy of an ASCII string to uppercase and return.
Definition: utils.h:103
std::string like_to_regexp(std::string_view pattern)
Definition: utils.cc:117
bool str_caseeq(const char *a, const char *b)
Definition: utils.h:49
std::string str_strip(const std::string &s, const std::string &chars)
Definition: utils.cc:65
std::string mysql_unescape_string(std::string_view s)
process escapes in a string , keep synchronous with sql_load unescape ("ntrb0ZN")
Definition: utils.cc:84
int str_casecmp(const char *a, const char *b)
Compares 2 strings case insensitive (for ascii)
Definition: utils.h:73
bool case_contains(const Container &container, std::string_view str)
Check if container contains identincal string independent of case.
Definition: utils.h:124
bool is_ipv4(const std::string &address)
Definition: utils.cc:190
std::string format_json_error(const std::string &s, const rapidjson::ParseResult &ok, size_t chars)
Format JSON parse error adding responsible JSON part.
Definition: utils.cc:72
std::string str_lower(std::string_view s)
Convert a copy of an ASCII string to lowercase and return.
Definition: utils.h:110
bool str_beginswith(std::string_view str, std::string_view prefix)
Definition: utils.h:98
std::string network(const std::string &address, unsigned int bitlen)
Compute network part of an IPv4 address.
Definition: utils.cc:210
bool str_eq(std::string_view a, std::string_view b)
Definition: utils.h:45
std::basic_string< Char > transform(std::basic_string_view< Char > s, F fun)
Definition: utils_string.h:53
const mysql_service_registry_t * r
Definition: pfs_example_plugin_employee.cc:86
int n
Definition: xcom_base.cc:509