aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJim Flynn <jim.flynn@arm.com>2022-01-31 16:08:53 +0000
committerJim Flynn <jim.flynn@arm.com>2022-02-02 16:28:41 +0000
commite46659669b753411421a6a552b32b9f1d27b8b2e (patch)
tree25205a698f262c6a344db594968ad31865d3f352 /include
parente2af6f4322a1e2b8b3c391fb721a6a80c281477f (diff)
downloadarmnn-e46659669b753411421a6a552b32b9f1d27b8b2e.tar.gz
IVGCVSW-6639 Add GetParameters to IConnectableLayer
Change-Id: Id55a460ecb510f5b30235b03f54390f2c8188fc2 Signed-off-by: Jim Flynn <jim.flynn@arm.com>
Diffstat (limited to 'include')
-rw-r--r--include/armnn/Descriptors.hpp8
-rw-r--r--include/armnn/INetwork.hpp7
2 files changed, 15 insertions, 0 deletions
diff --git a/include/armnn/Descriptors.hpp b/include/armnn/Descriptors.hpp
index b37db540da..280c18e78c 100644
--- a/include/armnn/Descriptors.hpp
+++ b/include/armnn/Descriptors.hpp
@@ -21,9 +21,17 @@ namespace armnn
/// Base class for all descriptors.
struct BaseDescriptor
{
+ virtual bool IsNull() const { return false; }
virtual ~BaseDescriptor() = default;
};
+/// Null Descriptor used as a return value from the IConnectableLayer GetParameters method
+/// by layers which do not have a descriptor
+struct NullDescriptor : BaseDescriptor
+{
+ bool IsNull() const override { return true; }
+};
+
/// An ActivationDescriptor for the ActivationLayer.
struct ActivationDescriptor : BaseDescriptor
{
diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp
index a48ee25f72..073f119ef4 100644
--- a/include/armnn/INetwork.hpp
+++ b/include/armnn/INetwork.hpp
@@ -112,6 +112,13 @@ public:
/// Returns the armnn::LayerType of this layer
virtual LayerType GetType() const = 0;
+ /// If the layer has a descriptor return it.
+ /// The base descriptor can then be cast to the correct descriptor class.
+ /// If the layer has no associated descriptor a struct of type NullDescriptor will be returned.
+ /// Note: NullDescriptors can be detected because they return true when
+ /// the BaseDescriptor IsNull function is invoked.
+ virtual const BaseDescriptor& GetParameters() const = 0;
+
protected:
/// Objects are not deletable via the handle
~IConnectableLayer() {}