blob: 51fceb95f4fa98f2f1be8e9bfa8564aa12141b99 [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
Matteo Martincighc0401992019-10-28 15:24:34 +000029 void CreateTypedLabel(ProfilingGuid entityGuid, const std::string& entityName, ProfilingStaticGuid labelTypeGuid);
Matteo Martincigh830101c2019-10-22 11:07:45 +010030
Narumol Prangnawaratd034e082019-10-30 12:48:31 +000031 ProfilingStaticGuid DeclareLabel(const std::string& labelName);
32
33 void NameEntity(ProfilingGuid entityGuid, const std::string& name);
34
35 void TypeEntity(ProfilingGuid entityGuid, const std::string& type);
36
Narumol Prangnawarat94a30882019-10-30 12:48:31 +000037 ProfilingDynamicGuid CreateNamedTypedChildEntity(ProfilingGuid parentEntityGuid,
38 const std::string& entityName,
39 const std::string& entityType);
40
Matteo Martincigh5dc816e2019-11-04 14:05:28 +000041 ProfilingDynamicGuid RecordEvent(ProfilingGuid entityGuid, ProfilingStaticGuid eventClassGuid);
42
Matteo Martincigh830101c2019-10-22 11:07:45 +010043private:
44 ISendTimelinePacket& m_SendTimelinePacket;
45};
46
47} // namespace profiling
48
49} // namespace armnn