IVGCVSW-4338 Implement the Activation of Counters in backends

Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Change-Id: I4a2465f06e046f78242ff0a246c651638b205498
diff --git a/src/profiling/Holder.hpp b/src/profiling/Holder.hpp
index 9785b98..8a89cda 100644
--- a/src/profiling/Holder.hpp
+++ b/src/profiling/Holder.hpp
@@ -7,6 +7,8 @@
 
 #include <mutex>
 #include <vector>
+#include <set>
+#include "ProfilingUtils.hpp"
 
 namespace armnn
 {
@@ -19,25 +21,31 @@
 public:
     CaptureData()
         : m_CapturePeriod(0)
-        , m_CounterIds() {}
-    CaptureData(uint32_t capturePeriod, std::vector<uint16_t>& counterIds)
+        , m_CounterIds()
+        , m_ActiveBackends(){}
+    CaptureData(uint32_t capturePeriod, std::vector<uint16_t>& counterIds, std::set<armnn::BackendId> activeBackends)
         : m_CapturePeriod(capturePeriod)
-        , m_CounterIds(counterIds) {}
+        , m_CounterIds(counterIds)
+        , m_ActiveBackends(activeBackends){}
     CaptureData(const CaptureData& captureData)
         : m_CapturePeriod(captureData.m_CapturePeriod)
-        , m_CounterIds(captureData.m_CounterIds) {}
+        , m_CounterIds(captureData.m_CounterIds)
+        , m_ActiveBackends(captureData.m_ActiveBackends){}
 
     CaptureData& operator=(const CaptureData& other);
 
+    void SetActiveBackends(const std::set<armnn::BackendId>& activeBackends);
     void SetCapturePeriod(uint32_t capturePeriod);
     void SetCounterIds(const std::vector<uint16_t>& counterIds);
     uint32_t GetCapturePeriod() const;
     const std::vector<uint16_t>& GetCounterIds() const;
+    const std::set<armnn::BackendId>& GetActiveBackends() const;
     bool IsCounterIdInCaptureData(uint16_t counterId);
 
 private:
     uint32_t m_CapturePeriod;
     std::vector<uint16_t> m_CounterIds;
+    std::set<armnn::BackendId> m_ActiveBackends;
 };
 
 class Holder
@@ -46,7 +54,9 @@
     Holder()
         : m_CaptureData() {}
     CaptureData GetCaptureData() const;
-    void SetCaptureData(uint32_t capturePeriod, const std::vector<uint16_t>& counterIds);
+    void SetCaptureData(uint32_t capturePeriod,
+                        const std::vector<uint16_t>& counterIds,
+                        const std::set<armnn::BackendId>& activeBackends);
 
 private:
     mutable std::mutex m_CaptureThreadMutex;