blob: 2582fb2e0ab56bbb1686ce3d8dae1f744c27d341 [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
Matteo Martincigh8efc5002019-10-10 14:30:29 +01008#include "ProfilingStateMachine.hpp"
Narumol Prangnawarat48033692019-09-20 12:04:55 +01009
Jim Flynn27761832022-03-20 21:52:17 +000010#include <client/include/ISendCounterPacket.hpp>
11#include <client/include/ISendTimelinePacket.hpp>
12
Jim Flynnbbfe6032020-07-20 16:57:44 +010013#include <common/include/CommandHandlerFunctor.hpp>
14#include <common/include/Packet.hpp>
15
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000016namespace arm
Narumol Prangnawarat48033692019-09-20 12:04:55 +010017{
18
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000019namespace pipe
Narumol Prangnawarat48033692019-09-20 12:04:55 +010020{
21
Jim Flynnbbfe6032020-07-20 16:57:44 +010022class RequestCounterDirectoryCommandHandler : public arm::pipe::CommandHandlerFunctor
Narumol Prangnawarat48033692019-09-20 12:04:55 +010023{
24
25public:
Jim Flynn397043f2019-10-17 17:37:10 +010026 RequestCounterDirectoryCommandHandler(uint32_t familyId,
27 uint32_t packetId,
Matteo Martincigh8efc5002019-10-10 14:30:29 +010028 uint32_t version,
Narumol Prangnawarat48033692019-09-20 12:04:55 +010029 ICounterDirectory& counterDirectory,
Matteo Martincigh8efc5002019-10-10 14:30:29 +010030 ISendCounterPacket& sendCounterPacket,
Matteo Martincigh9723d022019-11-13 10:56:41 +000031 ISendTimelinePacket& sendTimelinePacket,
Matteo Martincigh8efc5002019-10-10 14:30:29 +010032 ProfilingStateMachine& profilingStateMachine)
Jim Flynn397043f2019-10-17 17:37:10 +010033 : CommandHandlerFunctor(familyId, packetId, version)
Matteo Martincigh8efc5002019-10-10 14:30:29 +010034 , m_CounterDirectory(counterDirectory)
35 , m_SendCounterPacket(sendCounterPacket)
Matteo Martincigh9723d022019-11-13 10:56:41 +000036 , m_SendTimelinePacket(sendTimelinePacket)
Matteo Martincigh8efc5002019-10-10 14:30:29 +010037 , m_StateMachine(profilingStateMachine)
Narumol Prangnawarat48033692019-09-20 12:04:55 +010038 {}
39
Jim Flynnbbfe6032020-07-20 16:57:44 +010040 void operator()(const arm::pipe::Packet& packet) override;
Narumol Prangnawarat48033692019-09-20 12:04:55 +010041
Narumol Prangnawarat48033692019-09-20 12:04:55 +010042private:
Matteo Martincigh8efc5002019-10-10 14:30:29 +010043 const ICounterDirectory& m_CounterDirectory;
Narumol Prangnawarat48033692019-09-20 12:04:55 +010044 ISendCounterPacket& m_SendCounterPacket;
Matteo Martincigh9723d022019-11-13 10:56:41 +000045 ISendTimelinePacket& m_SendTimelinePacket;
Matteo Martincigh8efc5002019-10-10 14:30:29 +010046 const ProfilingStateMachine& m_StateMachine;
Narumol Prangnawarat48033692019-09-20 12:04:55 +010047};
48
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000049} // namespace pipe
Narumol Prangnawarat48033692019-09-20 12:04:55 +010050
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000051} // namespace arm