IVGCVSW-6632 Return INetwork* not INetworkPtr& from OptimizationViews::GetINetwork()

 * Also provide API to return reference via GetINetworkRef().

Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Change-Id: I80f4912cb7e22a2023e9bb880182ad4610c219e9
diff --git a/include/armnn/backends/OptimizationViews.hpp b/include/armnn/backends/OptimizationViews.hpp
index 0357ada..59d71ca 100644
--- a/include/armnn/backends/OptimizationViews.hpp
+++ b/include/armnn/backends/OptimizationViews.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017, 2019, 2021-2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -64,7 +64,8 @@
     ARMNN_DEPRECATED_MSG_REMOVAL_DATE("GetGraph is deprecated. Use GetINetwork instead.", "23.08")
     Graph& GetGraph() { return m_Graph; }
 
-    INetworkPtr& GetINetwork() { return m_INetwork; }
+    INetwork* GetINetwork() { return m_INetwork.get(); }
+    INetwork& GetINetworkRef() { return *m_INetwork; }
 
 private:
     Substitutions m_SuccesfulOptimizations;     ///< Proposed substitutions from successful optimizations
diff --git a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
index 9b86784..ff84eea 100644
--- a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017, 2019-2022  Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -288,4 +288,15 @@
     CheckLayers(graph);
 }
 
+TEST_CASE("OptimizedViewsReturnsINetworkReference")
+{
+    OptimizationViews view;
+
+    auto layer = view.GetINetworkRef().AddInputLayer(0, "input");
+
+    // Check layer has been added to the referenced INetwork
+    CHECK(layer);
+}
+
+
 }
\ No newline at end of file