summaryrefslogtreecommitdiffstats
path: root/library/cpp/histogram/adaptive/merger.h
diff options
context:
space:
mode:
authorzosimov <[email protected]>2022-02-10 16:50:32 +0300
committerDaniil Cherednik <[email protected]>2022-02-10 16:50:32 +0300
commita8f009e06d613c9567eb4c0f461dbed5e0d8092b (patch)
treed21fc5cd2e0d5ade9588ebc637729e86b924279b /library/cpp/histogram/adaptive/merger.h
parent06e925754c8de946ff79d538bde1e6424cbd4cbb (diff)
Restoring authorship annotation for <[email protected]>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/histogram/adaptive/merger.h')
-rw-r--r--library/cpp/histogram/adaptive/merger.h130
1 files changed, 65 insertions, 65 deletions
diff --git a/library/cpp/histogram/adaptive/merger.h b/library/cpp/histogram/adaptive/merger.h
index fc9a6b6a4f9..a1db5e4c4bc 100644
--- a/library/cpp/histogram/adaptive/merger.h
+++ b/library/cpp/histogram/adaptive/merger.h
@@ -1,68 +1,68 @@
-#pragma once
-
-#include <util/generic/buffer.h>
-
-namespace NKiwiAggr {
- class IMerger {
- private:
- bool IsMerged;
+#pragma once
+
+#include <util/generic/buffer.h>
+
+namespace NKiwiAggr {
+ class IMerger {
+ private:
+ bool IsMerged;
ui32 AutoMergeInterval; // Call Merge() after each AutoMergeInterval calls of Add(); zero means no autoMerge
- ui32 NotMergedCount;
-
- public:
- IMerger(ui32 autoMergeInterval = 0)
- : IsMerged(true)
- , AutoMergeInterval(autoMergeInterval)
- , NotMergedCount(0)
- {
- }
-
+ ui32 NotMergedCount;
+
+ public:
+ IMerger(ui32 autoMergeInterval = 0)
+ : IsMerged(true)
+ , AutoMergeInterval(autoMergeInterval)
+ , NotMergedCount(0)
+ {
+ }
+
virtual ~IMerger() {
- }
-
- // returns true if something is added
- virtual bool Add(const void* data, size_t size) {
- if (AddImpl(data, size)) {
- AutoMerge();
- return true;
- }
- return false;
- }
-
- virtual void Merge() {
- if (!IsMerged) {
- MergeImpl();
- IsMerged = true;
- }
- }
-
- virtual void Reset() {
- ResetImpl();
- IsMerged = true;
- }
-
- // You can add some more result-getters if you want.
- // Do not forget to call Merge() in the beginning of each merger.
- virtual void GetResult(TBuffer& buffer) = 0;
-
- protected:
- // AutoMerge() is called in Add() after each AddImpl()
- void AutoMerge() {
- IsMerged = false;
- if (AutoMergeInterval) {
- ++NotMergedCount;
- if (NotMergedCount >= AutoMergeInterval) {
- MergeImpl();
- IsMerged = true;
- NotMergedCount = 0;
- }
- }
- }
-
- // Implementation of merger: define it in derivatives
- virtual bool AddImpl(const void* data, size_t size) = 0; // returns true if something is added
- virtual void MergeImpl() = 0;
- virtual void ResetImpl() = 0;
- };
-
+ }
+
+ // returns true if something is added
+ virtual bool Add(const void* data, size_t size) {
+ if (AddImpl(data, size)) {
+ AutoMerge();
+ return true;
+ }
+ return false;
+ }
+
+ virtual void Merge() {
+ if (!IsMerged) {
+ MergeImpl();
+ IsMerged = true;
+ }
+ }
+
+ virtual void Reset() {
+ ResetImpl();
+ IsMerged = true;
+ }
+
+ // You can add some more result-getters if you want.
+ // Do not forget to call Merge() in the beginning of each merger.
+ virtual void GetResult(TBuffer& buffer) = 0;
+
+ protected:
+ // AutoMerge() is called in Add() after each AddImpl()
+ void AutoMerge() {
+ IsMerged = false;
+ if (AutoMergeInterval) {
+ ++NotMergedCount;
+ if (NotMergedCount >= AutoMergeInterval) {
+ MergeImpl();
+ IsMerged = true;
+ NotMergedCount = 0;
+ }
+ }
+ }
+
+ // Implementation of merger: define it in derivatives
+ virtual bool AddImpl(const void* data, size_t size) = 0; // returns true if something is added
+ virtual void MergeImpl() = 0;
+ virtual void ResetImpl() = 0;
+ };
+
}