IVGCVSW-4873 Implement Pimpl Idiom for INetwork and IOptimizedNetwork

!android-nn-driver:5042

Signed-off-by: Kevin May <kevin.may@arm.com>
Change-Id: Ia1ce8b839e81b46428ba0f78463e085e5906958d
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
diff --git a/src/armnn/OptimizedNetworkImpl.hpp b/src/armnn/OptimizedNetworkImpl.hpp
new file mode 100644
index 0000000..25bf9ca
--- /dev/null
+++ b/src/armnn/OptimizedNetworkImpl.hpp
@@ -0,0 +1,30 @@
+//
+// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+namespace armnn
+{
+
+class OptimizedNetworkImpl
+{
+public:
+    OptimizedNetworkImpl(std::unique_ptr<Graph> graph);
+    OptimizedNetworkImpl(std::unique_ptr<Graph> graph, const ModelOptions& modelOptions);
+    virtual ~OptimizedNetworkImpl();
+
+    virtual Status PrintGraph();
+    virtual Status SerializeToDot(std::ostream& stream) const;
+
+    virtual profiling::ProfilingGuid GetGuid() const { return m_Guid; };
+
+    Graph& GetGraph() { return *m_Graph; }
+    ModelOptions& GetModelOptions() { return m_ModelOptions; }
+
+private:
+    std::unique_ptr<Graph> m_Graph;
+    profiling::ProfilingGuid m_Guid;
+    ModelOptions m_ModelOptions;
+};
+
+}