IVGCVSW-1952 : add BackendId class to prepare for the replacement of Compute enum

!armnn:152674

Change-Id: I1bcdfdfbfb73e502d58f35717e2558e24651013c
diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index b7ee947..4afc50b 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -7,6 +7,7 @@
 #include <array>
 #include <memory>
 #include "ILayerSupport.hpp"
+#include "BackendId.hpp"
 
 namespace armnn
 {
@@ -94,17 +95,6 @@
     Ceiling     = 1
 };
 
-enum class Compute
-{
-    /// CPU Execution: Reference C++ kernels
-    CpuRef      = 0,
-    /// CPU Execution: NEON: ArmCompute
-    CpuAcc      = 1,
-    /// GPU Execution: OpenCL: ArmCompute
-    GpuAcc      = 2,
-    Undefined   = 5
-};
-
 /// Each backend should implement an IBackend.
 class IBackend
 {
@@ -113,7 +103,7 @@
     virtual ~IBackend() {}
 
 public:
-    virtual const std::string& GetId() const = 0;
+    virtual const BackendId& GetId() const = 0;
     virtual const ILayerSupport& GetLayerSupport() const = 0;
 };
 
@@ -189,4 +179,4 @@
 /// Define LayerGuid type.
 using LayerGuid = unsigned int;
 
-}
+} // namespace armnn