blob: 9ceca3f643eed6caade355d12e5cee7ab3f65505 [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
8#include "CommandHandlerFunctor.hpp"
9#include "ISendCounterPacket.hpp"
Colm Donelan5ccb33d2020-01-24 16:27:02 +000010#include "armnn/profiling/ISendTimelinePacket.hpp"
Narumol Prangnawarat48033692019-09-20 12:04:55 +010011#include "Packet.hpp"
Matteo Martincigh8efc5002019-10-10 14:30:29 +010012#include "ProfilingStateMachine.hpp"
Narumol Prangnawarat48033692019-09-20 12:04:55 +010013
14namespace armnn
15{
16
17namespace profiling
18{
19
20class RequestCounterDirectoryCommandHandler : public CommandHandlerFunctor
21{
22
23public:
Jim Flynn397043f2019-10-17 17:37:10 +010024 RequestCounterDirectoryCommandHandler(uint32_t familyId,
25 uint32_t packetId,
Matteo Martincigh8efc5002019-10-10 14:30:29 +010026 uint32_t version,
Narumol Prangnawarat48033692019-09-20 12:04:55 +010027 ICounterDirectory& counterDirectory,
Matteo Martincigh8efc5002019-10-10 14:30:29 +010028 ISendCounterPacket& sendCounterPacket,
Matteo Martincigh9723d022019-11-13 10:56:41 +000029 ISendTimelinePacket& sendTimelinePacket,
Matteo Martincigh8efc5002019-10-10 14:30:29 +010030 ProfilingStateMachine& profilingStateMachine)
Jim Flynn397043f2019-10-17 17:37:10 +010031 : CommandHandlerFunctor(familyId, packetId, version)
Matteo Martincigh8efc5002019-10-10 14:30:29 +010032 , m_CounterDirectory(counterDirectory)
33 , m_SendCounterPacket(sendCounterPacket)
Matteo Martincigh9723d022019-11-13 10:56:41 +000034 , m_SendTimelinePacket(sendTimelinePacket)
Matteo Martincigh8efc5002019-10-10 14:30:29 +010035 , m_StateMachine(profilingStateMachine)
Narumol Prangnawarat48033692019-09-20 12:04:55 +010036 {}
37
38 void operator()(const Packet& packet) override;
39
Narumol Prangnawarat48033692019-09-20 12:04:55 +010040private:
Matteo Martincigh8efc5002019-10-10 14:30:29 +010041 const ICounterDirectory& m_CounterDirectory;
Narumol Prangnawarat48033692019-09-20 12:04:55 +010042 ISendCounterPacket& m_SendCounterPacket;
Matteo Martincigh9723d022019-11-13 10:56:41 +000043 ISendTimelinePacket& m_SendTimelinePacket;
Matteo Martincigh8efc5002019-10-10 14:30:29 +010044 const ProfilingStateMachine& m_StateMachine;
Narumol Prangnawarat48033692019-09-20 12:04:55 +010045};
46
47} // namespace profiling
48
49} // namespace armnn