ArmNN
 22.02
ConnectionAcknowledgedCommandHandler.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
10 #include "ISendCounterPacket.hpp"
13 
14 #include <common/include/CommandHandlerFunctor.hpp>
15 #include <common/include/Packet.hpp>
16 
17 namespace armnn
18 {
19 
20 namespace profiling
21 {
22 
23 class ConnectionAcknowledgedCommandHandler final : public arm::pipe::CommandHandlerFunctor
24 {
25 
26 typedef const std::unordered_map<BackendId, std::shared_ptr<armnn::profiling::IBackendProfilingContext>>&
27  BackendProfilingContexts;
28 
29 public:
31  uint32_t packetId,
32  uint32_t version,
33  ICounterDirectory& counterDirectory,
34  ISendCounterPacket& sendCounterPacket,
35  ISendTimelinePacket& sendTimelinePacket,
36  ProfilingStateMachine& profilingStateMachine,
37  IProfilingServiceStatus& profilingServiceStatus,
38  Optional<BackendProfilingContexts> backendProfilingContexts = EmptyOptional())
39  : CommandHandlerFunctor(familyId, packetId, version)
40  , m_CounterDirectory(counterDirectory)
41  , m_SendCounterPacket(sendCounterPacket)
42  , m_SendTimelinePacket(sendTimelinePacket)
43  , m_StateMachine(profilingStateMachine)
44  , m_ProfilingServiceStatus(profilingServiceStatus)
45  , m_BackendProfilingContext(backendProfilingContexts)
46  , m_TimelineEnabled(false)
47  {}
48 
49  void operator()(const arm::pipe::Packet& packet) override;
50 
51  void setTimelineEnabled(bool timelineEnabled)
52  {
53  m_TimelineEnabled = timelineEnabled;
54  }
55 
56 private:
57  const ICounterDirectory& m_CounterDirectory;
58  ISendCounterPacket& m_SendCounterPacket;
59  ISendTimelinePacket& m_SendTimelinePacket;
60  ProfilingStateMachine& m_StateMachine;
61  IProfilingServiceStatus& m_ProfilingServiceStatus;
62  Optional<BackendProfilingContexts> m_BackendProfilingContext;
63  std::atomic<bool> m_TimelineEnabled;
64 };
65 
66 } // namespace profiling
67 
68 } // namespace armnn
69 
Copyright (c) 2021 ARM Limited and Contributors.
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
Definition: Optional.hpp:32
ConnectionAcknowledgedCommandHandler(uint32_t familyId, uint32_t packetId, uint32_t version, ICounterDirectory &counterDirectory, ISendCounterPacket &sendCounterPacket, ISendTimelinePacket &sendTimelinePacket, ProfilingStateMachine &profilingStateMachine, IProfilingServiceStatus &profilingServiceStatus, Optional< BackendProfilingContexts > backendProfilingContexts=EmptyOptional())