xref: /aosp_15_r20/external/armnn/profiling/client/src/DeactivateTimelineReportingCommandHandler.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include "ProfilingStateMachine.hpp"
9 #include "INotifyBackends.hpp"
10 #include "ProfilingStateMachine.hpp"
11 
12 #include <common/include/CommandHandlerFunctor.hpp>
13 #include <common/include/Packet.hpp>
14 
15 namespace arm
16 {
17 
18 namespace pipe
19 {
20 
21 class DeactivateTimelineReportingCommandHandler : public arm::pipe::CommandHandlerFunctor
22 {
23 
24 public:
DeactivateTimelineReportingCommandHandler(uint32_t familyId,uint32_t packetId,uint32_t version,std::atomic<bool> & timelineReporting,ProfilingStateMachine & profilingStateMachine,INotifyBackends & notifyBackends)25     DeactivateTimelineReportingCommandHandler(uint32_t familyId,
26                                               uint32_t packetId,
27                                               uint32_t version,
28                                               std::atomic<bool>& timelineReporting,
29                                               ProfilingStateMachine& profilingStateMachine,
30                                               INotifyBackends& notifyBackends)
31         : CommandHandlerFunctor(familyId, packetId, version)
32         , m_TimelineReporting(timelineReporting)
33         , m_StateMachine(profilingStateMachine)
34         , m_BackendNotifier(notifyBackends)
35     {}
36 
37     void operator()(const arm::pipe::Packet& packet) override;
38 
39 private:
40     std::atomic<bool>&     m_TimelineReporting;
41     ProfilingStateMachine& m_StateMachine;
42     INotifyBackends&       m_BackendNotifier;
43 };
44 
45 } // namespace pipe
46 
47 } // namespace arm