/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
library/cpp/messagebus/acceptor.h
60 строк
1 KB
qkrorlqr
Initial NBS OpenSource export
28 апр 2023, 21:54
28 апр 2023, 21:54
783a858
Код
Авторство
О чём код?
#pragma once #include "acceptor_status.h" #include "defs.h" #include "event_loop.h" #include "netaddr.h" #include "session_impl.h" #include "shutdown_state.h" #include <library/cpp/messagebus/actor/actor.h> #include <util/system/event.h> namespace NBus { namespace NPrivate { class TAcceptor : public NEventLoop::IEventHandler, private ::NActor::TActor<TAcceptor> { friend struct TBusSessionImpl; friend class ::NActor::TActor<TAcceptor>; public: TAcceptor(TBusSessionImpl* session, ui64 acceptorId, SOCKET socket, const TNetAddr& addr); void HandleEvent(SOCKET socket, void* cookie) override; void Shutdown(); inline ::NActor::TActor<TAcceptor>* GetActor() { return this; } private: void SendStatus(TInstant now); void Act(::NActor::TDefaultTag); private: const ui64 AcceptorId; TBusSessionImpl* const Session; NEventLoop::TChannelPtr Channel; TAcceptorStatus Stats; TAtomicShutdownState ShutdownState; struct TGranStatus { TGranStatus(TDuration gran) : Listen(gran) { } TGranUp<TAcceptorStatus> Listen; }; TGranStatus GranStatus; }; } }