ArmNN
 20.02
ITimelineDecoder.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2020 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <cstdint>
9 #include <string>
10 
12 {
13 
14 public:
15 
16  enum class TimelineStatus
17  {
20  };
21 
22  enum class RelationshipType
23  {
24  RetentionLink, /// Head retains(parents) Tail
25  ExecutionLink, /// Head execution start depends on Tail execution completion
26  DataLink, /// Head uses data of Tail
27  LabelLink /// Head uses label Tail (Tail MUST be a guid of a label).
28  };
29 
30  struct Entity
31  {
32  uint64_t m_Guid;
33  };
34 
35  struct EventClass
36  {
37  uint64_t m_Guid;
38  };
39 
40  struct Event
41  {
42  uint64_t m_Guid;
43  uint64_t m_TimeStamp;
44  uint64_t m_ThreadId;
45  };
46 
47  struct Label
48  {
49  uint64_t m_Guid;
50  std::string m_Name;
51  };
52 
53  struct Relationship
54  {
56  uint64_t m_Guid;
57  uint64_t m_HeadGuid;
58  uint64_t m_TailGuid;
59  };
60 
61  virtual ~ITimelineDecoder() = default;
62 
63  virtual TimelineStatus CreateEntity(const Entity&) = 0;
64  virtual TimelineStatus CreateEventClass(const EventClass&) = 0;
65  virtual TimelineStatus CreateEvent(const Event&) = 0;
66  virtual TimelineStatus CreateLabel(const Label&) = 0;
68 };
virtual TimelineStatus CreateEvent(const Event &)=0
virtual TimelineStatus CreateLabel(const Label &)=0
virtual TimelineStatus CreateRelationship(const Relationship &)=0
virtual TimelineStatus CreateEntity(const Entity &)=0
virtual TimelineStatus CreateEventClass(const EventClass &)=0
virtual ~ITimelineDecoder()=default