IVGCVSW-4070 Implement "send post-optimized network structure"

 * Send post-optimisation network structure if profiling service is enabled
 * Refactor TimelineUtilityMethods
 * Fix RecordEvent to link eventGuid with eventClassGuid
 * Add common types and guid to LabelsAndEventClasses
 * Add CreateRelationship to TimelineUtilityMethods
 * Add CreateTypedEntity to TimelineUtilityMethods
 * Add MarkEntityWithType to TimelineUtilityMethods
 * Move VerifyTimeline functions to ProfilingTestUtils
 * Post-optimisation network structure unit tests to Ref, Cl, Neon

Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: I0194f2037c236450c912f4c3cb11e46b80c0f512
diff --git a/src/profiling/ProfilingService.hpp b/src/profiling/ProfilingService.hpp
index 9fc642f..f9b057c 100644
--- a/src/profiling/ProfilingService.hpp
+++ b/src/profiling/ProfilingService.hpp
@@ -77,6 +77,9 @@
 
     std::unique_ptr<ISendTimelinePacket> GetSendTimelinePacket() const;
 
+    /// Check if the profiling is enabled
+    bool IsEnabled() { return m_Options.m_EnableProfiling; }
+
 private:
     // Copy/move constructors/destructors and copy/move assignment operators are deleted
     ProfilingService(const ProfilingService&) = delete;
@@ -201,6 +204,11 @@
     {
         return instance.m_SendCounterPacket.WaitForPacketSent(timeout);
     }
+
+    BufferManager& GetBufferManager(ProfilingService& instance)
+    {
+        return instance.m_BufferManager;
+    }
 };
 
 } // namespace profiling