IVGCVSW-5593 Implement Pimpl Idiom for serialization classes
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Change-Id: I01c7bd314219e58f71505dcb787d606dbded914a
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 379cce2..a0c99b9 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -12,8 +12,6 @@
#include <iostream>
-#include <flatbuffers/util.h>
-
#include "SerializerUtils.hpp"
using namespace armnn;
@@ -23,6 +21,37 @@
namespace armnnSerializer
{
+ISerializer::ISerializer() : pSerializerImpl(new SerializerImpl())
+{
+}
+
+ISerializer::~ISerializer() = default;
+
+ISerializer* ISerializer::CreateRaw()
+{
+ return new ISerializer();
+}
+
+ISerializerPtr ISerializer::Create()
+{
+ return ISerializerPtr(CreateRaw(), &ISerializer::Destroy);
+}
+
+void ISerializer::Destroy(ISerializer* serializer)
+{
+ delete serializer;
+}
+
+void ISerializer::Serialize(const armnn::INetwork& inNetwork)
+{
+ pSerializerImpl->Serialize(inNetwork);
+}
+
+bool ISerializer::SaveSerializedToStream(std::ostream& stream)
+{
+ return pSerializerImpl->SaveSerializedToStream(stream);
+}
+
serializer::ActivationFunction GetFlatBufferActivationFunction(armnn::ActivationFunction function)
{
switch (function)
@@ -1729,23 +1758,7 @@
return outputSlots;
}
-
-ISerializer* ISerializer::CreateRaw()
-{
- return new Serializer();
-}
-
-ISerializerPtr ISerializer::Create()
-{
- return ISerializerPtr(CreateRaw(), &ISerializer::Destroy);
-}
-
-void ISerializer::Destroy(ISerializer* serializer)
-{
- delete serializer;
-}
-
-void Serializer::Serialize(const INetwork& inNetwork)
+void ISerializer::SerializerImpl::Serialize(const INetwork& inNetwork)
{
// Iterate through to network
inNetwork.Accept(m_SerializerVisitor);
@@ -1763,7 +1776,7 @@
fbBuilder.Finish(serializedGraph);
}
-bool Serializer::SaveSerializedToStream(std::ostream& stream)
+bool ISerializer::SerializerImpl::SaveSerializedToStream(std::ostream& stream)
{
flatbuffers::FlatBufferBuilder& fbBuilder = m_SerializerVisitor.GetFlatBufferBuilder();
@@ -1772,4 +1785,5 @@
return !stream.bad();
}
+
} // namespace armnnSerializer