xref: /aosp_15_r20/external/armnn/profiling/client/src/RequestCounterDirectoryCommandHandler.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
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