Removed obsolete APIs form v2.

Removed MSGPACK_DISABLE_LEGACY_CONVERT from v2. Those APIs are removed
from v2.
This commit is contained in:
Takatoshi Kondo
2016-03-21 22:34:57 +09:00
parent 72c7feb2c4
commit 31a06a0682
17 changed files with 362 additions and 80 deletions

View File

@@ -1,4 +1,4 @@
AM_CPPFLAGS = -I$(top_srcdir)/include -pthread -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT
AM_CPPFLAGS = -I$(top_srcdir)/include -pthread
AM_C_CPPFLAGS = -I$(top_srcdir)/include -pthread
AM_LDFLAGS = $(top_builddir)/src/libmsgpackc.la -lgtest_main -lgtest -lpthread

View File

@@ -84,7 +84,7 @@ TEST(convert, return_value_ref)
EXPECT_EQ(i, j);
}
#if !defined(MSGPACK_DISABLE_LEGACY_CONVERT)
#if MSGPACK_DEFAULT_API_VERSION == 1 && !defined(MSGPACK_DISABLE_LEGACY_CONVERT)
TEST(convert, return_value_ptr)
{
@@ -96,7 +96,7 @@ TEST(convert, return_value_ptr)
EXPECT_EQ(1, i);
}
#endif // !defined(MSGPACK_DISABLE_LEGACY_CONVERT)
#endif // MSGPACK_DEFAULT_API_VERSION == 1 && !defined(MSGPACK_DISABLE_LEGACY_CONVERT)
TEST(convert, if_not_nil_nil)
{

View File

@@ -459,3 +459,67 @@ TEST(MSGPACK_MIGRATION, order_number_changed)
EXPECT_EQ(v2.s, "foo"); // from v1
EXPECT_EQ(v2.i, 42); // from v1
}
// non intrusive with operator <<
class test_non_intrusive {
public:
const std::string& name() const { return m_name; }
void set_name(const std::string& name) { m_name = name; }
private:
std::string m_name;
};
namespace msgpack {
MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS) {
namespace adaptor {
template<>
struct convert<test_non_intrusive>
{
msgpack::object const& operator()(
msgpack::object const& o,
test_non_intrusive& t) const {
t.set_name(o.as<std::string>());
return o;
}
};
template<>
struct pack<test_non_intrusive>
{
template <typename Stream>
msgpack::packer<Stream>& operator()(
msgpack::packer<Stream>& p,
test_non_intrusive const& t) const {
p.pack(t.name());
return p;
}
};
template <>
struct object_with_zone<test_non_intrusive>
{
void operator()(
msgpack::object::with_zone& o,
const test_non_intrusive& t) const {
o << t.name();
}
};
} // namespace adaptor
} // MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS)
} // namespace msgpack
TEST(MSGPACK_USER_DEFINED, test_non_intrusive)
{
test_non_intrusive t1;
msgpack::sbuffer sbuf;
msgpack::pack(sbuf, t1);
msgpack::object_handle oh =
msgpack::unpack(sbuf.data(), sbuf.size());
test_non_intrusive t2 = oh.get().as<test_non_intrusive>();
EXPECT_EQ(t1.name(), t2.name());
}