From 175ccfe49d7fc5c81e5a61fa49ebd6d857059a78 Mon Sep 17 00:00:00 2001 From: Asias He Date: Thu, 30 Jul 2015 16:32:41 +0800 Subject: [PATCH] gossip: Move code from gms/gossip_digest_ack2.hh to source file --- gms/gossip_digest_ack2.cc | 35 +++++++++++++++++++++++++++++++++++ gms/gossip_digest_ack2.hh | 35 +++-------------------------------- 2 files changed, 38 insertions(+), 32 deletions(-) diff --git a/gms/gossip_digest_ack2.cc b/gms/gossip_digest_ack2.cc index 055a7572b2..8ff498f023 100644 --- a/gms/gossip_digest_ack2.cc +++ b/gms/gossip_digest_ack2.cc @@ -32,4 +32,39 @@ std::ostream& operator<<(std::ostream& os, const gossip_digest_ack2& ack2) { return os << "}"; } +void gossip_digest_ack2::serialize(bytes::iterator& out) const { + // 1) Map size + serialize_int32(out, int32_t(_map.size())); + // 2) Map contents + for (auto& entry : _map) { + const inet_address& ep = entry.first; + const endpoint_state& st = entry.second; + ep.serialize(out); + st.serialize(out); + } +} + +gossip_digest_ack2 gossip_digest_ack2::deserialize(bytes_view& v) { + // 1) Map size + int32_t map_size = read_simple(v); + // 2) Map contents + std::map _map; + for (int32_t i = 0; i < map_size; ++i) { + inet_address ep = inet_address::deserialize(v); + endpoint_state st = endpoint_state::deserialize(v); + _map.emplace(std::move(ep), std::move(st)); + } + return gossip_digest_ack2(std::move(_map)); +} + +size_t gossip_digest_ack2::serialized_size() const { + size_t size = serialize_int32_size; + for (auto& entry : _map) { + const inet_address& ep = entry.first; + const endpoint_state& st = entry.second; + size += ep.serialized_size() + st.serialized_size(); + } + return size; +} + } // namespace gms diff --git a/gms/gossip_digest_ack2.hh b/gms/gossip_digest_ack2.hh index 3f716d9ae9..9862511ba5 100644 --- a/gms/gossip_digest_ack2.hh +++ b/gms/gossip_digest_ack2.hh @@ -49,40 +49,11 @@ public: } // The following replaces GossipDigestAck2Serializer from the Java code - void serialize(bytes::iterator& out) const { - // 1) Map size - serialize_int32(out, int32_t(_map.size())); - // 2) Map contents - for (auto& entry : _map) { - const inet_address& ep = entry.first; - const endpoint_state& st = entry.second; - ep.serialize(out); - st.serialize(out); - } - } + void serialize(bytes::iterator& out) const; - static gossip_digest_ack2 deserialize(bytes_view& v) { - // 1) Map size - int32_t map_size = read_simple(v); - // 2) Map contents - std::map _map; - for (int32_t i = 0; i < map_size; ++i) { - inet_address ep = inet_address::deserialize(v); - endpoint_state st = endpoint_state::deserialize(v); - _map.emplace(std::move(ep), std::move(st)); - } - return gossip_digest_ack2(std::move(_map)); - } + static gossip_digest_ack2 deserialize(bytes_view& v); - size_t serialized_size() const { - size_t size = serialize_int32_size; - for (auto& entry : _map) { - const inet_address& ep = entry.first; - const endpoint_state& st = entry.second; - size += ep.serialized_size() + st.serialized_size(); - } - return size; - } + size_t serialized_size() const; friend std::ostream& operator<<(std::ostream& os, const gossip_digest_ack2& ack2); };