3 #include <fc/exception/exception.hpp>
4 #include <fc/variant.hpp>
15 std::stringstream s(input);
35 version::operator fc::string()
const
38 s << ((v_num >> 24) & 0x000000FF) <<
'.' << ((v_num >> 16) & 0x000000FF) <<
'.' << ((v_num & 0x0000FFFF));
53 uint32_t major = 0, hardfork = 0, revision = 0;
54 char dot_a = 0, dot_b = 0;
56 std::stringstream s(var.as_string());
57 s >> major >> dot_a >> hardfork >> dot_b >> revision;
60 FC_ASSERT((dot_a ==
'.' || dot_a ==
'_') && dot_a == dot_b,
61 "Variant does not contain proper dotted decimal format");
62 FC_ASSERT(major <= 0xFF,
"Major version is out of range");
63 FC_ASSERT(hardfork <= 0xFF,
"Hardfork version is out of range");
64 FC_ASSERT(revision <= 0xFFFF,
"Revision version is out of range");
65 FC_ASSERT(s.eof(),
"Extra information at end of version string");
67 v.
v_num = 0 | (major << 24) | (hardfork << 16) | revision;
void to_variant(const game_type &game, fc::variant &var)
void from_variant(const fc::variant &var, game_type &game)
fc::string int_to_string(int input)
int string_to_int(fc::string input)