From 1045738077082f4f59e60943b0a86ed5433da374 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Thu, 25 Mar 2010 10:11:20 -0700 Subject: [PATCH] msg: Add get_session function to PaxosServiceMessage --- src/messages/PaxosServiceMessage.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/messages/PaxosServiceMessage.h b/src/messages/PaxosServiceMessage.h index c5cbba9d64313..7d6003d2a26ca 100644 --- a/src/messages/PaxosServiceMessage.h +++ b/src/messages/PaxosServiceMessage.h @@ -2,8 +2,7 @@ #define __PAXOSSERVICEMESSAGE_H #include "msg/Message.h" - -class MonCaps; +#include "mon/Session.h" class PaxosServiceMessage : public Message { public: @@ -38,6 +37,20 @@ class PaxosServiceMessage : public Message { bufferlist::iterator p = payload.begin(); paxos_decode(p); } + + /** + * These messages are only used by the monitors and clients, + * and the client doesn't care, so we're creating a monitor-specific + * function here. Note that this function explicitly exists to bypass + * the normal ref-counting, so don't expect the returned pointer to be + * very long-lived -- it will still only last as long as the Session would + * normally. + */ + Session *get_session() { + Session *session = (Session *)get_connection()->get_priv(); + session->put(); + return session; + } const char *get_type_name() { return "PaxosServiceMessage"; } }; -- 2.39.5