encoding: use Boost.Endian for endianness conversions
Change-Id: I1ecaa4c4efa7cc50486b1e8403f049a9ee33156f
diff --git a/src/encoding/tlv.hpp b/src/encoding/tlv.hpp
index 6a14a7c..5fb2b24 100644
--- a/src/encoding/tlv.hpp
+++ b/src/encoding/tlv.hpp
@@ -23,13 +23,14 @@
#define NDN_ENCODING_TLV_HPP
#include "buffer.hpp"
-#include "endian.hpp"
#include <cstring>
#include <iterator>
#include <ostream>
#include <type_traits>
+#include <boost/endian/conversion.hpp>
+
namespace ndn {
/** @brief practical limit of network layer packet size
@@ -323,21 +324,21 @@
uint16_t value = 0;
std::memcpy(&value, &*begin, 2);
begin += 2;
- number = be16toh(value);
+ number = boost::endian::big_to_native(value);
return true;
}
case 4: {
uint32_t value = 0;
std::memcpy(&value, &*begin, 4);
begin += 4;
- number = be32toh(value);
+ number = boost::endian::big_to_native(value);
return true;
}
case 8: {
uint64_t value = 0;
std::memcpy(&value, &*begin, 8);
begin += 8;
- number = be64toh(value);
+ number = boost::endian::big_to_native(value);
return true;
}
default: {
@@ -452,19 +453,19 @@
}
else if (number <= std::numeric_limits<uint16_t>::max()) {
os.put(static_cast<char>(253));
- uint16_t value = htobe16(static_cast<uint16_t>(number));
+ uint16_t value = boost::endian::native_to_big(static_cast<uint16_t>(number));
os.write(reinterpret_cast<const char*>(&value), 2);
return 3;
}
else if (number <= std::numeric_limits<uint32_t>::max()) {
os.put(static_cast<char>(254));
- uint32_t value = htobe32(static_cast<uint32_t>(number));
+ uint32_t value = boost::endian::native_to_big(static_cast<uint32_t>(number));
os.write(reinterpret_cast<const char*>(&value), 4);
return 5;
}
else {
os.put(static_cast<char>(255));
- uint64_t value = htobe64(number);
+ uint64_t value = boost::endian::native_to_big(number);
os.write(reinterpret_cast<const char*>(&value), 8);
return 9;
}
@@ -504,17 +505,17 @@
return 1;
}
else if (integer <= std::numeric_limits<uint16_t>::max()) {
- uint16_t value = htobe16(static_cast<uint16_t>(integer));
+ uint16_t value = boost::endian::native_to_big(static_cast<uint16_t>(integer));
os.write(reinterpret_cast<const char*>(&value), 2);
return 2;
}
else if (integer <= std::numeric_limits<uint32_t>::max()) {
- uint32_t value = htobe32(static_cast<uint32_t>(integer));
+ uint32_t value = boost::endian::native_to_big(static_cast<uint32_t>(integer));
os.write(reinterpret_cast<const char*>(&value), 4);
return 4;
}
else {
- uint64_t value = htobe64(integer);
+ uint64_t value = boost::endian::native_to_big(integer);
os.write(reinterpret_cast<const char*>(&value), 8);
return 8;
}