diff options
author | Greg Farnum <gregory.farnum@dreamhost.com> | 2012-04-03 13:13:20 -0700 |
---|---|---|
committer | Greg Farnum <gregory.farnum@dreamhost.com> | 2012-04-03 13:13:20 -0700 |
commit | 77f45667c0f9cba0da7b89213c7eba43652164f3 (patch) | |
tree | 60d94a6a716620e05fc28ccd608eea375c977c15 | |
parent | 6374d0645e6cc8e898776b7c4ddf09b7c4f17ec6 (diff) | |
download | ceph-77f45667c0f9cba0da7b89213c7eba43652164f3.tar.gz |
msgr: store the entity_inst_t in the Messenger.
Convert ms_addr and _my_name to be references to their fields in
the entity_inst_t my_inst.
This way we can use const references for accessing all of them,
instead of the bizarre distinction we had before for get_myinst().
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
-rw-r--r-- | src/msg/Messenger.h | 19 | ||||
-rw-r--r-- | src/msg/SimpleMessenger.cc | 5 | ||||
-rw-r--r-- | src/msg/SimpleMessenger.h | 10 |
3 files changed, 16 insertions, 18 deletions
diff --git a/src/msg/Messenger.h b/src/msg/Messenger.h index 37baccb906a..0865f9c0d86 100644 --- a/src/msg/Messenger.h +++ b/src/msg/Messenger.h @@ -74,7 +74,8 @@ private: protected: /// the "name" of the local daemon. eg client.99 - entity_name_t _my_name; + entity_inst_t my_inst; + entity_name_t& _my_name; int default_send_priority; /// set to true once the Messenger has started, and set to false on shutdown bool started; @@ -82,7 +83,9 @@ protected: public: CephContext *cct; Messenger(CephContext *cct_, entity_name_t w) - : default_send_priority(CEPH_MSG_PRIO_DEFAULT), started(false), + : my_inst(), + _my_name(my_inst.name), + default_send_priority(CEPH_MSG_PRIO_DEFAULT), started(false), cct(cct_) { _my_name = w; @@ -93,10 +96,16 @@ protected: } // accessors - entity_name_t get_myname() { return _my_name; } - virtual const entity_addr_t& get_myaddr() = 0; + const entity_name_t& get_myname() { return _my_name; } + /** + * Retrieve the Messenger's address. + * + * @return A copy of the address this Messenger currently + * believes to be its own. + */ + const entity_addr_t& get_myaddr() { return my_inst.addr; } virtual void set_ip(entity_addr_t &addr) = 0; - entity_inst_t get_myinst() { return entity_inst_t(get_myname(), get_myaddr()); } + const entity_inst_t& get_myinst() { return my_inst; } /** * Set the name of the local entity. The name is reported to others and diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index 0a642500719..0cefaa56073 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -487,11 +487,6 @@ int SimpleMessenger::lazy_send_message(Message *m, const entity_inst_t& dest) return 0; } -const entity_addr_t& SimpleMessenger::get_myaddr() -{ - return ms_addr; -} - /** * If ms_addr doesn't have an IP set, this function * will fill it in from the passed addr. Otherwise it does nothing and returns. diff --git a/src/msg/SimpleMessenger.h b/src/msg/SimpleMessenger.h index 12a5a16f757..0ab9062e2d5 100644 --- a/src/msg/SimpleMessenger.h +++ b/src/msg/SimpleMessenger.h @@ -67,13 +67,6 @@ public: */ void set_ip(entity_addr_t& addr); /** - * Retrieve the Messenger's address. - * - * @return A copy of he address this Messenger currently - * believes to be its own. - */ - virtual const entity_addr_t& get_myaddr(); - /** * Retrieve the Connection for an endpoint. * * @param dest The endpoint you want to get a Connection for. @@ -475,7 +468,7 @@ private: // where i listen bool need_addr; - entity_addr_t ms_addr; + entity_addr_t& ms_addr; uint64_t nonce; // local @@ -577,6 +570,7 @@ public: accepter(this), lock("SimpleMessenger::lock"), did_bind(false), dispatch_throttler(cct->_conf->ms_dispatch_throttle_bytes), need_addr(true), + ms_addr(my_inst.addr), nonce(_nonce), destination_stopped(false), my_type(name.type()), global_seq_lock("SimpleMessenger::global_seq_lock"), global_seq(0), reaper_thread(this), reaper_started(false), reaper_stop(false), |