25#ifndef MYSQL_HARNESS_UTILITIES_INCLUDED
26#define MYSQL_HARNESS_UTILITIES_INCLUDED
33#include "harness_export.h"
98template <
typename Range>
103 typename Range::reverse_iterator
begin() {
return range_.rbegin(); }
105 typename Range::const_reverse_iterator
begin()
const {
109 typename Range::reverse_iterator
end() {
return range_.rend(); }
111 typename Range::const_reverse_iterator
end()
const {
return range_.rend(); }
130template <
typename Range>
138 const typename Map::key_type::first_type &first,
139 typename Map::iterator
start) {
140 typename Map::iterator finish =
start;
141 while (finish != assoc.end() && finish->first.first == first) ++finish;
142 return make_pair(
start, finish);
148 const typename Map::key_type::first_type &first) {
149 typedef typename Map::key_type::second_type SType;
151 assoc.lower_bound(make_pair(first, SType())));
155std::pair<typename Map::const_iterator, typename Map::const_iterator>
157 const typename Map::key_type::first_type &first,
158 typename Map::const_iterator
start) {
159 typename Map::const_iterator finish =
start;
160 while (finish != assoc.end() && finish->first.first == first) ++finish;
161 return make_pair(
start, finish);
165std::pair<typename Map::const_iterator, typename Map::const_iterator>
167 const typename Map::key_type::first_type &first) {
168 typedef typename Map::key_type::second_type SType;
170 assoc.lower_bound(make_pair(first, SType())));
179void strip(std::string *
str,
const char *chars =
" \t\n\r\f\v");
181std::string
strip_copy(std::string
str,
const char *chars =
" \t\n\r\f\v");
183bool matches_glob(
const std::string &word,
const std::string &pattern);
Class for creating a reverse range from another range.
Definition: utilities.h:99
Range & range_
Definition: utilities.h:114
Range::const_reverse_iterator end() const
Definition: utilities.h:111
Range::const_reverse_iterator begin() const
Definition: utilities.h:105
Range::reverse_iterator end()
Definition: utilities.h:109
Range::reverse_iterator begin()
Definition: utilities.h:103
RangeReverse(Range &range)
Definition: utilities.h:101
Definition: utilities.h:48
bool operator!=(const iterator &rhs)
Definition: utilities.h:59
bool operator==(const iterator &rhs)
Definition: utilities.h:57
iterator(Type *ptr)
Definition: utilities.h:50
Type & operator*()
Definition: utilities.h:61
Type * ptr_
Definition: utilities.h:66
const Type & operator*() const
Definition: utilities.h:63
iterator & operator++()
Definition: utilities.h:52
Class to turn C array into range.
Definition: utilities.h:46
iterator begin()
Definition: utilities.h:71
iterator end()
Definition: utilities.h:73
Range(Type *ptr, size_t length)
Definition: utilities.h:69
Type * start_
Definition: utilities.h:76
Type * finish_
Definition: utilities.h:77
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:176
static char * path
Definition: mysqldump.cc:133
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1054
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:75
bool regex_pattern_matches(const std::string &s, const std::string &pattern)
Definition: utilities-posix.cc:43
std::string dirname(const std::string &path)
Definition: utilities.cc:37
void strip(std::string *str, const char *chars)
Remove starting and trailing delimiters from string.
Definition: utilities.cc:53
Range< Type > make_range(Type *ptr, size_t length)
Create a range from a plain C array.
Definition: utilities.h:90
std::string strip_copy(std::string str, const char *chars)
Definition: utilities.cc:58
bool matches_glob(const std::string &word, const std::string &pattern)
Definition: utilities-posix.cc:37
std::pair< typename Map::iterator, typename Map::iterator > find_range_first(Map &assoc, const typename Map::key_type::first_type &first, typename Map::iterator start)
Definition: utilities.h:136
RangeReverse< Range > reverse(Range &x)
Iterate over a range in reverse.
Definition: utilities.h:131
std::string basename(const std::string &path)
Definition: utilities.cc:45
Type
Definition: resource_group_basic_types.h:32
Definition: gen_lex_token.cc:151