IVGCVSW-2370 Code clean up after Equal operator implementation where necessary

StringMapping was located in the backendsCommon

Change-Id: I1c4a0bfca986722c721fcb2b460c03d6e1cd4568
diff --git a/src/backends/reference/backend.mk b/src/backends/reference/backend.mk
index d868069..b23c752 100644
--- a/src/backends/reference/backend.mk
+++ b/src/backends/reference/backend.mk
@@ -66,6 +66,7 @@
         workloads/ResizeBilinear.cpp \
         workloads/SpaceToBatchNd.cpp \
         workloads/StridedSlice.cpp \
+        workloads/StringMapping.cpp \
         workloads/Softmax.cpp
 
 # BACKEND_TEST_SOURCES contains the list of files to be included
diff --git a/src/backends/reference/workloads/CMakeLists.txt b/src/backends/reference/workloads/CMakeLists.txt
index 14d6ca9..d71e6ea 100644
--- a/src/backends/reference/workloads/CMakeLists.txt
+++ b/src/backends/reference/workloads/CMakeLists.txt
@@ -117,6 +117,8 @@
     Splitter.hpp
     StridedSlice.hpp
     StridedSlice.cpp
+    StringMapping.cpp
+    StringMapping.hpp
     TensorBufferArrayView.hpp
     Mean.cpp
     Mean.hpp
diff --git a/src/backends/reference/workloads/RefElementwiseWorkload.hpp b/src/backends/reference/workloads/RefElementwiseWorkload.hpp
index 1b3200f..6dd6865 100644
--- a/src/backends/reference/workloads/RefElementwiseWorkload.hpp
+++ b/src/backends/reference/workloads/RefElementwiseWorkload.hpp
@@ -6,11 +6,11 @@
 #pragma once
 
 #include <armnn/Types.hpp>
-#include <backendsCommon/StringMapping.hpp>
 #include <backendsCommon/Workload.hpp>
 #include <backendsCommon/WorkloadData.hpp>
 #include "Maximum.hpp"
 #include "Minimum.hpp"
+#include "StringMapping.hpp"
 
 namespace armnn
 {
diff --git a/src/backends/reference/workloads/StringMapping.cpp b/src/backends/reference/workloads/StringMapping.cpp
new file mode 100644
index 0000000..3ca8843
--- /dev/null
+++ b/src/backends/reference/workloads/StringMapping.cpp
@@ -0,0 +1,17 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "StringMapping.hpp"
+
+namespace armnn
+{
+
+const StringMapping& StringMapping::Instance()
+{
+    static StringMapping instance;
+    return instance;
+}
+
+} // armnn
diff --git a/src/backends/reference/workloads/StringMapping.hpp b/src/backends/reference/workloads/StringMapping.hpp
new file mode 100644
index 0000000..073a5a6
--- /dev/null
+++ b/src/backends/reference/workloads/StringMapping.hpp
@@ -0,0 +1,57 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+namespace armnn
+{
+
+///
+/// StringMapping is helper class to be able to use strings as template
+/// parameters, so this allows simplifying code which only differs in
+/// a string, such as a debug string literal.
+///
+struct StringMapping
+{
+public:
+    enum Id {
+        RefAdditionWorkload_Execute,
+        RefEqualWorkload_Execute,
+        RefDivisionWorkload_Execute,
+        RefGreaterWorkload_Execute,
+        RefMaximumWorkload_Execute,
+        RefMinimumWorkload_Execute,
+        RefMultiplicationWorkload_Execute,
+        RefSubtractionWorkload_Execute,
+        MAX_STRING_ID
+    };
+
+    const char * Get(Id id) const
+    {
+        return m_Strings[id];
+    }
+
+    static const StringMapping& Instance();
+
+private:
+    StringMapping()
+    {
+        m_Strings[RefAdditionWorkload_Execute] = "RefAdditionWorkload_Execute";
+        m_Strings[RefDivisionWorkload_Execute] = "RefDivisionWorkload_Execute";
+        m_Strings[RefEqualWorkload_Execute] = "RefEqualWorkload_Execute";
+        m_Strings[RefGreaterWorkload_Execute] = "RefGreaterWorkload_Execute";
+        m_Strings[RefMaximumWorkload_Execute] = "RefMaximumWorkload_Execute";
+        m_Strings[RefMinimumWorkload_Execute] = "RefMinimumWorkload_Execute";
+        m_Strings[RefMultiplicationWorkload_Execute] = "RefMultiplicationWorkload_Execute";
+        m_Strings[RefSubtractionWorkload_Execute] = "RefSubtractionWorkload_Execute";
+    }
+
+    StringMapping(const StringMapping &) = delete;
+    StringMapping& operator=(const StringMapping &) = delete;
+
+    const char * m_Strings[MAX_STRING_ID];
+};
+
+} //namespace armnn