MCPcopy Create free account
hub / github.com/catboost/catboost / TQuickCgiParam

Method TQuickCgiParam

library/cpp/cgiparam/cgiparam.cpp:258–276  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

256}
257
258TQuickCgiParam::TQuickCgiParam(const TStringBuf cgiParamStr) {
259 UnescapeBuf.ReserveAndResize(CgiUnescapeBufLen(cgiParamStr.size()));
260 char* buf = UnescapeBuf.begin();
261
262 auto f = [this, &buf](const TStringBuf key, const TStringBuf val) {
263 TStringBuf name = CgiUnescapeBuf(buf, key);
264 buf += name.size() + 1;
265 TStringBuf value = CgiUnescapeBuf(buf, val);
266 buf += value.size() + 1;
267 Y_ASSERT(buf <= UnescapeBuf.begin() + UnescapeBuf.capacity() + 1 /*trailing zero*/);
268 emplace(name, value);
269 };
270
271 DoScan<false>(cgiParamStr, f);
272
273 if (buf != UnescapeBuf.begin()) {
274 UnescapeBuf.ReserveAndResize(buf - UnescapeBuf.begin() - 1 /*trailing zero*/);
275 }
276}
277
278TStringBuf TQuickCgiParam::Get(const TStringBuf name, size_t pos) const noexcept Y_LIFETIME_BOUND {
279 const auto pair = equal_range(name);

Callers

nothing calls this directly

Calls 6

CgiUnescapeBufLenFunction · 0.85
CgiUnescapeBufFunction · 0.85
emplaceFunction · 0.50
sizeMethod · 0.45
beginMethod · 0.45
capacityMethod · 0.45

Tested by

no test coverage detected