blob: 2879052340d98734b6397d09399560e563823a22 [file] [log] [blame]
Finn Williamse63a0262019-10-22 10:30:49 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Finn Williams0c8cb992020-05-07 10:38:15 +01008#include "TimelineCaptureCommandHandler.hpp"
Finn Williamse6a2ccd2020-02-27 16:21:41 +00009
Finn Williamse63a0262019-10-22 10:30:49 +010010#include <Packet.hpp>
11#include <PacketBuffer.hpp>
12#include <ProfilingUtils.hpp>
13
14namespace armnn
15{
16
Finn Williams8a2b4682020-02-26 10:25:26 +000017namespace timelinedecoder
Finn Williamse63a0262019-10-22 10:30:49 +010018{
19
20class TimelineDirectoryCaptureCommandHandler : public profiling::CommandHandlerFunctor
21{
22 // Utils
Matteo Martincigh34a407d2019-11-06 15:30:54 +000023 uint32_t uint8_t_size = sizeof(uint8_t);
Finn Williamse63a0262019-10-22 10:30:49 +010024 uint32_t uint32_t_size = sizeof(uint32_t);
25
26public:
27 TimelineDirectoryCaptureCommandHandler(uint32_t familyId,
28 uint32_t packetId,
29 uint32_t version,
Finn Williamse6a2ccd2020-02-27 16:21:41 +000030 TimelineCaptureCommandHandler& timelineCaptureCommandHandler,
Finn Williamse63a0262019-10-22 10:30:49 +010031 bool quietOperation = false)
Matteo Martincigh34a407d2019-11-06 15:30:54 +000032 : CommandHandlerFunctor(familyId, packetId, version)
Finn Williamse6a2ccd2020-02-27 16:21:41 +000033 , m_TimelineCaptureCommandHandler(timelineCaptureCommandHandler)
Matteo Martincigh34a407d2019-11-06 15:30:54 +000034 , m_QuietOperation(quietOperation)
Finn Williamse63a0262019-10-22 10:30:49 +010035 {}
36
37 void operator()(const armnn::profiling::Packet& packet) override;
38
Matteo Martincigh34a407d2019-11-06 15:30:54 +000039 profiling::SwTraceHeader m_SwTraceHeader;
Finn Williamse63a0262019-10-22 10:30:49 +010040 std::vector<profiling::SwTraceMessage> m_SwTraceMessages;
41
42private:
43 void ParseData(const armnn::profiling::Packet& packet);
44 void Print();
45
Finn Williamse6a2ccd2020-02-27 16:21:41 +000046 TimelineCaptureCommandHandler& m_TimelineCaptureCommandHandler;
Finn Williamse63a0262019-10-22 10:30:49 +010047 bool m_QuietOperation;
48};
49
50} //namespace gatordmock
51
Matteo Martincigh34a407d2019-11-06 15:30:54 +000052} //namespace armnn