blob: b35295160eb6dab986b47d7edac1c6579e73bd51 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#pragma once
#include "defs.h"
namespace NKikimr::NBlobDepot {
class TBlobDepot::TData::TResolveResultAccumulator {
const TActorId Sender;
const TActorId Recipient;
const ui64 Cookie;
const TActorId InterconnectSession;
std::deque<NKikimrBlobDepot::TEvResolveResult::TResolvedKey> Items;
std::unordered_map<TKey, size_t> KeyToIndex;
std::vector<bool> KeysToFilterOut;
public:
TResolveResultAccumulator(TEventHandleFat<TEvBlobDepot::TEvResolve>& ev);
void AddItem(NKikimrBlobDepot::TEvResolveResult::TResolvedKey&& item, const NKikimrBlobDepot::TBlobDepotConfig& config);
void Send(NKikimrProto::EReplyStatus status, std::optional<TString> errorReason);
std::deque<NKikimrBlobDepot::TEvResolveResult::TResolvedKey> ReleaseItems();
void AddKeyWithNoData(const TKey& key);
void AddKeyWithError(const TKey& key, const TString& errorReason);
const TActorId& GetSender() const { return Sender; }
ui64 GetCookie() const { return Cookie; }
};
} // NKikimr::NBlobDepot
|