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