1
1
#pragma once
2
+
2
3
#include " defs.h"
3
- #include < algorithm>
4
- #include " hullds_ut.h"
5
- #include " hullds_generic_it.h"
6
- #include < ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice_it.h>
7
- #include < ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap_it.h>
8
- #include < ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment_impl.h>
9
- #include < ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap_it.h>
4
+ #include < ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment.h>
10
5
#include < ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.h>
11
6
#include < ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it.h>
12
7
#include < ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec_it.h>
8
+ #include < algorithm>
13
9
14
10
namespace NKikimr {
15
11
@@ -146,19 +142,17 @@ namespace NKikimr {
146
142
}
147
143
}
148
144
149
- template <typename TMerger>
150
- void Walk (TKey key, TMerger merger, std::function<bool (const TKey&, TMerger)> callback) {
151
- for (int idx = 0 ; idx < HeapItems; idx++) {
152
- auto *iter = Heap[idx];
153
- iter->Seek (key);
154
- while (iter->Valid ()) {
155
- iter->PutToMerger (&merger);
156
- if (!callback (iter->GetCurKey (), merger)) {
157
- break ;
158
- }
159
- merger.Clear ();
160
- Move (nullptr );
145
+ template <typename TMerger, typename TCallback>
146
+ void Walk (TKey key, TMerger merger, TCallback&& callback) {
147
+ Seek (key);
148
+ while (Valid ()) {
149
+ const TKey key = GetCurKey ();
150
+ PutToMergerAndAdvance (merger);
151
+ merger->Finish ();
152
+ if (!callback (key, merger)) {
153
+ break ;
161
154
}
155
+ merger->Clear ();
162
156
}
163
157
}
164
158
@@ -168,4 +162,4 @@ namespace NKikimr {
168
162
}
169
163
};
170
164
171
- } // NKikimr
165
+ } // NKikimr
0 commit comments