xref: /aosp_15_r20/external/armnn/profiling/client/include/ISendTimelinePacket.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #pragma once
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker #include <algorithm>
9*89c4ff92SAndroid Build Coastguard Worker #include <string>
10*89c4ff92SAndroid Build Coastguard Worker #include <vector>
11*89c4ff92SAndroid Build Coastguard Worker 
12*89c4ff92SAndroid Build Coastguard Worker namespace arm
13*89c4ff92SAndroid Build Coastguard Worker {
14*89c4ff92SAndroid Build Coastguard Worker 
15*89c4ff92SAndroid Build Coastguard Worker namespace pipe
16*89c4ff92SAndroid Build Coastguard Worker {
17*89c4ff92SAndroid Build Coastguard Worker 
18*89c4ff92SAndroid Build Coastguard Worker enum class ProfilingRelationshipType
19*89c4ff92SAndroid Build Coastguard Worker {
20*89c4ff92SAndroid Build Coastguard Worker     RetentionLink,    /// Head retains(parents) Tail
21*89c4ff92SAndroid Build Coastguard Worker     ExecutionLink,    /// Head execution start depends on Tail execution completion
22*89c4ff92SAndroid Build Coastguard Worker     DataLink,         /// Head uses data of Tail
23*89c4ff92SAndroid Build Coastguard Worker     LabelLink         /// Head uses label Tail (Tail MUST be a guid of a label).
24*89c4ff92SAndroid Build Coastguard Worker };
25*89c4ff92SAndroid Build Coastguard Worker 
26*89c4ff92SAndroid Build Coastguard Worker class ISendTimelinePacket
27*89c4ff92SAndroid Build Coastguard Worker {
28*89c4ff92SAndroid Build Coastguard Worker public:
~ISendTimelinePacket()29*89c4ff92SAndroid Build Coastguard Worker     virtual ~ISendTimelinePacket()
30*89c4ff92SAndroid Build Coastguard Worker     {}
31*89c4ff92SAndroid Build Coastguard Worker 
32*89c4ff92SAndroid Build Coastguard Worker     /// Commits the current buffer and reset the member variables
33*89c4ff92SAndroid Build Coastguard Worker     virtual void Commit() = 0;
34*89c4ff92SAndroid Build Coastguard Worker 
35*89c4ff92SAndroid Build Coastguard Worker     /// Create and write a TimelineEntityBinaryPacket from the parameters to the buffer.
36*89c4ff92SAndroid Build Coastguard Worker     virtual void SendTimelineEntityBinaryPacket(uint64_t profilingGuid) = 0;
37*89c4ff92SAndroid Build Coastguard Worker 
38*89c4ff92SAndroid Build Coastguard Worker     /// Create and write a TimelineEventBinaryPacket from the parameters to the buffer.
39*89c4ff92SAndroid Build Coastguard Worker     virtual void
40*89c4ff92SAndroid Build Coastguard Worker         SendTimelineEventBinaryPacket(uint64_t timestamp, int threadId, uint64_t profilingGuid) = 0;
41*89c4ff92SAndroid Build Coastguard Worker 
42*89c4ff92SAndroid Build Coastguard Worker     /// Create and write a TimelineEventClassBinaryPacket from the parameters to the buffer.
43*89c4ff92SAndroid Build Coastguard Worker     virtual void SendTimelineEventClassBinaryPacket(uint64_t profilingGuid, uint64_t nameGuid) = 0;
44*89c4ff92SAndroid Build Coastguard Worker 
45*89c4ff92SAndroid Build Coastguard Worker     /// Create and write a TimelineLabelBinaryPacket from the parameters to the buffer.
46*89c4ff92SAndroid Build Coastguard Worker     virtual void SendTimelineLabelBinaryPacket(uint64_t profilingGuid, const std::string& label) = 0;
47*89c4ff92SAndroid Build Coastguard Worker 
48*89c4ff92SAndroid Build Coastguard Worker     /// Create and write a TimelineMessageDirectoryPackage in the buffer
49*89c4ff92SAndroid Build Coastguard Worker     virtual void SendTimelineMessageDirectoryPackage() = 0;
50*89c4ff92SAndroid Build Coastguard Worker 
51*89c4ff92SAndroid Build Coastguard Worker     /// Create and write a TimelineRelationshipBinaryPacket from the parameters to the buffer.
52*89c4ff92SAndroid Build Coastguard Worker     virtual void SendTimelineRelationshipBinaryPacket(ProfilingRelationshipType relationshipType,
53*89c4ff92SAndroid Build Coastguard Worker                                                       uint64_t relationshipGuid,
54*89c4ff92SAndroid Build Coastguard Worker                                                       uint64_t headGuid,
55*89c4ff92SAndroid Build Coastguard Worker                                                       uint64_t tailGuid,
56*89c4ff92SAndroid Build Coastguard Worker                                                       uint64_t attributeGuid) = 0;
57*89c4ff92SAndroid Build Coastguard Worker };
58*89c4ff92SAndroid Build Coastguard Worker 
59*89c4ff92SAndroid Build Coastguard Worker }    // namespace pipe
60*89c4ff92SAndroid Build Coastguard Worker 
61*89c4ff92SAndroid Build Coastguard Worker }    // namespace arm
62