blob: 3683ed33836c7efd9e434c4be8316fbea13ac64b [file] [log] [blame]
Matteo Martincigh830101c2019-10-22 11:07:45 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "ISendTimelinePacket.hpp"
janeil01c4946c72019-11-07 09:32:28 +00009#include <armnn/Types.hpp>
Matteo Martincigh830101c2019-10-22 11:07:45 +010010
11namespace armnn
12{
13
14namespace profiling
15{
16
17class TimelineUtilityMethods
18{
19public:
20 TimelineUtilityMethods(ISendTimelinePacket& sendTimelinePacket)
21 : m_SendTimelinePacket(sendTimelinePacket)
22 {}
23 ~TimelineUtilityMethods() = default;
24
Matteo Martincigh102cdbd2019-10-28 11:42:50 +000025 void SendWellKnownLabelsAndEventClasses();
26
Narumol Prangnawaratd034e082019-10-30 12:48:31 +000027 ProfilingDynamicGuid CreateNamedTypedEntity(const std::string& name, const std::string& type);
28
Narumol Prangnawarat234d5252019-11-19 15:49:18 +000029 void CreateNamedTypedEntity(ProfilingDynamicGuid entityGuid, const std::string& name, const std::string& type);
30
Matteo Martincighc0401992019-10-28 15:24:34 +000031 void CreateTypedLabel(ProfilingGuid entityGuid, const std::string& entityName, ProfilingStaticGuid labelTypeGuid);
Matteo Martincigh830101c2019-10-22 11:07:45 +010032
Narumol Prangnawaratd034e082019-10-30 12:48:31 +000033 ProfilingStaticGuid DeclareLabel(const std::string& labelName);
34
35 void NameEntity(ProfilingGuid entityGuid, const std::string& name);
36
37 void TypeEntity(ProfilingGuid entityGuid, const std::string& type);
38
Narumol Prangnawarat94a30882019-10-30 12:48:31 +000039 ProfilingDynamicGuid CreateNamedTypedChildEntity(ProfilingGuid parentEntityGuid,
40 const std::string& entityName,
41 const std::string& entityType);
42
Narumol Prangnawarat234d5252019-11-19 15:49:18 +000043 void CreateNamedTypedChildEntity(ProfilingDynamicGuid entityGuid,
44 ProfilingGuid parentEntityGuid,
45 const std::string& entityName,
46 const std::string& entityType);
47
Matteo Martincigh5dc816e2019-11-04 14:05:28 +000048 ProfilingDynamicGuid RecordEvent(ProfilingGuid entityGuid, ProfilingStaticGuid eventClassGuid);
49
Matteo Martincigh830101c2019-10-22 11:07:45 +010050private:
51 ISendTimelinePacket& m_SendTimelinePacket;
52};
53
54} // namespace profiling
55
56} // namespace armnn