aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/monlib/encode/buffered/string_pool.h
diff options
context:
space:
mode:
authorSergey Polovko <sergey@polovko.me>2022-02-10 16:47:03 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:03 +0300
commit2e714b5ebd40a1f4cc31c27f1ad6e49ca6d895f5 (patch)
treeb83306b6e37edeea782e9eed673d89286c4fef35 /library/cpp/monlib/encode/buffered/string_pool.h
parent3e0b762a82514bac89c1dd6ea7211e381d8aa248 (diff)
downloadydb-2e714b5ebd40a1f4cc31c27f1ad6e49ca6d895f5.tar.gz
Restoring authorship annotation for Sergey Polovko <sergey@polovko.me>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/monlib/encode/buffered/string_pool.h')
-rw-r--r--library/cpp/monlib/encode/buffered/string_pool.h130
1 files changed, 65 insertions, 65 deletions
diff --git a/library/cpp/monlib/encode/buffered/string_pool.h b/library/cpp/monlib/encode/buffered/string_pool.h
index 2d67fd37a3..00e5644608 100644
--- a/library/cpp/monlib/encode/buffered/string_pool.h
+++ b/library/cpp/monlib/encode/buffered/string_pool.h
@@ -1,14 +1,14 @@
-#pragma once
-
-#include <util/generic/hash.h>
-#include <util/generic/vector.h>
-
-namespace NMonitoring {
- ////////////////////////////////////////////////////////////////////////////////
- // TStringPoolBuilder
- ////////////////////////////////////////////////////////////////////////////////
- class TStringPoolBuilder {
- public:
+#pragma once
+
+#include <util/generic/hash.h>
+#include <util/generic/vector.h>
+
+namespace NMonitoring {
+ ////////////////////////////////////////////////////////////////////////////////
+ // TStringPoolBuilder
+ ////////////////////////////////////////////////////////////////////////////////
+ class TStringPoolBuilder {
+ public:
struct TValue: TNonCopyable {
TValue(ui32 idx, ui32 freq)
: Index{idx}
@@ -16,77 +16,77 @@ namespace NMonitoring {
{
}
- ui32 Index;
- ui32 Frequency;
- };
-
- public:
- const TValue* PutIfAbsent(TStringBuf str);
+ ui32 Index;
+ ui32 Frequency;
+ };
+
+ public:
+ const TValue* PutIfAbsent(TStringBuf str);
const TValue* GetByIndex(ui32 index) const;
-
+
/// Determines whether pool must be sorted by value frequencies
TStringPoolBuilder& SetSorted(bool sorted) {
RequiresSorting_ = sorted;
return *this;
}
-
+
TStringPoolBuilder& Build();
- TStringBuf Get(ui32 index) const {
+ TStringBuf Get(ui32 index) const {
Y_ENSURE(IsBuilt_, "Pool must be sorted first");
- return StrVector_.at(index).first;
- }
-
+ return StrVector_.at(index).first;
+ }
+
TStringBuf Get(const TValue* value) const {
return StrVector_.at(value->Index).first;
}
- template <typename TConsumer>
- void ForEach(TConsumer&& c) {
+ template <typename TConsumer>
+ void ForEach(TConsumer&& c) {
Y_ENSURE(IsBuilt_, "Pool must be sorted first");
- for (const auto& value : StrVector_) {
- c(value.first, value.second->Index, value.second->Frequency);
- }
- }
-
- size_t BytesSize() const noexcept {
- return BytesSize_;
- }
-
- size_t Count() const noexcept {
- return StrMap_.size();
- }
-
- private:
- THashMap<TString, TValue> StrMap_;
- TVector<std::pair<TStringBuf, TValue*>> StrVector_;
+ for (const auto& value : StrVector_) {
+ c(value.first, value.second->Index, value.second->Frequency);
+ }
+ }
+
+ size_t BytesSize() const noexcept {
+ return BytesSize_;
+ }
+
+ size_t Count() const noexcept {
+ return StrMap_.size();
+ }
+
+ private:
+ THashMap<TString, TValue> StrMap_;
+ TVector<std::pair<TStringBuf, TValue*>> StrVector_;
bool RequiresSorting_ = false;
bool IsBuilt_ = false;
- size_t BytesSize_ = 0;
- };
-
- ////////////////////////////////////////////////////////////////////////////////
- // TStringPool
- ////////////////////////////////////////////////////////////////////////////////
- class TStringPool {
- public:
- TStringPool(const char* data, ui32 size) {
- InitIndex(data, size);
- }
-
- TStringBuf Get(ui32 i) const {
- return Index_.at(i);
- }
-
+ size_t BytesSize_ = 0;
+ };
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // TStringPool
+ ////////////////////////////////////////////////////////////////////////////////
+ class TStringPool {
+ public:
+ TStringPool(const char* data, ui32 size) {
+ InitIndex(data, size);
+ }
+
+ TStringBuf Get(ui32 i) const {
+ return Index_.at(i);
+ }
+
size_t Size() const {
return Index_.size();
}
- private:
- void InitIndex(const char* data, ui32 size);
-
- private:
- TVector<TStringBuf> Index_;
- };
-
-}
+ private:
+ void InitIndex(const char* data, ui32 size);
+
+ private:
+ TVector<TStringBuf> Index_;
+ };
+
+}