IVGCVSW-4893 Refactor ILayerVisitor using unified interface strategy.

Signed-off-by: Jan Eilers <jan.eilers@arm.com>
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Change-Id: Id7bc8255a8e3f9e5aac65d510bec8a559bf37246
diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp
index ca1b725..c667d9c 100644
--- a/include/armnn/INetwork.hpp
+++ b/include/armnn/INetwork.hpp
@@ -8,6 +8,7 @@
 #include <armnn/Deprecated.hpp>
 #include <armnn/DescriptorsFwd.hpp>
 #include <armnn/ILayerVisitor.hpp>
+#include <armnn/IStrategy.hpp>
 #include <armnn/NetworkFwd.hpp>
 #include <armnn/Optional.hpp>
 #include <armnn/TensorFwd.hpp>
@@ -91,8 +92,15 @@
     /// Apply a visitor to this layer
     virtual void Accept(ILayerVisitor& visitor) const = 0;
 
+    /// Apply a visitor to this layer
+    virtual void ExecuteStrategy(IStrategy& strategy) const = 0;
+
     /// Provide a hint for the optimizer as to which backend to prefer for this layer
     virtual void BackendSelectionHint(Optional<BackendId> backend) = 0;
+
+    /// Returns the armnn::LayerType of this layer
+    virtual LayerType GetType() const = 0;
+
 protected:
       /// Objects are not deletable via the handle
     ~IConnectableLayer() {}
@@ -600,6 +608,8 @@
 
     virtual void Accept(ILayerVisitor& visitor) const = 0;
 
+    virtual void ExecuteStrategy(IStrategy& strategy) const = 0;
+
 protected:
     ~INetwork() {}
 };