From 1c6256fd3c76ea6a37b414f65c8e6aeefbad3b56 Mon Sep 17 00:00:00 2001 From: Sergey Lisitsyn Date: Sat, 14 Apr 2018 13:36:23 +0200 Subject: [PATCH] Add dummy json (de)serializer --- src/shogun/io/serialization/Deserializer.cpp | 6 +++++ src/shogun/io/serialization/Deserializer.h | 3 ++- .../io/serialization/JsonDeserializer.cpp | 21 +++++++++++++++ .../io/serialization/JsonDeserializer.h | 26 +++++++++++++++++++ .../io/serialization/JsonSerializer.cpp | 20 ++++++++++++++ src/shogun/io/serialization/JsonSerializer.h | 26 +++++++++++++++++++ src/shogun/io/serialization/Serializer.cpp | 6 +++++ src/shogun/io/serialization/Serializer.h | 1 + 8 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 src/shogun/io/serialization/JsonDeserializer.cpp create mode 100644 src/shogun/io/serialization/JsonDeserializer.h create mode 100644 src/shogun/io/serialization/JsonSerializer.cpp create mode 100644 src/shogun/io/serialization/JsonSerializer.h diff --git a/src/shogun/io/serialization/Deserializer.cpp b/src/shogun/io/serialization/Deserializer.cpp index 4b0dbd776e5..cdf53c972c9 100644 --- a/src/shogun/io/serialization/Deserializer.cpp +++ b/src/shogun/io/serialization/Deserializer.cpp @@ -19,3 +19,9 @@ void CDeserializer::attach(Some stream) { m_stream = stream; } + +Some CDeserializer::stream() const +{ + REQUIRE(m_stream, "Deserializer has no stream, attach() it to a stream"); + return m_stream; +} diff --git a/src/shogun/io/serialization/Deserializer.h b/src/shogun/io/serialization/Deserializer.h index 691b2c6c149..3bb2f701bde 100644 --- a/src/shogun/io/serialization/Deserializer.h +++ b/src/shogun/io/serialization/Deserializer.h @@ -15,8 +15,9 @@ namespace shogun public: CDeserializer(); virtual ~CDeserializer(); - virtual void attach(Some stream) = 0; + virtual void attach(Some stream); virtual Some read() = 0; + Some stream() const; private: Some m_stream; diff --git a/src/shogun/io/serialization/JsonDeserializer.cpp b/src/shogun/io/serialization/JsonDeserializer.cpp new file mode 100644 index 00000000000..ac335eebccf --- /dev/null +++ b/src/shogun/io/serialization/JsonDeserializer.cpp @@ -0,0 +1,21 @@ +/** This software is distributed under BSD 3-clause license (see LICENSE file). + * + * Authors: Sergey Lisitsyn + */ + +#include + +using namespace shogun; + +CJsonDeserializer::CJsonDeserializer() : CDeserializer() +{ +} + +CJsonDeserializer::~CJsonDeserializer() +{ +} + +Some CJsonDeserializer::read() +{ + return wrap(nullptr); +} diff --git a/src/shogun/io/serialization/JsonDeserializer.h b/src/shogun/io/serialization/JsonDeserializer.h new file mode 100644 index 00000000000..139e20a9119 --- /dev/null +++ b/src/shogun/io/serialization/JsonDeserializer.h @@ -0,0 +1,26 @@ +/** This software is distributed under BSD 3-clause license (see LICENSE file). + * + * Authors: Sergey Lisitsyn + */ +#ifndef __JSON_DESERIALIZER_H__ +#define __JSON_DESERIALIZER_H__ + +#include + +namespace shogun +{ + class CJsonDeserializer : public CDeserializer + { + public: + CJsonDeserializer(); + virtual ~CJsonDeserializer(); + virtual Some read(); + + virtual const char* get_name() const + { + return "JsonDeserializer"; + } + }; +} + +#endif diff --git a/src/shogun/io/serialization/JsonSerializer.cpp b/src/shogun/io/serialization/JsonSerializer.cpp new file mode 100644 index 00000000000..7d39a6c5fa2 --- /dev/null +++ b/src/shogun/io/serialization/JsonSerializer.cpp @@ -0,0 +1,20 @@ +/** This software is distributed under BSD 3-clause license (see LICENSE file). + * + * Authors: Sergey Lisitsyn + */ + +#include + +using namespace shogun; + +CJsonSerializer::CJsonSerializer() : CSerializer() +{ +} + +CJsonSerializer::~CJsonSerializer() +{ +} + +void CJsonSerializer::write(Some) +{ +} diff --git a/src/shogun/io/serialization/JsonSerializer.h b/src/shogun/io/serialization/JsonSerializer.h new file mode 100644 index 00000000000..137a46b753c --- /dev/null +++ b/src/shogun/io/serialization/JsonSerializer.h @@ -0,0 +1,26 @@ +/** This software is distributed under BSD 3-clause license (see LICENSE file). + * + * Authors: Sergey Lisitsyn + */ +#ifndef __JSON_SERIALIZER_H__ +#define __JSON_SERIALIZER_H__ + +#include + +namespace shogun +{ + class CJsonSerializer : public CSerializer + { + public: + CJsonSerializer(); + virtual ~CJsonSerializer(); + virtual void write(Some object); + + virtual const char* get_name() const + { + return "JsonSerializer"; + } + }; +} + +#endif diff --git a/src/shogun/io/serialization/Serializer.cpp b/src/shogun/io/serialization/Serializer.cpp index 6312b90451c..c3bcc65758b 100644 --- a/src/shogun/io/serialization/Serializer.cpp +++ b/src/shogun/io/serialization/Serializer.cpp @@ -19,3 +19,9 @@ void CSerializer::attach(Some stream) { m_stream = stream; } + +Some CSerializer::stream() const +{ + REQUIRE(m_stream, "Serializer has no stream, attach() it to a stream"); + return m_stream; +} diff --git a/src/shogun/io/serialization/Serializer.h b/src/shogun/io/serialization/Serializer.h index 171824eefde..eabc69c2e8d 100644 --- a/src/shogun/io/serialization/Serializer.h +++ b/src/shogun/io/serialization/Serializer.h @@ -17,6 +17,7 @@ namespace shogun virtual ~CSerializer(); virtual void attach(Some stream); virtual void write(Some object) = 0; + Some stream() const; private: Some m_stream;