23 #include <boost/endian/conversion.hpp>
41 void TestMarkOutBin::writeTag(
43 writeBinaryData(
sizeof(tag_),
reinterpret_cast<const std::uint8_t*
>(&tag_));
47 const char* typemark_) {
48 assert(typemark_ !=
nullptr);
52 const std::uint64_t length_(std::strlen(typemark_));
53 assert(length_ <= std::numeric_limits<std::uint8_t>::max());
54 const std::uint8_t mark_len_(
static_cast<std::uint8_t
>(length_));
55 writeBinaryData(
sizeof(mark_len_),
reinterpret_cast<const std::uint8_t*
>(&mark_len_));
56 writeBinaryData(length_,
reinterpret_cast<const std::uint8_t*
>(typemark_));
60 std::int64_t value_) {
61 if(value_ >= std::numeric_limits<std::int8_t>::min()
62 && value_ <= std::numeric_limits<std::int8_t>::max()) {
64 std::uint8_t be_value_(
static_cast<std::uint8_t
>(
static_cast<std::int8_t
>(value_)));
65 writeBinaryData(
sizeof(be_value_), &be_value_);
67 else if(value_ >= std::numeric_limits<std::int16_t>::min()
68 && value_ <= std::numeric_limits<std::int16_t>::max()) {
70 std::uint16_t be_value_(boost::endian::native_to_big(
71 static_cast<std::uint16_t
>(
static_cast<std::int16_t
>(value_))));
72 writeBinaryData(
sizeof(be_value_),
reinterpret_cast<const std::uint8_t*
>(&be_value_));
76 std::uint64_t be_value_(
77 boost::endian::native_to_big(
static_cast<std::uint64_t
>(value_)));
78 writeBinaryData(
sizeof(be_value_),
reinterpret_cast<const std::uint8_t*
>(&be_value_));
89 std::ostringstream oss_;
90 oss_ << std::hexfloat << value_;
91 const std::string& str_value_(oss_.str());
94 const std::uint64_t length_(str_value_.size());
95 assert(length_ <= std::numeric_limits<std::uint8_t>::max());
96 const std::uint8_t be_length_(
static_cast<std::uint8_t
>(length_));
97 writeBinaryData(
sizeof(be_length_),
reinterpret_cast<const std::uint8_t*
>(&be_length_));
98 writeBinaryData(length_,
reinterpret_cast<const std::uint8_t*
>(str_value_.c_str()));
102 const std::string& string_) {
103 const std::uint64_t length_(string_.size());
105 if(length_ <= std::numeric_limits<std::uint8_t>::max()) {
107 const std::uint8_t be_length_(
static_cast<std::uint8_t
>(length_));
109 sizeof(be_length_),
reinterpret_cast<const std::uint8_t*
>(&be_length_));
111 else if(length_ <= std::numeric_limits<std::uint16_t>::max()) {
113 const std::uint16_t be_length_(
114 boost::endian::native_to_big(
static_cast<std::uint8_t
>(length_)));
116 sizeof(be_length_),
reinterpret_cast<const std::uint8_t*
>(&be_length_));
120 const std::uint64_t be_length_(boost::endian::native_to_big(length_));
122 sizeof(be_length_),
reinterpret_cast<const std::uint8_t*
>(&be_length_));
124 writeBinaryData(length_,
reinterpret_cast<const std::uint8_t*
>(string_.c_str()));