Add to_string functions to the classes asc_pull_req and asc_pull_ack (#4255)
Adding ::to_string methods to asc_pull_req and asc_pull_ack messages.
This commit is contained in:
parent
da9cf6ac00
commit
b7dc1da699
2 changed files with 73 additions and 1 deletions
|
|
@ -23,7 +23,9 @@
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <type_traits>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
#include <variant>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -1656,6 +1658,35 @@ bool nano::asc_pull_req::verify_consistency () const
|
||||||
return true; // Just for convenience of calling from asserts
|
return true; // Just for convenience of calling from asserts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string nano::asc_pull_req::to_string () const
|
||||||
|
{
|
||||||
|
std::string s = header.to_string () + "\n";
|
||||||
|
|
||||||
|
std::visit ([&s] (auto && arg) {
|
||||||
|
using T = std::decay_t<decltype (arg)>;
|
||||||
|
|
||||||
|
if constexpr (std::is_same_v<T, nano::empty_payload>)
|
||||||
|
{
|
||||||
|
s += "missing payload";
|
||||||
|
}
|
||||||
|
|
||||||
|
else if constexpr (std::is_same_v<T, nano::asc_pull_req::blocks_payload>)
|
||||||
|
{
|
||||||
|
s += "acc:" + arg.start.to_string ();
|
||||||
|
s += " max block count:" + to_string_hex (static_cast<uint16_t> (arg.count));
|
||||||
|
s += " hash type:" + to_string_hex (static_cast<uint16_t> (arg.start_type));
|
||||||
|
}
|
||||||
|
|
||||||
|
else if constexpr (std::is_same_v<T, nano::asc_pull_req::account_info_payload>)
|
||||||
|
{
|
||||||
|
s += "target:" + arg.target.to_string ();
|
||||||
|
s += " hash type:" + to_string_hex (static_cast<uint16_t> (arg.target_type));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
payload);
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* asc_pull_req::blocks_payload
|
* asc_pull_req::blocks_payload
|
||||||
*/
|
*/
|
||||||
|
|
@ -1809,6 +1840,45 @@ bool nano::asc_pull_ack::verify_consistency () const
|
||||||
return true; // Just for convenience of calling from asserts
|
return true; // Just for convenience of calling from asserts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string nano::asc_pull_ack::to_string () const
|
||||||
|
{
|
||||||
|
std::string s = header.to_string () + "\n";
|
||||||
|
|
||||||
|
std::visit ([&s] (auto && arg) {
|
||||||
|
using T = std::decay_t<decltype (arg)>;
|
||||||
|
|
||||||
|
if constexpr (std::is_same_v<T, nano::empty_payload>)
|
||||||
|
{
|
||||||
|
s += "missing payload";
|
||||||
|
}
|
||||||
|
|
||||||
|
else if constexpr (std::is_same_v<T, nano::asc_pull_ack::blocks_payload>)
|
||||||
|
{
|
||||||
|
auto block = std::begin (arg.blocks);
|
||||||
|
auto end_block = std::end (arg.blocks);
|
||||||
|
|
||||||
|
while (block != end_block)
|
||||||
|
{
|
||||||
|
s += (*block)->to_json ();
|
||||||
|
++block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else if constexpr (std::is_same_v<T, nano::asc_pull_ack::account_info_payload>)
|
||||||
|
{
|
||||||
|
s += "account public key:" + arg.account.to_account ();
|
||||||
|
s += " account open:" + arg.account_open.to_string ();
|
||||||
|
s += " account head:" + arg.account_head.to_string ();
|
||||||
|
s += " block count:" + to_string_hex (arg.account_block_count);
|
||||||
|
s += " confirmation frontier:" + arg.account_conf_frontier.to_string ();
|
||||||
|
s += " confirmation height:" + to_string_hex (arg.account_conf_height);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
payload);
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* asc_pull_ack::blocks_payload
|
* asc_pull_ack::blocks_payload
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -429,6 +429,7 @@ public:
|
||||||
|
|
||||||
void serialize_payload (nano::stream &) const;
|
void serialize_payload (nano::stream &) const;
|
||||||
void deserialize_payload (nano::stream &);
|
void deserialize_payload (nano::stream &);
|
||||||
|
std::string to_string () const;
|
||||||
|
|
||||||
private: // Debug
|
private: // Debug
|
||||||
/**
|
/**
|
||||||
|
|
@ -504,6 +505,7 @@ public:
|
||||||
|
|
||||||
void serialize_payload (nano::stream &) const;
|
void serialize_payload (nano::stream &) const;
|
||||||
void deserialize_payload (nano::stream &);
|
void deserialize_payload (nano::stream &);
|
||||||
|
std::string to_string () const;
|
||||||
|
|
||||||
private: // Debug
|
private: // Debug
|
||||||
/**
|
/**
|
||||||
|
|
@ -613,4 +615,4 @@ public:
|
||||||
}
|
}
|
||||||
virtual void default_handler (nano::message const &){};
|
virtual void default_handler (nano::message const &){};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue