blob: 5f713bf6d4a0c1356b58441ce8022c088d8a74bc [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"
9#include "ProfilingGuid.hpp"
10
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 Martincigh830101c2019-10-22 11:07:45 +010041private:
42 ISendTimelinePacket& m_SendTimelinePacket;
43};
44
45} // namespace profiling
46
47} // namespace armnn