diff options
author | somov <somov@yandex-team.ru> | 2022-02-10 16:45:47 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:47 +0300 |
commit | a5950576e397b1909261050b8c7da16db58f10b1 (patch) | |
tree | 7ba7677f6a4c3e19e2cefab34d16df2c8963b4d4 /library/cpp/messagebus/event_loop.h | |
parent | 81eddc8c0b55990194e112b02d127b87d54164a9 (diff) | |
download | ydb-a5950576e397b1909261050b8c7da16db58f10b1.tar.gz |
Restoring authorship annotation for <somov@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/messagebus/event_loop.h')
-rw-r--r-- | library/cpp/messagebus/event_loop.h | 108 |
1 files changed, 54 insertions, 54 deletions
diff --git a/library/cpp/messagebus/event_loop.h b/library/cpp/messagebus/event_loop.h index d5b0a53b0c..677ade2fff 100644 --- a/library/cpp/messagebus/event_loop.h +++ b/library/cpp/messagebus/event_loop.h @@ -1,72 +1,72 @@ -#pragma once - +#pragma once + #include <util/generic/object_counter.h> -#include <util/generic/ptr.h> -#include <util/network/init.h> +#include <util/generic/ptr.h> +#include <util/network/init.h> #include <util/network/socket.h> - -namespace NEventLoop { - struct IEventHandler + +namespace NEventLoop { + struct IEventHandler : public TAtomicRefCount<IEventHandler> { virtual void HandleEvent(SOCKET socket, void* cookie) = 0; virtual ~IEventHandler() { } - }; - - typedef TIntrusivePtr<IEventHandler> TEventHandlerPtr; - - class TEventLoop; - + }; + + typedef TIntrusivePtr<IEventHandler> TEventHandlerPtr; + + class TEventLoop; + // TODO: make TChannel itself a pointer // to avoid confusion with Drop and Unregister - class TChannel + class TChannel : public TAtomicRefCount<TChannel> { - public: - ~TChannel(); - - void EnableRead(); - void DisableRead(); - void EnableWrite(); - void DisableWrite(); - - void Unregister(); - - SOCKET GetSocket() const; + public: + ~TChannel(); + + void EnableRead(); + void DisableRead(); + void EnableWrite(); + void DisableWrite(); + + void Unregister(); + + SOCKET GetSocket() const; TSocket GetSocketPtr() const; - - private: - class TImpl; - friend class TEventLoop; - + + private: + class TImpl; + friend class TEventLoop; + TObjectCounter<TChannel> ObjectCounter; TChannel(TImpl*); - - private: - THolder<TImpl> Impl; - }; - - typedef TIntrusivePtr<TChannel> TChannelPtr; - - class TEventLoop { - public: + + private: + THolder<TImpl> Impl; + }; + + typedef TIntrusivePtr<TChannel> TChannelPtr; + + class TEventLoop { + public: TEventLoop(const char* name = nullptr); - ~TEventLoop(); - - void Run(); - void Stop(); + ~TEventLoop(); + + void Run(); + void Stop(); bool IsRunning(); - + TChannelPtr Register(TSocket socket, TEventHandlerPtr, void* cookie = nullptr); - - private: - class TImpl; - friend class TChannel; - + + private: + class TImpl; + friend class TChannel; + TObjectCounter<TEventLoop> ObjectCounter; - private: - THolder<TImpl> Impl; - }; - -} + private: + THolder<TImpl> Impl; + }; + +} |