blob: 18577b2851494d55a4db7cab94f0fa81d9d74312 [file] [log] [blame]
Narumol Prangnawarat48033692019-09-20 12:04:55 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Narumol Prangnawarat48033692019-09-20 12:04:55 +01008#include "ISendCounterPacket.hpp"
Colm Donelan5ccb33d2020-01-24 16:27:02 +00009#include "armnn/profiling/ISendTimelinePacket.hpp"
Matteo Martincigh8efc5002019-10-10 14:30:29 +010010#include "ProfilingStateMachine.hpp"
Narumol Prangnawarat48033692019-09-20 12:04:55 +010011
Jim Flynnbbfe6032020-07-20 16:57:44 +010012#include <common/include/CommandHandlerFunctor.hpp>
13#include <common/include/Packet.hpp>
14
Narumol Prangnawarat48033692019-09-20 12:04:55 +010015namespace armnn
16{
17
18namespace profiling
19{
20
Jim Flynnbbfe6032020-07-20 16:57:44 +010021class RequestCounterDirectoryCommandHandler : public arm::pipe::CommandHandlerFunctor
Narumol Prangnawarat48033692019-09-20 12:04:55 +010022{
23
24public:
Jim Flynn397043f2019-10-17 17:37:10 +010025 RequestCounterDirectoryCommandHandler(uint32_t familyId,
26 uint32_t packetId,
Matteo Martincigh8efc5002019-10-10 14:30:29 +010027 uint32_t version,
Narumol Prangnawarat48033692019-09-20 12:04:55 +010028 ICounterDirectory& counterDirectory,
Matteo Martincigh8efc5002019-10-10 14:30:29 +010029 ISendCounterPacket& sendCounterPacket,
Matteo Martincigh9723d022019-11-13 10:56:41 +000030 ISendTimelinePacket& sendTimelinePacket,
Matteo Martincigh8efc5002019-10-10 14:30:29 +010031 ProfilingStateMachine& profilingStateMachine)
Jim Flynn397043f2019-10-17 17:37:10 +010032 : CommandHandlerFunctor(familyId, packetId, version)
Matteo Martincigh8efc5002019-10-10 14:30:29 +010033 , m_CounterDirectory(counterDirectory)
34 , m_SendCounterPacket(sendCounterPacket)
Matteo Martincigh9723d022019-11-13 10:56:41 +000035 , m_SendTimelinePacket(sendTimelinePacket)
Matteo Martincigh8efc5002019-10-10 14:30:29 +010036 , m_StateMachine(profilingStateMachine)
Narumol Prangnawarat48033692019-09-20 12:04:55 +010037 {}
38
Jim Flynnbbfe6032020-07-20 16:57:44 +010039 void operator()(const arm::pipe::Packet& packet) override;
Narumol Prangnawarat48033692019-09-20 12:04:55 +010040
Narumol Prangnawarat48033692019-09-20 12:04:55 +010041private:
Matteo Martincigh8efc5002019-10-10 14:30:29 +010042 const ICounterDirectory& m_CounterDirectory;
Narumol Prangnawarat48033692019-09-20 12:04:55 +010043 ISendCounterPacket& m_SendCounterPacket;
Matteo Martincigh9723d022019-11-13 10:56:41 +000044 ISendTimelinePacket& m_SendTimelinePacket;
Matteo Martincigh8efc5002019-10-10 14:30:29 +010045 const ProfilingStateMachine& m_StateMachine;
Narumol Prangnawarat48033692019-09-20 12:04:55 +010046};
47
48} // namespace profiling
49
50} // namespace armnn