Removing the version_min_m member from nano::message_header as unnecessary. Serializing this version number to/from the message_header the same as the other two version_max and version_using.

This commit is contained in:
clemahieu 2021-08-03 13:45:06 +01:00
commit fe97b2e898
No known key found for this signature in database
GPG key ID: 43708520C8DFB938
3 changed files with 6 additions and 14 deletions

View file

@ -65,7 +65,7 @@ TEST (message, publish_serialization)
auto error (false); auto error (false);
nano::message_header header (error, stream); nano::message_header header (error, stream);
ASSERT_FALSE (error); ASSERT_FALSE (error);
ASSERT_EQ (nano::dev::network_params.protocol.protocol_version_min (), header.version_min ()); ASSERT_EQ (nano::dev::network_params.protocol.protocol_version_min (), header.version_min);
ASSERT_EQ (nano::dev::network_params.protocol.protocol_version, header.version_using); ASSERT_EQ (nano::dev::network_params.protocol.protocol_version, header.version_using);
ASSERT_EQ (nano::dev::network_params.protocol.protocol_version, header.version_max); ASSERT_EQ (nano::dev::network_params.protocol.protocol_version, header.version_max);
ASSERT_EQ (nano::message_type::publish, header.type); ASSERT_EQ (nano::message_type::publish, header.type);

View file

@ -53,6 +53,7 @@ nano::message_header::message_header (nano::message_type type_a) :
network (nano::network_constants::active_network), network (nano::network_constants::active_network),
version_max (get_protocol_constants ().protocol_version), version_max (get_protocol_constants ().protocol_version),
version_using (get_protocol_constants ().protocol_version), version_using (get_protocol_constants ().protocol_version),
version_min (get_protocol_constants ().protocol_version_min ()),
type (type_a) type (type_a)
{ {
} }
@ -71,7 +72,7 @@ void nano::message_header::serialize (nano::stream & stream_a) const
nano::write (stream_a, boost::endian::native_to_big (static_cast<uint16_t> (network))); nano::write (stream_a, boost::endian::native_to_big (static_cast<uint16_t> (network)));
nano::write (stream_a, version_max); nano::write (stream_a, version_max);
nano::write (stream_a, version_using); nano::write (stream_a, version_using);
nano::write (stream_a, get_protocol_constants ().protocol_version_min ()); nano::write (stream_a, version_min);
nano::write (stream_a, type); nano::write (stream_a, type);
nano::write (stream_a, static_cast<uint16_t> (extensions.to_ullong ())); nano::write (stream_a, static_cast<uint16_t> (extensions.to_ullong ()));
} }
@ -87,7 +88,7 @@ bool nano::message_header::deserialize (nano::stream & stream_a)
network = static_cast<nano::networks> (boost::endian::big_to_native (network_bytes)); network = static_cast<nano::networks> (boost::endian::big_to_native (network_bytes));
nano::read (stream_a, version_max); nano::read (stream_a, version_max);
nano::read (stream_a, version_using); nano::read (stream_a, version_using);
nano::read (stream_a, version_min_m); nano::read (stream_a, version_min);
nano::read (stream_a, type); nano::read (stream_a, type);
uint16_t extensions_l; uint16_t extensions_l;
nano::read (stream_a, extensions_l); nano::read (stream_a, extensions_l);
@ -101,12 +102,6 @@ bool nano::message_header::deserialize (nano::stream & stream_a)
return error; return error;
} }
uint8_t nano::message_header::version_min () const
{
debug_assert (version_min_m != std::numeric_limits<uint8_t>::max ());
return version_min_m;
}
nano::message::message (nano::message_type type_a) : nano::message::message (nano::message_type type_a) :
header (type_a) header (type_a)
{ {

View file

@ -198,14 +198,12 @@ public:
nano::networks network; nano::networks network;
uint8_t version_max; uint8_t version_max;
uint8_t version_using; uint8_t version_using;
uint8_t version_min;
private:
uint8_t version_min_m{ std::numeric_limits<uint8_t>::max () };
public: public:
nano::message_type type; nano::message_type type;
std::bitset<16> extensions; std::bitset<16> extensions;
static size_t constexpr size = sizeof (nano::networks) + sizeof (version_max) + sizeof (version_using) + sizeof (version_min_m) + sizeof (type) + sizeof (/* extensions */ uint16_t); static size_t constexpr size = sizeof (nano::networks) + sizeof (version_max) + sizeof (version_using) + sizeof (version_min) + sizeof (type) + sizeof (/* extensions */ uint16_t);
void flag_set (uint8_t); void flag_set (uint8_t);
static uint8_t constexpr bulk_pull_count_present_flag = 0; static uint8_t constexpr bulk_pull_count_present_flag = 0;
@ -216,7 +214,6 @@ public:
static uint8_t constexpr node_id_handshake_response_flag = 1; static uint8_t constexpr node_id_handshake_response_flag = 1;
bool node_id_handshake_is_query () const; bool node_id_handshake_is_query () const;
bool node_id_handshake_is_response () const; bool node_id_handshake_is_response () const;
uint8_t version_min () const;
/** Size of the payload in bytes. For some messages, the payload size is based on header flags. */ /** Size of the payload in bytes. For some messages, the payload size is based on header flags. */
size_t payload_length_bytes () const; size_t payload_length_bytes () const;