• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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