IVGCVSW-4317 Implement the Profiling Context Initialisation

* Call CreateBackendProfilingContext on each backend from Runtime passing
  an instance of the BackendProfiling interface.
* Modify the signature of CreateBackendProfilingContext to remove const
  and return a shared_ptr to BackendProfilingContext
* Add concrete BackendProfiling class.
* Store BackendProfilingContexts in Profiling service.

Signed-off-by: Colm Donelan <Colm.Donelan@arm.com>
Change-Id: I975eaa2093ae91fa623835f65f9e5b25eb65117a
diff --git a/include/armnn/backends/profiling/IBackendProfiling.hpp b/include/armnn/backends/profiling/IBackendProfiling.hpp
index 4c463a8..d3c5299 100644
--- a/include/armnn/backends/profiling/IBackendProfiling.hpp
+++ b/include/armnn/backends/profiling/IBackendProfiling.hpp
@@ -68,27 +68,25 @@
 
 class IBackendProfiling
 {
-protected:
-    IBackendProfiling(const IRuntime::CreationOptions&)
-    {}
-
 public:
     virtual ~IBackendProfiling()
     {}
 
-    IRegisterBackendCounters& GetCounterRegistrationInterface(uint16_t currentMaxGlobalCounterID);
+    virtual std::unique_ptr<IRegisterBackendCounters>
+        GetCounterRegistrationInterface(uint16_t currentMaxGlobalCounterID) = 0;
 
-    ISendTimelinePacket& GetSendTimelinePacket();
+    virtual std::unique_ptr<ISendTimelinePacket> GetSendTimelinePacket() = 0;
 
-    IProfilingGuidGenerator& GetProfilingGuidGenerator();
+    virtual IProfilingGuidGenerator& GetProfilingGuidGenerator() = 0;
 
-    void ReportCounters(const std::vector<Timestamp>& counterValues);
+    virtual void ReportCounters(const std::vector<Timestamp>& counterValues) = 0;
 
-    CounterStatus GetCounterStatus(uint16_t backendCounterId);
+    virtual CounterStatus GetCounterStatus(uint16_t backendCounterId) = 0;
 
-    std::vector<CounterStatus> GetActiveCounters();
+    virtual std::vector<CounterStatus> GetActiveCounters() = 0;
 
-    bool IsProfilingEnabled() const;
+    virtual bool IsProfilingEnabled() const = 0;
+
 };
 }    // namespace profiling
 }    // namespace armnn
\ No newline at end of file