diff options
| author | manavrion <[email protected]> | 2022-02-10 16:49:16 +0300 | 
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:49:16 +0300 | 
| commit | 29d0b2eeae154d04156e0698067c0c21a97ea61d (patch) | |
| tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 | |
| parent | 109de9f4c31b6caaa736ce29a61fce05851e7c02 (diff) | |
Restoring authorship annotation for <[email protected]>. Commit 2 of 2.
| -rw-r--r-- | library/cpp/lwtrace/mon/analytics/util.h | 4 | ||||
| -rw-r--r-- | library/cpp/lwtrace/mon/mon_lwtrace.cpp | 20 | ||||
| -rw-r--r-- | library/cpp/string_utils/url/url.cpp | 30 | ||||
| -rw-r--r-- | library/cpp/string_utils/url/url.h | 44 | ||||
| -rw-r--r-- | util/string/split.h | 36 | ||||
| -rw-r--r-- | util/string/vector.cpp | 10 | ||||
| -rw-r--r-- | util/string/vector.h | 80 | ||||
| -rw-r--r-- | ydb/core/mind/hive/monitoring.cpp | 4 | ||||
| -rw-r--r-- | ydb/core/util/failure_injection.cpp | 2 | 
9 files changed, 115 insertions, 115 deletions
| diff --git a/library/cpp/lwtrace/mon/analytics/util.h b/library/cpp/lwtrace/mon/analytics/util.h index 7eb0f0f67fd..e07d06cc43f 100644 --- a/library/cpp/lwtrace/mon/analytics/util.h +++ b/library/cpp/lwtrace/mon/analytics/util.h @@ -18,7 +18,7 @@ inline void ParseNameAndOpts(const TString& nameAndOpts, TString& name, THashSet      name.clear();      opts.clear();      bool first = true; -    auto vs = SplitString(nameAndOpts, "-");  +    auto vs = SplitString(nameAndOpts, "-");      for (const auto& s : vs) {          if (first) {              name = s; @@ -31,7 +31,7 @@ inline void ParseNameAndOpts(const TString& nameAndOpts, TString& name, THashSet  inline TString ParseName(const TString& nameAndOpts)  { -    auto vs = SplitString(nameAndOpts, "-");  +    auto vs = SplitString(nameAndOpts, "-");      if (vs.empty()) {          return TString();      } else { diff --git a/library/cpp/lwtrace/mon/mon_lwtrace.cpp b/library/cpp/lwtrace/mon/mon_lwtrace.cpp index 023655af3c4..a61ee9ce22d 100644 --- a/library/cpp/lwtrace/mon/mon_lwtrace.cpp +++ b/library/cpp/lwtrace/mon/mon_lwtrace.cpp @@ -352,7 +352,7 @@ private:      void ParseQuery(const TString& s)      { -        auto parts = SplitString(s, ".");  +        auto parts = SplitString(s, ".");          WWW_CHECK(parts.size() <= 3, "too many name specifiers");          ParseParamSelector(parts.back());          if (parts.size() >= 2) { @@ -575,12 +575,12 @@ struct TAdHocTraceConfig {      bool ParseId(const TString& id)      {          if (IsAdHocId(id)) { -            for (const TString& block : SplitString(id, "/")) {  +            for (const TString& block : SplitString(id, "/")) {                  if (block.empty()) {                      continue;                  }                  size_t cutPos = (block[0] == '.'? 1: 0); -                TVector<TString> parts = SplitString(block.substr(cutPos), ".");  +                TVector<TString> parts = SplitString(block.substr(cutPos), ".");                  WWW_CHECK(parts.size() >= 2, "too few parts in adhoc trace id '%s' block '%s'", id.data(), block.data());                  auto blockPb = Cfg.AddBlocks();                  auto pdescPb = blockPb->MutableProbeDesc(); @@ -666,7 +666,7 @@ private:          // NOTE: checks for longer action names should go first, your captain.          if (a.substr(0, 3) == "lsr") {              auto pb = action->MutableRunLogShuttleAction(); -            for (const TString& opt : SplitString(a.substr(3), "-")) {  +            for (const TString& opt : SplitString(a.substr(3), "-")) {                  if (!opt.empty()) {                      switch (opt[0]) {                      case 'i': pb->SetIgnore(true); break; @@ -678,7 +678,7 @@ private:              }          } else if (a.substr(0, 3) == "lse") {              auto pb = action->MutableEditLogShuttleAction(); -            for (const TString& opt : SplitString(a.substr(3), "-")) {  +            for (const TString& opt : SplitString(a.substr(3), "-")) {                  if (!opt.empty()) {                      switch (opt[0]) {                      case 'i': pb->SetIgnore(true); break; @@ -690,7 +690,7 @@ private:              action->MutableDropLogShuttleAction();          } else if (a.substr(0, 1) == "l") {              auto pb = action->MutableLogAction(); -            for (const TString& opt : SplitString(a.substr(1), "-")) {  +            for (const TString& opt : SplitString(a.substr(1), "-")) {                  if (!opt.empty()) {                      switch (opt[0]) {                      case 't': pb->SetLogTimestamp(true); break; @@ -1027,7 +1027,7 @@ TVector<TString> Subvalues(const TCgiParameters& e, const TString& key)          return TVector<TString>();      } else {          TVector<TString> ret; -        for (const TString& s : SplitString(e.Get(key), ":", 0, KEEP_EMPTY_TOKENS)) {  +        for (const TString& s : SplitString(e.Get(key), ":", 0, KEEP_EMPTY_TOKENS)) {              ret.push_back(UnescapeSubvalue(s));          }          if (ret.empty()) { @@ -1039,7 +1039,7 @@ TVector<TString> Subvalues(const TCgiParameters& e, const TString& key)  TString ParseTagsOut(const TString& taggedStr, TTags& tags)  { -    auto vec = SplitString(taggedStr, "-");  +    auto vec = SplitString(taggedStr, "-");      if (vec.empty()) {          return "";      } @@ -4363,12 +4363,12 @@ private:                  SeriesSelectors(out, e, "xn", "yns", data);                  out.Clear();                  out << NMonitoring::HTTPOKJSON; -                out << ToJsonFlot(data, xn, SplitString(e.Get("yns"), ":"));  +                out << ToJsonFlot(data, xn, SplitString(e.Get("yns"), ":"));              } else if (outFormat == "flot") {                  SeriesSelectors(out, e, "xn", "yns", data);                  TString selectors = out.Str(); -                TVector<TString> ynos = SplitString(e.Get("yns"), ":");  +                TVector<TString> ynos = SplitString(e.Get("yns"), ":");                  out.Clear();                  out << NMonitoring::HTTPOKHTML;                  out << "<!DOCTYPE html>" << Endl; diff --git a/library/cpp/string_utils/url/url.cpp b/library/cpp/string_utils/url/url.cpp index ffd610d21e3..85f4ac5d693 100644 --- a/library/cpp/string_utils/url/url.cpp +++ b/library/cpp/string_utils/url/url.cpp @@ -62,17 +62,17 @@ namespace {      }  } -namespace NUrl {  -  -    TSplitUrlToHostAndPathResult SplitUrlToHostAndPath(const TStringBuf url) {  -        TStringBuf host = GetSchemeHostAndPort(url, /*trimHttp=*/false, /*trimDefaultPort=*/false);  -        TStringBuf path = url;  -        path.SkipPrefix(host);  -        return {host, path};  -    }  -  -} // namespace NUrl  -  +namespace NUrl { + +    TSplitUrlToHostAndPathResult SplitUrlToHostAndPath(const TStringBuf url) { +        TStringBuf host = GetSchemeHostAndPort(url, /*trimHttp=*/false, /*trimDefaultPort=*/false); +        TStringBuf path = url; +        path.SkipPrefix(host); +        return {host, path}; +    } + +} // namespace NUrl +  size_t GetHttpPrefixSize(const char* url, bool ignorehttps) noexcept {      return GetHttpPrefixSizeImpl<char>(url, TUncheckedSize(), ignorehttps);  } @@ -183,13 +183,13 @@ TStringBuf GetSchemeHostAndPort(const TStringBuf url, bool trimHttp, bool trimDe  }  void SplitUrlToHostAndPath(const TStringBuf url, TStringBuf& host, TStringBuf& path) { -    auto [hostBuf, pathBuf] = NUrl::SplitUrlToHostAndPath(url);  -    host = hostBuf;  -    path = pathBuf;  +    auto [hostBuf, pathBuf] = NUrl::SplitUrlToHostAndPath(url); +    host = hostBuf; +    path = pathBuf;  }  void SplitUrlToHostAndPath(const TStringBuf url, TString& host, TString& path) { -    auto [hostBuf, pathBuf] = NUrl::SplitUrlToHostAndPath(url);  +    auto [hostBuf, pathBuf] = NUrl::SplitUrlToHostAndPath(url);      host = hostBuf;      path = pathBuf;  } diff --git a/library/cpp/string_utils/url/url.h b/library/cpp/string_utils/url/url.h index ab8924cdc20..84137ccc57d 100644 --- a/library/cpp/string_utils/url/url.h +++ b/library/cpp/string_utils/url/url.h @@ -1,28 +1,28 @@  #pragma once  #include <util/generic/fwd.h> -#include <util/generic/strbuf.h>  - -namespace NUrl {  -  -    /**  -     * Splits URL to host and path  -     * Example:  -     * auto [host, path] = SplitUrlToHostAndPath(url);  -     *  -     * @param[in] url                   any URL  -     * @param[out] <host, path>     parsed host and path  -     */  -    struct TSplitUrlToHostAndPathResult {  -        TStringBuf host;  -        TStringBuf path;  -    };  -  -    Y_PURE_FUNCTION  -    TSplitUrlToHostAndPathResult SplitUrlToHostAndPath(const TStringBuf url);  -  -} // namespace NUrl  -  +#include <util/generic/strbuf.h> + +namespace NUrl { + +    /** +     * Splits URL to host and path +     * Example: +     * auto [host, path] = SplitUrlToHostAndPath(url); +     * +     * @param[in] url                   any URL +     * @param[out] <host, path>     parsed host and path +     */ +    struct TSplitUrlToHostAndPathResult { +        TStringBuf host; +        TStringBuf path; +    }; + +    Y_PURE_FUNCTION +    TSplitUrlToHostAndPathResult SplitUrlToHostAndPath(const TStringBuf url); + +} // namespace NUrl +  Y_PURE_FUNCTION  size_t GetHttpPrefixSize(const char* url, bool ignorehttps = false) noexcept;  Y_PURE_FUNCTION diff --git a/util/string/split.h b/util/string/split.h index 153f5c2ef3e..bc46d9e64c6 100644 --- a/util/string/split.h +++ b/util/string/split.h @@ -22,20 +22,20 @@  // NOTE: Check StringSplitter below to get more convenient split string interface.  namespace NStringSplitPrivate { -  -    template <class T, class I, class = void>  + +    template <class T, class I, class = void>      struct TIsConsumer: std::false_type {}; -  -    template <class T, class I>  -    struct TIsConsumer<  -        T, I,  -        TVoidT<decltype(std::declval<T>().Consume(  -            std::declval<I>(), std::declval<I>(), std::declval<I>()))>>  -        : std::true_type {};  -  -    template <class T, class I>  -    constexpr bool TIsConsumerV = TIsConsumer<T, I>::value;  -  + +    template <class T, class I> +    struct TIsConsumer< +        T, I, +        TVoidT<decltype(std::declval<T>().Consume( +            std::declval<I>(), std::declval<I>(), std::declval<I>()))>> +        : std::true_type {}; + +    template <class T, class I> +    constexpr bool TIsConsumerV = TIsConsumer<T, I>::value; +      template <class T>      T* Find(T* str, std::common_type_t<T> ch) {          for (; *str; ++str) { @@ -47,11 +47,11 @@ namespace NStringSplitPrivate {          return nullptr;      } -}  -  +} +  template <class I, class TDelim, class TConsumer>  std::enable_if_t<::NStringSplitPrivate::TIsConsumerV<TConsumer, I>> -SplitString(I b, I e, const TDelim& d, TConsumer&& c) {  +SplitString(I b, I e, const TDelim& d, TConsumer&& c) {      I l, i;      do { @@ -62,7 +62,7 @@ SplitString(I b, I e, const TDelim& d, TConsumer&& c) {  template <class I, class TDelim, class TConsumer>  std::enable_if_t<::NStringSplitPrivate::TIsConsumerV<TConsumer, I>> -SplitString(I b, const TDelim& d, TConsumer&& c) {  +SplitString(I b, const TDelim& d, TConsumer&& c) {      I l, i;      do { @@ -404,7 +404,7 @@ static inline void Split(char* buf, char ch, T* res) {      TCharDelimiter<char> delim(ch);      TSimplePusher<T> pusher = {res}; -    SplitString(buf, delim, pusher);  +    SplitString(buf, delim, pusher);  }  /// Split string into res vector. Res vector is cleared before split. diff --git a/util/string/vector.cpp b/util/string/vector.cpp index 8d668d8f3db..9ba401f0a23 100644 --- a/util/string/vector.cpp +++ b/util/string/vector.cpp @@ -46,7 +46,7 @@ static inline void DoSplit0(C* res, const TBasicStringBuf<TChr> str, TDelim& d,  }  template <typename TChr> -static void SplitStringImplT(TVector<std::conditional_t<std::is_same<TChr, wchar16>::value, TUtf16String, TString>>* res,  +static void SplitStringImplT(TVector<std::conditional_t<std::is_same<TChr, wchar16>::value, TUtf16String, TString>>* res,                               const TBasicStringBuf<TChr> str, const TChr* delim, size_t maxFields, int options) {      if (!*delim) {          return; @@ -63,19 +63,19 @@ static void SplitStringImplT(TVector<std::conditional_t<std::is_same<TChr, wchar      }  } -void ::NPrivate::SplitStringImpl(TVector<TString>* res, const char* ptr, const char* delim, size_t maxFields, int options) {  +void ::NPrivate::SplitStringImpl(TVector<TString>* res, const char* ptr, const char* delim, size_t maxFields, int options) {      return SplitStringImplT<char>(res, TStringBuf(ptr), delim, maxFields, options);  } -void ::NPrivate::SplitStringImpl(TVector<TString>* res, const char* ptr, size_t len, const char* delim, size_t maxFields, int options) {  +void ::NPrivate::SplitStringImpl(TVector<TString>* res, const char* ptr, size_t len, const char* delim, size_t maxFields, int options) {      return SplitStringImplT<char>(res, TStringBuf(ptr, len), delim, maxFields, options);  } -void ::NPrivate::SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, const wchar16* delimiter, size_t maxFields, int options) {  +void ::NPrivate::SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, const wchar16* delimiter, size_t maxFields, int options) {      return SplitStringImplT<wchar16>(res, TWtringBuf(ptr), delimiter, maxFields, options);  } -void ::NPrivate::SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, size_t len, const wchar16* delimiter, size_t maxFields, int options) {  +void ::NPrivate::SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, size_t len, const wchar16* delimiter, size_t maxFields, int options) {      return SplitStringImplT<wchar16>(res, TWtringBuf(ptr, len), delimiter, maxFields, options);  } diff --git a/util/string/vector.h b/util/string/vector.h index 392c12cbb87..e36c348bbef 100644 --- a/util/string/vector.h +++ b/util/string/vector.h @@ -15,54 +15,54 @@  //  // NOTE: Check StringSplitter below to get more convenient split string interface. -namespace NPrivate {  - -    void SplitStringImpl(TVector<TString>* res, const char* ptr,  -                         const char* delimiter, size_t maxFields, int options);  -    void SplitStringImpl(TVector<TString>* res, const char* ptr, size_t len,  -                         const char* delimiter, size_t maxFields, int options);  - -    void SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr,  -                         const wchar16* delimiter, size_t maxFields, int options);  -    void SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, size_t len,  -                         const wchar16* delimiter, size_t maxFields, int options);  -  -    template <typename C>  -    struct TStringDeducer;  -  -    template <>  -    struct TStringDeducer<char> {  -        using type = TString;  -    };  -  -    template <>  -    struct TStringDeducer<wchar16> {  -        using type = TUtf16String;  -    };  -}  -  -template <typename C>  -TVector<typename ::NPrivate::TStringDeducer<C>::type>  -SplitString(const C* ptr, const C* delimiter,  -            size_t maxFields = 0, int options = 0) {  -    TVector<typename ::NPrivate::TStringDeducer<C>::type> res;  +namespace NPrivate { + +    void SplitStringImpl(TVector<TString>* res, const char* ptr, +                         const char* delimiter, size_t maxFields, int options); +    void SplitStringImpl(TVector<TString>* res, const char* ptr, size_t len, +                         const char* delimiter, size_t maxFields, int options); + +    void SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, +                         const wchar16* delimiter, size_t maxFields, int options); +    void SplitStringImpl(TVector<TUtf16String>* res, const wchar16* ptr, size_t len, +                         const wchar16* delimiter, size_t maxFields, int options); + +    template <typename C> +    struct TStringDeducer; + +    template <> +    struct TStringDeducer<char> { +        using type = TString; +    }; + +    template <> +    struct TStringDeducer<wchar16> { +        using type = TUtf16String; +    }; +} + +template <typename C> +TVector<typename ::NPrivate::TStringDeducer<C>::type> +SplitString(const C* ptr, const C* delimiter, +            size_t maxFields = 0, int options = 0) { +    TVector<typename ::NPrivate::TStringDeducer<C>::type> res;      ::NPrivate::SplitStringImpl(&res, ptr, delimiter, maxFields, options);      return res;  } -template <typename C>  -TVector<typename ::NPrivate::TStringDeducer<C>::type>  -SplitString(const C* ptr, size_t len, const C* delimiter,  -            size_t maxFields = 0, int options = 0) {  -    TVector<typename ::NPrivate::TStringDeducer<C>::type> res;  +template <typename C> +TVector<typename ::NPrivate::TStringDeducer<C>::type> +SplitString(const C* ptr, size_t len, const C* delimiter, +            size_t maxFields = 0, int options = 0) { +    TVector<typename ::NPrivate::TStringDeducer<C>::type> res;      ::NPrivate::SplitStringImpl(&res, ptr, len, delimiter, maxFields, options);      return res;  } -template <typename C>  -TVector<typename ::NPrivate::TStringDeducer<C>::type>  -SplitString(const typename ::NPrivate::TStringDeducer<C>::type& str, const C* delimiter,  -            size_t maxFields = 0, int options = 0) {  +template <typename C> +TVector<typename ::NPrivate::TStringDeducer<C>::type> +SplitString(const typename ::NPrivate::TStringDeducer<C>::type& str, const C* delimiter, +            size_t maxFields = 0, int options = 0) {      return SplitString(str.data(), str.size(), delimiter, maxFields, options);  } diff --git a/ydb/core/mind/hive/monitoring.cpp b/ydb/core/mind/hive/monitoring.cpp index 26f071f8dde..7e9a83b354e 100644 --- a/ydb/core/mind/hive/monitoring.cpp +++ b/ydb/core/mind/hive/monitoring.cpp @@ -733,7 +733,7 @@ public:              db.Table<Schema::State>().Key(TSchemeIds::State::DefaultState).Update<Schema::State::Config>(Self->DatabaseConfig);          }          if (params.contains("allowedMetrics")) { -            TVector<TString> allowedMetrics = SplitString(params.Get("allowedMetrics"), ";");  +            TVector<TString> allowedMetrics = SplitString(params.Get("allowedMetrics"), ";");              for (TStringBuf tabletAllowedMetrics : allowedMetrics) {                  TStringBuf tabletType = tabletAllowedMetrics.NextTok(':');                  TTabletTypes::EType type = GetShortTabletType(TString(tabletType)); @@ -2129,7 +2129,7 @@ public:      {          TabletId = FromStringWithDefault<TTabletId>(Event->Cgi().Get("tablet"), TabletId);          TabletType = (TTabletTypes::EType)FromStringWithDefault<int>(Event->Cgi().Get("type"), TabletType); -        TabletChannels = Scan<ui32>(SplitString(Event->Cgi().Get("channel"), ","));  +        TabletChannels = Scan<ui32>(SplitString(Event->Cgi().Get("channel"), ","));          TabletPercent = FromStringWithDefault<int>(Event->Cgi().Get("percent"), TabletPercent);          GroupId = FromStringWithDefault(Event->Cgi().Get("group"), GroupId);          ForcedGroupIds = Scan<ui32>(SplitString(Event->Cgi().Get("forcedGroup"), ",")); diff --git a/ydb/core/util/failure_injection.cpp b/ydb/core/util/failure_injection.cpp index 5287955f63c..9eeaaa968ba 100644 --- a/ydb/core/util/failure_injection.cpp +++ b/ydb/core/util/failure_injection.cpp @@ -279,7 +279,7 @@ namespace NKikimr {                              }                              return;                          } -                        items.emplace_back(std::move(probe), Nothing(), hitCount);  +                        items.emplace_back(std::move(probe), Nothing(), hitCount);                          if (pos < queue.size()) {                              ++pos;                          } else { | 
