gossip: Move gossip_digest_serialization_helper to gossip_digest.hh

It makes more sense to put the helper near class gossip_digest not class
gossip_digest_syn. The helper is used by class gossip_digest_ack as
well. The moving makes the including more clear.
This commit is contained in:
Asias He
2015-03-05 09:52:10 +08:00
parent ad18cd582c
commit 7e3b52844e
2 changed files with 26 additions and 27 deletions

View File

@@ -86,4 +86,30 @@ public:
}
}; // class gossip_digest
// serialization helper for std::vector<gossip_digest>
class gossip_digest_serialization_helper {
public:
static void serialize(std::ostream& out, const std::vector<gossip_digest>& digests) {
serialize_int32(out, int32_t(digests.size()));
for (auto& digest : digests) {
digest.serialize(out);
}
}
static std::vector<gossip_digest> deserialize(std::istream& in) {
int32_t size = deserialize_int32(in);
std::vector<gossip_digest> digests;
for (int32_t i = 0; i < size; ++i)
digests.push_back(gossip_digest::deserialize(in));
return digests;
}
static size_t serialized_size(const std::vector<gossip_digest>& digests) {
size_t size = serialize_int32_size;
for (auto& digest : digests)
size += digest.serialized_size();
return size;
}
};
} // namespace gms

View File

@@ -27,33 +27,6 @@
namespace gms {
// serialization helper for std::vector<gossip_digest>
class gossip_digest_serialization_helper {
public:
static void serialize(std::ostream& out, const std::vector<gossip_digest>& digests) {
serialize_int32(out, int32_t(digests.size()));
for (auto& digest : digests) {
digest.serialize(out);
}
}
static std::vector<gossip_digest> deserialize(std::istream& in) {
int32_t size = deserialize_int32(in);
std::vector<gossip_digest> digests;
for (int32_t i = 0; i < size; ++i)
digests.push_back(gossip_digest::deserialize(in));
return digests;
}
static size_t serialized_size(const std::vector<gossip_digest>& digests) {
size_t size = serialize_int32_size;
for (auto& digest : digests)
size += digest.serialized_size();
return size;
}
};
/**
* This is the first message that gets sent out as a start of the Gossip protocol in a
* round.