aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/messagebus/handler.h
diff options
context:
space:
mode:
authorAnton Samokhvalov <pg83@yandex.ru>2022-02-10 16:45:15 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:15 +0300
commit72cb13b4aff9bc9cf22e49251bc8fd143f82538f (patch)
treeda2c34829458c7d4e74bdfbdf85dff449e9e7fb8 /library/cpp/messagebus/handler.h
parent778e51ba091dc39e7b7fcab2b9cf4dbedfb6f2b5 (diff)
downloadydb-72cb13b4aff9bc9cf22e49251bc8fd143f82538f.tar.gz
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/messagebus/handler.h')
-rw-r--r--library/cpp/messagebus/handler.h244
1 files changed, 122 insertions, 122 deletions
diff --git a/library/cpp/messagebus/handler.h b/library/cpp/messagebus/handler.h
index 60002c68a6..211b2f5bca 100644
--- a/library/cpp/messagebus/handler.h
+++ b/library/cpp/messagebus/handler.h
@@ -9,127 +9,127 @@
#include <util/generic/noncopyable.h>
namespace NBus {
- /////////////////////////////////////////////////////////////////
- /// \brief Interface to message bus handler
-
- struct IBusErrorHandler {
- friend struct ::NBus::NPrivate::TBusSessionImpl;
-
- private:
- TUseAfterFreeChecker UseAfterFreeChecker;
- TUseCountChecker UseCountChecker;
-
- public:
- /// called when message or reply can't be delivered
- virtual void OnError(TAutoPtr<TBusMessage> pMessage, EMessageStatus status);
-
- virtual ~IBusErrorHandler() {
- }
- };
-
- class TClientConnectionEvent {
- public:
- enum EType {
- CONNECTED,
- DISCONNECTED,
- };
-
- private:
- EType Type;
- ui64 Id;
- TNetAddr Addr;
-
- public:
- TClientConnectionEvent(EType type, ui64 id, TNetAddr addr)
- : Type(type)
- , Id(id)
- , Addr(addr)
- {
- }
-
- EType GetType() const {
- return Type;
- }
- ui64 GetId() const {
- return Id;
- }
- TNetAddr GetAddr() const {
- return Addr;
- }
- };
-
- class TOnMessageContext : TNonCopyable {
- private:
- THolder<TBusMessage> Message;
- TBusIdentity Ident;
- // TODO: we don't need to store session, we have connection in ident
- TBusServerSession* Session;
-
- public:
- TOnMessageContext()
- : Session()
- {
- }
- TOnMessageContext(TAutoPtr<TBusMessage> message, TBusIdentity& ident, TBusServerSession* session)
- : Message(message)
- , Session(session)
- {
- Ident.Swap(ident);
- }
-
- bool IsInWork() const {
- return Ident.IsInWork();
- }
-
- bool operator!() const {
- return !IsInWork();
- }
-
- TBusMessage* GetMessage() {
- return Message.Get();
- }
-
- TBusMessage* ReleaseMessage() {
- return Message.Release();
- }
-
- TBusServerSession* GetSession() {
- return Session;
- }
-
- template <typename U /* <: TBusMessage */>
- EMessageStatus SendReplyAutoPtr(TAutoPtr<U>& rep);
-
- EMessageStatus SendReplyMove(TBusMessageAutoPtr response);
-
- void AckMessage(TBusIdentity& ident);
-
- void ForgetRequest();
-
- void Swap(TOnMessageContext& that) {
- DoSwap(Message, that.Message);
- Ident.Swap(that.Ident);
- DoSwap(Session, that.Session);
- }
-
- TNetAddr GetPeerAddrNetAddr() const;
-
- bool IsConnectionAlive() const;
- };
-
- struct IBusServerHandler: public IBusErrorHandler {
- virtual void OnMessage(TOnMessageContext& onMessage) = 0;
- /// called when reply has been sent from destination
- virtual void OnSent(TAutoPtr<TBusMessage> pMessage);
- };
-
- struct IBusClientHandler: public IBusErrorHandler {
- /// called on source when reply arrives from destination
- virtual void OnReply(TAutoPtr<TBusMessage> pMessage, TAutoPtr<TBusMessage> pReply) = 0;
- /// called when client side message has gone into wire, place to call AckMessage()
- virtual void OnMessageSent(TBusMessage* pMessage);
- virtual void OnMessageSentOneWay(TAutoPtr<TBusMessage> pMessage);
- virtual void OnClientConnectionEvent(const TClientConnectionEvent&);
+ /////////////////////////////////////////////////////////////////
+ /// \brief Interface to message bus handler
+
+ struct IBusErrorHandler {
+ friend struct ::NBus::NPrivate::TBusSessionImpl;
+
+ private:
+ TUseAfterFreeChecker UseAfterFreeChecker;
+ TUseCountChecker UseCountChecker;
+
+ public:
+ /// called when message or reply can't be delivered
+ virtual void OnError(TAutoPtr<TBusMessage> pMessage, EMessageStatus status);
+
+ virtual ~IBusErrorHandler() {
+ }
+ };
+
+ class TClientConnectionEvent {
+ public:
+ enum EType {
+ CONNECTED,
+ DISCONNECTED,
+ };
+
+ private:
+ EType Type;
+ ui64 Id;
+ TNetAddr Addr;
+
+ public:
+ TClientConnectionEvent(EType type, ui64 id, TNetAddr addr)
+ : Type(type)
+ , Id(id)
+ , Addr(addr)
+ {
+ }
+
+ EType GetType() const {
+ return Type;
+ }
+ ui64 GetId() const {
+ return Id;
+ }
+ TNetAddr GetAddr() const {
+ return Addr;
+ }
};
-}
+ class TOnMessageContext : TNonCopyable {
+ private:
+ THolder<TBusMessage> Message;
+ TBusIdentity Ident;
+ // TODO: we don't need to store session, we have connection in ident
+ TBusServerSession* Session;
+
+ public:
+ TOnMessageContext()
+ : Session()
+ {
+ }
+ TOnMessageContext(TAutoPtr<TBusMessage> message, TBusIdentity& ident, TBusServerSession* session)
+ : Message(message)
+ , Session(session)
+ {
+ Ident.Swap(ident);
+ }
+
+ bool IsInWork() const {
+ return Ident.IsInWork();
+ }
+
+ bool operator!() const {
+ return !IsInWork();
+ }
+
+ TBusMessage* GetMessage() {
+ return Message.Get();
+ }
+
+ TBusMessage* ReleaseMessage() {
+ return Message.Release();
+ }
+
+ TBusServerSession* GetSession() {
+ return Session;
+ }
+
+ template <typename U /* <: TBusMessage */>
+ EMessageStatus SendReplyAutoPtr(TAutoPtr<U>& rep);
+
+ EMessageStatus SendReplyMove(TBusMessageAutoPtr response);
+
+ void AckMessage(TBusIdentity& ident);
+
+ void ForgetRequest();
+
+ void Swap(TOnMessageContext& that) {
+ DoSwap(Message, that.Message);
+ Ident.Swap(that.Ident);
+ DoSwap(Session, that.Session);
+ }
+
+ TNetAddr GetPeerAddrNetAddr() const;
+
+ bool IsConnectionAlive() const;
+ };
+
+ struct IBusServerHandler: public IBusErrorHandler {
+ virtual void OnMessage(TOnMessageContext& onMessage) = 0;
+ /// called when reply has been sent from destination
+ virtual void OnSent(TAutoPtr<TBusMessage> pMessage);
+ };
+
+ struct IBusClientHandler: public IBusErrorHandler {
+ /// called on source when reply arrives from destination
+ virtual void OnReply(TAutoPtr<TBusMessage> pMessage, TAutoPtr<TBusMessage> pReply) = 0;
+ /// called when client side message has gone into wire, place to call AckMessage()
+ virtual void OnMessageSent(TBusMessage* pMessage);
+ virtual void OnMessageSentOneWay(TAutoPtr<TBusMessage> pMessage);
+ virtual void OnClientConnectionEvent(const TClientConnectionEvent&);
+ };
+
+}