IVGCVSW-4393 Register backend counters

Signed-off-by: David Monahan <david.monahan@arm.com>
Change-Id: I419ecc2fce4b7e0fcaeb6d1f9cb687c0b660125d
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
diff --git a/include/armnn/backends/profiling/IBackendProfiling.hpp b/include/armnn/backends/profiling/IBackendProfiling.hpp
index 6ed7aba..4c463a8 100644
--- a/include/armnn/backends/profiling/IBackendProfiling.hpp
+++ b/include/armnn/backends/profiling/IBackendProfiling.hpp
@@ -39,29 +39,31 @@
 class IRegisterBackendCounters
 {
 public:
-    uint16_t RegisterCategory(const std::string& categoryName,
-                              const Optional<uint16_t>& deviceUid     = EmptyOptional(),
-                              const Optional<uint16_t>& counterSetUid = EmptyOptional());
+    virtual void RegisterCategory(const std::string& categoryName,
+                                  const Optional<uint16_t>& deviceUid     = EmptyOptional(),
+                                  const Optional<uint16_t>& counterSetUid = EmptyOptional()) = 0;
 
-    uint16_t RegisterDevice(const std::string& deviceName,
-                            uint16_t cores                                  = 0,
-                            const Optional<std::string>& parentCategoryName = EmptyOptional());
+    virtual uint16_t RegisterDevice(const std::string& deviceName,
+                                    uint16_t cores = 0,
+                                    const Optional<std::string>& parentCategoryName = EmptyOptional()) = 0;
 
-    uint16_t RegisterCounterSet(const std::string& counterSetName,
-                                uint16_t count                                  = 0,
-                                const Optional<std::string>& parentCategoryName = EmptyOptional());
+    virtual uint16_t RegisterCounterSet(const std::string& counterSetName,
+                                        uint16_t count = 0,
+                                        const Optional<std::string>& parentCategoryName = EmptyOptional()) = 0;
 
-    uint16_t RegisterCounter(const uint16_t uid,
-                             const std::string& parentCategoryName,
-                             uint16_t counterClass,
-                             uint16_t interpolation,
-                             double multiplier,
-                             const std::string& name,
-                             const std::string& description,
-                             const Optional<std::string>& units      = EmptyOptional(),
-                             const Optional<uint16_t>& numberOfCores = EmptyOptional(),
-                             const Optional<uint16_t>& deviceUid     = EmptyOptional(),
-                             const Optional<uint16_t>& counterSetUid = EmptyOptional());
+    virtual uint16_t RegisterCounter(const uint16_t uid,
+                                     const std::string& parentCategoryName,
+                                     uint16_t counterClass,
+                                     uint16_t interpolation,
+                                     double multiplier,
+                                     const std::string& name,
+                                     const std::string& description,
+                                     const Optional<std::string>& units      = EmptyOptional(),
+                                     const Optional<uint16_t>& numberOfCores = EmptyOptional(),
+                                     const Optional<uint16_t>& deviceUid     = EmptyOptional(),
+                                     const Optional<uint16_t>& counterSetUid = EmptyOptional()) = 0;
+
+    virtual ~IRegisterBackendCounters() {}
 };
 
 class IBackendProfiling
@@ -74,7 +76,7 @@
     virtual ~IBackendProfiling()
     {}
 
-    IRegisterBackendCounters GetCounterRegistrationInterface(uint16_t currentMaxGlobalCounterID);
+    IRegisterBackendCounters& GetCounterRegistrationInterface(uint16_t currentMaxGlobalCounterID);
 
     ISendTimelinePacket& GetSendTimelinePacket();