// // MessagePack for C++ static resolution routine // // Copyright (C) 2008-2014 FURUHASHI Sadayuki and KONDO Takatoshi // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // #ifndef MSGPACK_V1_OBJECT_DECL_HPP #define MSGPACK_V1_OBJECT_DECL_HPP #include "msgpack/versioning.hpp" #include "msgpack/pack.hpp" #include "msgpack/zone.hpp" #include "msgpack/adaptor/adaptor_base.hpp" #include #include #include #include #include #include #include namespace msgpack { /// @cond MSGPACK_API_VERSION_NAMESPACE(v1) { /// @endcond /// The class holds object and zone class object_handle; namespace detail { template std::size_t add_ext_type_size(std::size_t size); template <> std::size_t add_ext_type_size<4>(std::size_t size); } // namespace detail std::size_t aligned_zone_size(msgpack::object const& obj); /// clone object /** * Clone (deep copy) object. * The copied object is located on newly allocated zone. * @param obj copy source object * * @return object_handle that holds deep copied object and zone. */ object_handle clone(msgpack::object const& obj); namespace detail { template struct packer_serializer; } // namespace detail // obsolete template class define; bool operator==(const msgpack::object& x, const msgpack::object& y); template bool operator==(const msgpack::object& x, const T& y); bool operator!=(const msgpack::object& x, const msgpack::object& y); template bool operator==(const T& y, const msgpack::object& x); template bool operator!=(const msgpack::object& x, const T& y); template bool operator!=(const T& y, const msgpack::object& x); void operator<< (msgpack::object& o, const msgpack_object& v); class object_parser; template struct object_pack_visitor; struct object_stringize_visitor; // obsolete template MSGPACK_DEPRECATED("please use member function version of object::convert(T&)") void convert(T& v, msgpack::object const& o); // obsolete template MSGPACK_DEPRECATED("please use member function version of packer::pack(const T&)") void pack(msgpack::packer& o, const T& v); // obsolete template MSGPACK_DEPRECATED("please use member function version of packer::pack(const T&)") void pack_copy(msgpack::packer& o, T v); template msgpack::packer& operator<< (msgpack::packer& o, const msgpack::object& v); template msgpack::packer& operator<< (msgpack::packer& o, const msgpack::object::with_zone& v); std::ostream& operator<< (std::ostream& s, const msgpack::object& v); /// @cond } // MSGPACK_API_VERSION_NAMESPACE(v1) /// @endcond } // namespace msgpack #endif // MSGPACK_V1_OBJECT_DECL_HPP