IVGCVSW-4394 Add CounterIdMap to Profiling Service

Change-Id: I416397a7855fe45319b4801252e141b78f0325f0
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
diff --git a/src/profiling/CounterIdMap.hpp b/src/profiling/CounterIdMap.hpp
index e401491..cb6b9c9 100644
--- a/src/profiling/CounterIdMap.hpp
+++ b/src/profiling/CounterIdMap.hpp
@@ -12,17 +12,38 @@
 namespace profiling
 {
 
-class CounterIdMap
+class ICounterMappings
+{
+public:
+    virtual uint16_t GetGlobalId(uint16_t backendCounterId, const armnn::BackendId& backendId) const = 0;
+    virtual const std::pair<uint16_t, armnn::BackendId>& GetBackendId(uint16_t globalCounterId) const = 0;
+    virtual ~ICounterMappings() {}
+};
+
+class IRegisterCounterMapping
+{
+public:
+    virtual void RegisterMapping(uint16_t globalCounterId,
+                                 uint16_t backendCounterId,
+                                 const armnn::BackendId& backendId) = 0;
+    virtual ~IRegisterCounterMapping() {}
+};
+
+class CounterIdMap : public ICounterMappings, public IRegisterCounterMapping
 {
 
 public:
-    void RegisterMapping(uint16_t globalCounterId, uint16_t backendCounterId, const armnn::BackendId& backendId);
-    uint16_t GetGlobalId(uint16_t backendCounterId, const armnn::BackendId& backendId);
-    const std::pair<uint16_t, armnn::BackendId>& GetBackendId(uint16_t globalCounterId);
+    CounterIdMap() = default;
+    virtual ~CounterIdMap() {}
+    void RegisterMapping(uint16_t globalCounterId,
+                         uint16_t backendCounterId,
+                         const armnn::BackendId& backendId) override;
+    uint16_t GetGlobalId(uint16_t backendCounterId, const armnn::BackendId& backendId) const override;
+    const std::pair<uint16_t, armnn::BackendId>& GetBackendId(uint16_t globalCounterId) const override;
 private:
     std::map<uint16_t, std::pair<uint16_t, armnn::BackendId>> m_GlobalCounterIdMap;
     std::map<std::pair<uint16_t, armnn::BackendId>, uint16_t> m_BackendCounterIdMap;
 };
 
 }    // namespace profiling
-}    // namespace armnn
\ No newline at end of file
+}    // namespace armnn