NNXSW-3858: Get non-const IConnectableLayer from I/O slots
* Added non-const variants of existing const member functions in
IInputSlot and IOutputSlot to retrieve non-const IConnectableLayer
Signed-off-by: Nabeel Ahmad <nabeel.ahmad@arm.com>
Change-Id: Ic3388b578324edb4d2cca36acce6560ad1ce83c5
diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp
index 475367e..1ed5600 100644
--- a/include/armnn/INetwork.hpp
+++ b/include/armnn/INetwork.hpp
@@ -29,6 +29,7 @@
virtual const IOutputSlot* GetConnection() const = 0;
virtual IOutputSlot* GetConnection() = 0;
virtual const IConnectableLayer& GetOwningIConnectableLayer() const = 0;
+ virtual IConnectableLayer& GetOwningIConnectableLayer() = 0;
protected:
/// Not user deletable.
@@ -56,6 +57,7 @@
virtual LayerGuid GetOwningLayerGuid() const = 0;
virtual const IConnectableLayer& GetOwningIConnectableLayer() const = 0;
+ virtual IConnectableLayer& GetOwningIConnectableLayer() = 0;
protected:
/// Not user deletable.
diff --git a/src/armnn/Layer.cpp b/src/armnn/Layer.cpp
index b1d4952..19337dc 100644
--- a/src/armnn/Layer.cpp
+++ b/src/armnn/Layer.cpp
@@ -543,9 +543,19 @@
return m_OwningLayer;
}
+IConnectableLayer& OutputSlot::GetOwningIConnectableLayer()
+{
+ return m_OwningLayer;
+}
+
const IConnectableLayer& InputSlot::GetOwningIConnectableLayer() const
{
return m_OwningLayer;
}
+IConnectableLayer& InputSlot::GetOwningIConnectableLayer()
+{
+ return m_OwningLayer;
+}
+
} // namespace armnn
diff --git a/src/armnn/Layer.hpp b/src/armnn/Layer.hpp
index 767cf97..5edf66c 100644
--- a/src/armnn/Layer.hpp
+++ b/src/armnn/Layer.hpp
@@ -57,6 +57,7 @@
OutputSlot* GetConnectedOutputSlot() { return m_Connection; }
const IConnectableLayer& GetOwningIConnectableLayer() const override;
+ IConnectableLayer& GetOwningIConnectableLayer() override;
/// Links the slot to an output slot or breaks an existing link if passing nullptr.
void SetConnection(OutputSlot* source)
@@ -118,6 +119,7 @@
Layer& GetOwningLayer() const { return m_OwningLayer; }
const IConnectableLayer& GetOwningIConnectableLayer() const override;
+ IConnectableLayer& GetOwningIConnectableLayer() override;
LayerGuid GetOwningLayerGuid() const override;