mirror of
https://github.com/qicosmos/rest_rpc.git
synced 2026-08-30 17:10:50 +08:00
change msgpack to 3.1.0 to remove boost dependency
This commit is contained in:
+27
-6
@@ -352,8 +352,8 @@ struct object_pack_visitor {
|
||||
return true;
|
||||
}
|
||||
bool visit_ext(const char* v, uint32_t size) {
|
||||
m_packer.pack_ext(size - 1, static_cast<int8_t>(*v));
|
||||
m_packer.pack_ext_body(v + 1, size - 1);
|
||||
m_packer.pack_ext(size, *v);
|
||||
m_packer.pack_ext_body(v, size);
|
||||
return true;
|
||||
}
|
||||
bool start_array(uint32_t num_elements) {
|
||||
@@ -467,7 +467,7 @@ struct object_stringize_visitor {
|
||||
return true;
|
||||
}
|
||||
bool visit_bin(const char* v, uint32_t size) {
|
||||
(m_os << '"').write(v, static_cast<std::streamsize>(size)) << '"';
|
||||
(m_os << '"').write(v, size) << '"';
|
||||
return true;
|
||||
}
|
||||
bool visit_ext(const char* /*v*/, uint32_t /*size*/) {
|
||||
@@ -527,7 +527,7 @@ private:
|
||||
};
|
||||
|
||||
struct aligned_zone_size_visitor {
|
||||
explicit aligned_zone_size_visitor(std::size_t& s)
|
||||
explicit aligned_zone_size_visitor(std::size_t s)
|
||||
:m_size(s) {}
|
||||
bool visit_nil() {
|
||||
return true;
|
||||
@@ -596,7 +596,7 @@ struct aligned_zone_size_visitor {
|
||||
return true;
|
||||
}
|
||||
private:
|
||||
std::size_t& m_size;
|
||||
std::size_t m_size;
|
||||
};
|
||||
|
||||
inline std::size_t aligned_zone_size(msgpack::object const& obj) {
|
||||
@@ -938,7 +938,7 @@ struct object_equal_visitor {
|
||||
}
|
||||
bool visit_ext(const char* v, uint32_t size) {
|
||||
if (m_ptr->type != msgpack::type::EXT ||
|
||||
m_ptr->via.ext.size != size - 1 ||
|
||||
m_ptr->via.ext.size != size ||
|
||||
std::memcmp(m_ptr->via.ext.ptr, v, size) != 0) {
|
||||
m_result = false;
|
||||
return false;
|
||||
@@ -1168,6 +1168,27 @@ inline object::object(const T& v, msgpack::zone* z)
|
||||
}
|
||||
|
||||
|
||||
inline object::object(const msgpack_object& o)
|
||||
{
|
||||
// FIXME beter way?
|
||||
std::memcpy(this, &o, sizeof(o));
|
||||
}
|
||||
|
||||
inline void operator<< (msgpack::object& o, const msgpack_object& v)
|
||||
{
|
||||
// FIXME beter way?
|
||||
std::memcpy(static_cast<void*>(&o), &v, sizeof(v));
|
||||
}
|
||||
|
||||
inline object::operator msgpack_object() const
|
||||
{
|
||||
// FIXME beter way?
|
||||
msgpack_object obj;
|
||||
std::memcpy(&obj, this, sizeof(obj));
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
||||
// obsolete
|
||||
template <typename T>
|
||||
inline void convert(T& v, msgpack::object const& o)
|
||||
|
||||
Reference in New Issue
Block a user