MCPcopy Create free account
hub / github.com/DeNA/HandlerSocket-Plugin-for-MySQL / split_tmpl_arr

Function split_tmpl_arr

libhsclient/string_util.cpp:111–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109}
110
111template <typename T> size_t
112split_tmpl_arr(char delim, const T& buf, T *parts, size_t parts_len)
113{
114 typedef typename T::value_type value_type;
115 size_t i = 0;
116 value_type *start = buf.begin();
117 value_type *const finish = buf.end();
118 for (i = 0; i < parts_len; ++i) {
119 value_type *const p = memchr_char(start, delim, finish - start);
120 if (p == 0) {
121 parts[i] = T(start, finish - start);
122 ++i;
123 break;
124 }
125 parts[i] = T(start, p - start);
126 start = p + 1;
127 }
128 const size_t r = i;
129 for (; i < parts_len; ++i) {
130 parts[i] = T();
131 }
132 return r;
133}
134
135size_t
136split(char delim, const string_ref& buf, string_ref *parts,

Callers 1

splitFunction · 0.85

Calls 3

memchr_charFunction · 0.85
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected