ArmNN
 21.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  {}
47 
48  void operator()(const arm::pipe::Packet& packet) override;
49 
50  void setTimelineEnabled(bool timelineEnabled)
51  {
52  m_TimelineEnabled = timelineEnabled;
53  }
54 
55 private:
56  const ICounterDirectory& m_CounterDirectory;
57  ISendCounterPacket& m_SendCounterPacket;
58  ISendTimelinePacket& m_SendTimelinePacket;
59  ProfilingStateMachine& m_StateMachine;
60  IProfilingServiceStatus& m_ProfilingServiceStatus;
61  Optional<BackendProfilingContexts> m_BackendProfilingContext;
62  bool m_TimelineEnabled = false;
63 };
64 
65 } // namespace profiling
66 
67 } // namespace armnn
68 
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())