IVGCVSW-4316 Promote ISendTimelinePacket and IProfilingGuidGenerator

As part of IVGCVSW-4316 we need to expose ISendTimelinePacket and
IProfilingGuidGenerator to enable them to be used by backends for
profiling. This also required moving ProfilingRelationshipType from
ProfilingUtils.

Signed-off-by: Colm Donelan <Colm.Donelan@arm.com>
Change-Id: I58cc64e32ecfffa5231c9d2028522ed58d0ddf31
diff --git a/src/profiling/ConnectionAcknowledgedCommandHandler.hpp b/src/profiling/ConnectionAcknowledgedCommandHandler.hpp
index 05559a3..6054306 100644
--- a/src/profiling/ConnectionAcknowledgedCommandHandler.hpp
+++ b/src/profiling/ConnectionAcknowledgedCommandHandler.hpp
@@ -7,7 +7,7 @@
 
 #include "CommandHandlerFunctor.hpp"
 #include "ISendCounterPacket.hpp"
-#include "ISendTimelinePacket.hpp"
+#include "armnn/profiling/ISendTimelinePacket.hpp"
 #include "Packet.hpp"
 #include "ProfilingStateMachine.hpp"
 
diff --git a/src/profiling/IProfilingGuidGenerator.hpp b/src/profiling/IProfilingGuidGenerator.hpp
deleted file mode 100644
index fb9f740..0000000
--- a/src/profiling/IProfilingGuidGenerator.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-//
-// Copyright © 2019 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <armnn/Types.hpp>
-
-#include <string>
-
-namespace armnn
-{
-
-namespace profiling
-{
-
-class IProfilingGuidGenerator
-{
-public:
-    /// Return the next random Guid in the sequence
-    virtual ProfilingDynamicGuid NextGuid() = 0;
-
-    /// Create a ProfilingStaticGuid based on a hash of the string
-    virtual ProfilingStaticGuid GenerateStaticId(const std::string& str) = 0;
-
-    virtual ~IProfilingGuidGenerator() {}
-};
-
-} // namespace profiling
-
-} // namespace armnn
diff --git a/src/profiling/ISendTimelinePacket.hpp b/src/profiling/ISendTimelinePacket.hpp
deleted file mode 100644
index a954134..0000000
--- a/src/profiling/ISendTimelinePacket.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// Copyright © 2019 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "ProfilingUtils.hpp"
-
-#include <algorithm>
-#include <string>
-#include <vector>
-#include <thread>
-
-namespace armnn
-{
-
-namespace profiling
-{
-
-class ISendTimelinePacket
-{
-public:
-    virtual ~ISendTimelinePacket() {}
-
-    /// Commits the current buffer and reset the member variables
-    virtual void Commit() = 0;
-
-    /// Create and write a TimelineEntityBinaryPacket from the parameters to the buffer.
-    virtual void SendTimelineEntityBinaryPacket(uint64_t profilingGuid) = 0;
-
-    /// Create and write a TimelineEventBinaryPacket from the parameters to the buffer.
-    virtual void SendTimelineEventBinaryPacket(uint64_t timestamp,
-                                               std::thread::id threadId,
-                                               uint64_t profilingGuid) = 0;
-
-    /// Create and write a TimelineEventClassBinaryPacket from the parameters to the buffer.
-    virtual void SendTimelineEventClassBinaryPacket(uint64_t profilingGuid) = 0;
-
-    /// Create and write a TimelineLabelBinaryPacket from the parameters to the buffer.
-    virtual void SendTimelineLabelBinaryPacket(uint64_t profilingGuid, const std::string& label) = 0;
-
-    /// Create and write a TimelineMessageDirectoryPackage in the buffer
-    virtual void SendTimelineMessageDirectoryPackage() = 0;
-
-    /// Create and write a TimelineRelationshipBinaryPacket from the parameters to the buffer.
-    virtual void SendTimelineRelationshipBinaryPacket(ProfilingRelationshipType relationshipType,
-                                                      uint64_t relationshipGuid,
-                                                      uint64_t headGuid,
-                                                      uint64_t tailGuid) = 0;
-};
-
-} // namespace profiling
-
-} // namespace armnn
-
diff --git a/src/profiling/ProfilingGuidGenerator.hpp b/src/profiling/ProfilingGuidGenerator.hpp
index 97de4a8..a319035 100644
--- a/src/profiling/ProfilingGuidGenerator.hpp
+++ b/src/profiling/ProfilingGuidGenerator.hpp
@@ -5,7 +5,7 @@
 
 #pragma once
 
-#include "IProfilingGuidGenerator.hpp"
+#include "armnn/profiling/IProfilingGuidGenerator.hpp"
 
 #include <functional>
 
diff --git a/src/profiling/ProfilingUtils.hpp b/src/profiling/ProfilingUtils.hpp
index 9bbe421..a63f255 100644
--- a/src/profiling/ProfilingUtils.hpp
+++ b/src/profiling/ProfilingUtils.hpp
@@ -6,6 +6,7 @@
 #pragma once
 
 #include <armnn/Exceptions.hpp>
+#include <armnn/profiling/ISendTimelinePacket.hpp>
 
 #include "ICounterDirectory.hpp"
 #include "IPacketBuffer.hpp"
@@ -16,8 +17,8 @@
 #include <cstring>
 #include <memory>
 #include <string>
-#include <vector>
 #include <thread>
+#include <vector>
 
 namespace armnn
 {
@@ -197,14 +198,6 @@
     BufferExhaustion
 };
 
-enum class ProfilingRelationshipType
-{
-    RetentionLink,    /// Head retains(parents) Tail
-    ExecutionLink,    /// Head execution start depends on Tail execution completion
-    DataLink,         /// Head uses data of Tail
-    LabelLink         /// Head uses label Tail (Tail MUST be a guid of a label).
-};
-
 uint32_t CalculateSizeOfPaddedSwString(const std::string& str);
 
 SwTraceMessage ReadSwTraceMessage(const unsigned char*, unsigned int& offset);
diff --git a/src/profiling/RequestCounterDirectoryCommandHandler.hpp b/src/profiling/RequestCounterDirectoryCommandHandler.hpp
index 99c0352..9ceca3f 100644
--- a/src/profiling/RequestCounterDirectoryCommandHandler.hpp
+++ b/src/profiling/RequestCounterDirectoryCommandHandler.hpp
@@ -7,7 +7,7 @@
 
 #include "CommandHandlerFunctor.hpp"
 #include "ISendCounterPacket.hpp"
-#include "ISendTimelinePacket.hpp"
+#include "armnn/profiling/ISendTimelinePacket.hpp"
 #include "Packet.hpp"
 #include "ProfilingStateMachine.hpp"
 
diff --git a/src/profiling/SendTimelinePacket.hpp b/src/profiling/SendTimelinePacket.hpp
index 4b2e063..737a1aa 100644
--- a/src/profiling/SendTimelinePacket.hpp
+++ b/src/profiling/SendTimelinePacket.hpp
@@ -6,7 +6,7 @@
 #pragma once
 
 #include "IBufferManager.hpp"
-#include "ISendTimelinePacket.hpp"
+#include "armnn/profiling/ISendTimelinePacket.hpp"
 #include "ProfilingUtils.hpp"
 
 #include <boost/assert.hpp>
diff --git a/src/profiling/TimelinePacketWriterFactory.hpp b/src/profiling/TimelinePacketWriterFactory.hpp
index 1bbd3fd..a1e9945 100644
--- a/src/profiling/TimelinePacketWriterFactory.hpp
+++ b/src/profiling/TimelinePacketWriterFactory.hpp
@@ -6,7 +6,7 @@
 #pragma once
 
 #include "IBufferManager.hpp"
-#include "ISendTimelinePacket.hpp"
+#include "armnn/profiling/ISendTimelinePacket.hpp"
 
 #include <memory>
 
diff --git a/src/profiling/TimelineUtilityMethods.hpp b/src/profiling/TimelineUtilityMethods.hpp
index 5b00ec8..c33dd92 100644
--- a/src/profiling/TimelineUtilityMethods.hpp
+++ b/src/profiling/TimelineUtilityMethods.hpp
@@ -5,7 +5,7 @@
 
 #pragma once
 
-#include "ISendTimelinePacket.hpp"
+#include "armnn/profiling/ISendTimelinePacket.hpp"
 #include <armnn/Types.hpp>
 
 namespace armnn