/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
cloud/blockstore/libs/storage/api/undelivered.cpp
51 строка
1 KB
robot-piglet
Intermediate changes
11 май 2023, 16:34
11 май 2023, 16:34
d8b29b9
Код
Авторство
О чём код?
#include "undelivered.h" #include <cloud/blockstore/libs/kikimr/helpers.h> namespace NCloud::NBlockStore::NStorage { using namespace NActors; //////////////////////////////////////////////////////////////////////////////// TActorId MakeUndeliveredHandlerServiceId() { return TActorId(0, "blk-undlvry"); } IEventHandlePtr CreateRequestWithNondeliveryTracking( const TActorId& destination, IEventHandle& ev) { auto undeliveredRequestActor = MakeUndeliveredHandlerServiceId(); if (ev.HasEvent()) { return std::make_unique<IEventHandle>( destination, ev.Sender, ev.ReleaseBase().Release(), ev.Flags | IEventHandle::FlagForwardOnNondelivery, ev.Cookie, &undeliveredRequestActor); } else { return std::make_unique<IEventHandle>( ev.Type, ev.Flags | IEventHandle::FlagForwardOnNondelivery, destination, ev.Sender, ev.ReleaseChainBuffer(), ev.Cookie, &undeliveredRequestActor); } } void ForwardRequestWithNondeliveryTracking( const TActorContext& ctx, const TActorId& destination, IEventHandle& ev) { auto event = CreateRequestWithNondeliveryTracking(destination, ev); ctx.Send(event.release()); } } // namespace NCloud::NBlockStore::NStorage