1 // 2 // Copyright © 2019 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include "ProfilingStateMachine.hpp" 9 10 #include <client/include/ISendCounterPacket.hpp> 11 #include <client/include/ISendTimelinePacket.hpp> 12 13 #include <common/include/CommandHandlerFunctor.hpp> 14 #include <common/include/Packet.hpp> 15 16 namespace arm 17 { 18 19 namespace pipe 20 { 21 22 class RequestCounterDirectoryCommandHandler : public arm::pipe::CommandHandlerFunctor 23 { 24 25 public: RequestCounterDirectoryCommandHandler(uint32_t familyId,uint32_t packetId,uint32_t version,ICounterDirectory & counterDirectory,ISendCounterPacket & sendCounterPacket,ISendTimelinePacket & sendTimelinePacket,ProfilingStateMachine & profilingStateMachine)26 RequestCounterDirectoryCommandHandler(uint32_t familyId, 27 uint32_t packetId, 28 uint32_t version, 29 ICounterDirectory& counterDirectory, 30 ISendCounterPacket& sendCounterPacket, 31 ISendTimelinePacket& sendTimelinePacket, 32 ProfilingStateMachine& profilingStateMachine) 33 : CommandHandlerFunctor(familyId, packetId, version) 34 , m_CounterDirectory(counterDirectory) 35 , m_SendCounterPacket(sendCounterPacket) 36 , m_SendTimelinePacket(sendTimelinePacket) 37 , m_StateMachine(profilingStateMachine) 38 {} 39 40 void operator()(const arm::pipe::Packet& packet) override; 41 42 private: 43 const ICounterDirectory& m_CounterDirectory; 44 ISendCounterPacket& m_SendCounterPacket; 45 ISendTimelinePacket& m_SendTimelinePacket; 46 const ProfilingStateMachine& m_StateMachine; 47 }; 48 49 } // namespace pipe 50 51 } // namespace arm 52