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:3935
 
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1078
 
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