IVGCVSW-4156 Remove backend dependency on ProfilingService.hpp

Change-Id: I3b18ede85408bdfbc5147396e183e87bdabd3754
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 21d1336..88f6396 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -224,6 +224,7 @@
     include/armnn/ILayerVisitor.hpp
     include/armnn/INetwork.hpp
     include/armnn/IProfiler.hpp
+    include/armnn/IProfilingGuidGenerator.hpp
     include/armnn/IRuntime.hpp
     include/armnn/LayerSupport.hpp
     include/armnn/LayerVisitorBase.hpp
@@ -467,7 +468,6 @@
     src/profiling/IPeriodicCounterCapture.hpp
     src/profiling/IProfilingConnection.hpp
     src/profiling/IProfilingConnectionFactory.hpp
-    src/profiling/IProfilingGuidGenerator.hpp
     src/profiling/LabelsAndEventClasses.cpp
     src/profiling/LabelsAndEventClasses.hpp
     src/profiling/Packet.hpp
diff --git a/src/profiling/IProfilingGuidGenerator.hpp b/include/armnn/IProfilingGuidGenerator.hpp
similarity index 91%
rename from src/profiling/IProfilingGuidGenerator.hpp
rename to include/armnn/IProfilingGuidGenerator.hpp
index fb9f740..4dcc6cd 100644
--- a/src/profiling/IProfilingGuidGenerator.hpp
+++ b/include/armnn/IProfilingGuidGenerator.hpp
@@ -25,6 +25,8 @@
     virtual ProfilingStaticGuid GenerateStaticId(const std::string& str) = 0;
 
     virtual ~IProfilingGuidGenerator() {}
+
+    static IProfilingGuidGenerator& Instance();
 };
 
 } // namespace profiling
diff --git a/src/backends/backendsCommon/Workload.hpp b/src/backends/backendsCommon/Workload.hpp
index b5851ad..e390580 100644
--- a/src/backends/backendsCommon/Workload.hpp
+++ b/src/backends/backendsCommon/Workload.hpp
@@ -8,8 +8,8 @@
 #include "WorkloadInfo.hpp"
 
 #include <armnn/Types.hpp>
+#include <armnn/IProfilingGuidGenerator.hpp>
 #include <Profiling.hpp>
-#include <ProfilingService.hpp>
 
 #include <algorithm>
 
@@ -45,7 +45,7 @@
 
     BaseWorkload(const QueueDescriptor& descriptor, const WorkloadInfo& info)
         : m_Data(descriptor),
-          m_Guid(profiling::ProfilingService::Instance().NextGuid())
+          m_Guid(profiling::IProfilingGuidGenerator::Instance().NextGuid())
     {
         m_Data.Validate(info);
     }
diff --git a/src/profiling/ProfilingGuidGenerator.hpp b/src/profiling/ProfilingGuidGenerator.hpp
index 97de4a8..45f523c 100644
--- a/src/profiling/ProfilingGuidGenerator.hpp
+++ b/src/profiling/ProfilingGuidGenerator.hpp
@@ -5,7 +5,7 @@
 
 #pragma once
 
-#include "IProfilingGuidGenerator.hpp"
+#include "armnn/IProfilingGuidGenerator.hpp"
 
 #include <functional>
 
diff --git a/src/profiling/ProfilingService.cpp b/src/profiling/ProfilingService.cpp
index c4063a5..cbd8d6b 100644
--- a/src/profiling/ProfilingService.cpp
+++ b/src/profiling/ProfilingService.cpp
@@ -14,6 +14,11 @@
 namespace profiling
 {
 
+IProfilingGuidGenerator& IProfilingGuidGenerator::Instance()
+{
+    return ProfilingService::Instance();
+}
+
 void ProfilingService::ResetExternalProfilingOptions(const ExternalProfilingOptions& options,
                                                      bool resetProfilingService)
 {