Rename functions of BinarySerializable

So the names are more like the ones in JsonSerializable.
This commit is contained in:
Martchus 2018-06-23 17:24:28 +02:00
parent 04dccdbd74
commit 6117ef3e1d
3 changed files with 20 additions and 15 deletions

View File

@ -18,22 +18,31 @@ namespace ReflectiveRapidJSON {
* \brief The BinarySerializable class provides the CRTP-base for (de)serializable objects.
*/
template <typename Type> struct BinarySerializable {
void serialize(std::ostream &outputStream) const;
void deserialize(std::istream &inputStream);
void toBinary(std::ostream &outputStream) const;
void restoreFromBinary(std::istream &inputStream);
static Type fromBinary(std::istream &inputStream);
static constexpr const char *qualifiedName = "ReflectiveRapidJSON::BinarySerializable";
};
template <typename Type> inline void BinarySerializable<Type>::serialize(std::ostream &outputStream) const
template <typename Type> inline void BinarySerializable<Type>::toBinary(std::ostream &outputStream) const
{
BinaryReflector::BinarySerializer(&outputStream).write(static_cast<const Type &>(*this));
}
template <typename Type> inline void BinarySerializable<Type>::deserialize(std::istream &inputStream)
template <typename Type> inline void BinarySerializable<Type>::restoreFromBinary(std::istream &inputStream)
{
BinaryReflector::BinaryDeserializer(&inputStream).read(static_cast<Type &>(*this));
}
template<typename Type>
Type BinarySerializable<Type>::fromBinary(std::istream &inputStream)
{
Type object;
static_cast<BinarySerializable<Type> &>(object).restoreFromBinary(inputStream);
return object;
}
/*!
* \def The REFLECTIVE_RAPIDJSON_MAKE_BINARY_SERIALIZABLE macro allows to adapt (de)serialization for types defined in 3rd party header files.
* \remarks The struct will not have the toBinary() and fromBinary() methods available. Use the corresponding functions in the namespace

View File

@ -83,12 +83,10 @@ void BinaryReflectorBoostHanaTests::testSerializingAndDeserializing()
stringstream stream(ios_base::in | ios_base::out | ios_base::binary);
stream.exceptions(ios_base::failbit | ios_base::badbit);
nestingObject.serialize(stream);
NestingArrayBinaryHana deserializedObject;
deserializedObject.deserialize(stream);
const TestObjectBinaryHana &deserializedTestObj(deserializedObject.testObjects.at(0));
nestingObject.toBinary(stream);
const auto deserializedObject(NestingArrayBinaryHana::fromBinary(stream));
const auto &deserializedTestObj(deserializedObject.testObjects.at(0));
CPPUNIT_ASSERT_EQUAL(nestingObject.name, deserializedObject.name);
CPPUNIT_ASSERT_EQUAL(testObject.number, deserializedTestObj.number);
CPPUNIT_ASSERT_EQUAL(testObject.number2, deserializedTestObj.number2);

View File

@ -240,7 +240,7 @@ void BinaryReflectorTests::testSerializeSimpleStruct()
stream.exceptions(ios_base::failbit | ios_base::badbit);
m_buffer.resize(m_expectedTestObj.size());
stream.rdbuf()->pubsetbuf(reinterpret_cast<char *>(m_buffer.data()), static_cast<streamsize>(m_buffer.size()));
m_testObj.serialize(stream);
m_testObj.toBinary(stream);
CPPUNIT_ASSERT_EQUAL(m_expectedTestObj, m_buffer);
}
@ -250,8 +250,7 @@ void BinaryReflectorTests::testDeserializeSimpleStruct()
stringstream stream(ios_base::in | ios_base::binary);
stream.exceptions(ios_base::failbit | ios_base::badbit);
stream.rdbuf()->pubsetbuf(reinterpret_cast<char *>(m_expectedTestObj.data()), static_cast<streamsize>(m_expectedTestObj.size()));
TestObjectBinary deserialized;
deserialized.deserialize(stream);
const auto deserialized(TestObjectBinary::fromBinary(stream));
assertTestObject(deserialized);
}
@ -261,7 +260,7 @@ void BinaryReflectorTests::testSerializeNestedStruct()
stream.exceptions(ios_base::failbit | ios_base::badbit);
m_buffer.resize(m_expectedNestedTestObj.size());
stream.rdbuf()->pubsetbuf(reinterpret_cast<char *>(m_buffer.data()), static_cast<streamsize>(m_buffer.size()));
m_nestedTestObj.serialize(stream);
m_nestedTestObj.toBinary(stream);
CPPUNIT_ASSERT_EQUAL(m_expectedNestedTestObj, m_buffer);
}
@ -271,9 +270,8 @@ void BinaryReflectorTests::testDeserializeNestedStruct()
stringstream stream(ios_base::in | ios_base::binary);
stream.exceptions(ios_base::failbit | ios_base::badbit);
stream.rdbuf()->pubsetbuf(reinterpret_cast<char *>(m_expectedNestedTestObj.data()), static_cast<streamsize>(m_expectedNestedTestObj.size()));
NestingArrayBinary deserialized;
deserialized.deserialize(stream);
const auto deserialized(NestingArrayBinary::fromBinary(stream));
CPPUNIT_ASSERT_EQUAL(m_nestedTestObj.name, deserialized.name);
for (const auto &testObj : deserialized.testObjects) {
assertTestObject(testObj);