IVGCVSW-6298 'IMemoryOptimizerStrategy Add declarations and constant layer strategy'

* Added IMemoryOptimizerStrategy interface
* Added ConstLayerMemoryOptimizer strategy

Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I6a92e659379e5cc39c375b669678eee8a8c08c20
diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index 19e93c3..0b7b941 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -213,6 +213,19 @@
     DmaBufProtected = 4
 };
 
+enum class MemBlockStrategyType
+{
+    // MemBlocks can be packed on the Y axis only.
+    // In other words MemBlocks with overlapping lifetimes cannot use the same MemBin,
+    // equivalent to blob or pooling memory management.
+    SingleAxisPacking  = 0,
+
+    // MemBlocks can be packed on the Y and X axis.
+    // In other words MemBlocks with overlapping lifetimes can use the same MemBin,
+    // equivalent to offset or slab memory management.
+    MultiAxisPacking  = 1
+};
+
 /// Each backend should implement an IBackend.
 class IBackend
 {