diff options
author | Jim Flynn <jim.flynn@arm.com> | 2022-03-23 23:01:26 +0000 |
---|---|---|
committer | Jim Flynn <jim.flynn@arm.com> | 2022-03-23 23:43:35 +0000 |
commit | 3e9bc19ad523361e6b18057849e30c0c48183915 (patch) | |
tree | b7b012a9734ce39d054fc5d92302780fd838e5c8 /profiling/client/src/ConnectionAcknowledgedCommandHandler.hpp | |
parent | 277618302d0f131eac0b6ac2015dd3eb09aa6ff9 (diff) | |
download | armnn-3e9bc19ad523361e6b18057849e30c0c48183915.tar.gz |
IVGCVSW-6706 Create the libpipeClient library
Change-Id: I2368aade38ad3808fab55d8a86cd659d4e95d91e
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
Diffstat (limited to 'profiling/client/src/ConnectionAcknowledgedCommandHandler.hpp')
-rw-r--r-- | profiling/client/src/ConnectionAcknowledgedCommandHandler.hpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/profiling/client/src/ConnectionAcknowledgedCommandHandler.hpp b/profiling/client/src/ConnectionAcknowledgedCommandHandler.hpp new file mode 100644 index 0000000000..e409ee62f2 --- /dev/null +++ b/profiling/client/src/ConnectionAcknowledgedCommandHandler.hpp @@ -0,0 +1,71 @@ +// +// Copyright © 2019 Arm Ltd and Contributors. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include "ProfilingStateMachine.hpp" + +#include <client/include/IProfilingServiceStatus.hpp> +#include <client/include/ISendCounterPacket.hpp> +#include <client/include/ISendTimelinePacket.hpp> + +#include <client/include/backends/IBackendProfilingContext.hpp> + +#include <common/include/CommandHandlerFunctor.hpp> +#include <common/include/Packet.hpp> + +namespace arm +{ + +namespace pipe +{ + +class ConnectionAcknowledgedCommandHandler final : public arm::pipe::CommandHandlerFunctor +{ + +typedef const std::unordered_map<std::string, std::shared_ptr<IBackendProfilingContext>>& + BackendProfilingContexts; + +public: + ConnectionAcknowledgedCommandHandler(uint32_t familyId, + uint32_t packetId, + uint32_t version, + ICounterDirectory& counterDirectory, + ISendCounterPacket& sendCounterPacket, + ISendTimelinePacket& sendTimelinePacket, + ProfilingStateMachine& profilingStateMachine, + IProfilingServiceStatus& profilingServiceStatus, + arm::pipe::Optional<BackendProfilingContexts> backendProfilingContexts = + arm::pipe::EmptyOptional()) + : CommandHandlerFunctor(familyId, packetId, version) + , m_CounterDirectory(counterDirectory) + , m_SendCounterPacket(sendCounterPacket) + , m_SendTimelinePacket(sendTimelinePacket) + , m_StateMachine(profilingStateMachine) + , m_ProfilingServiceStatus(profilingServiceStatus) + , m_BackendProfilingContext(backendProfilingContexts) + , m_TimelineEnabled(false) + {} + + void operator()(const arm::pipe::Packet& packet) override; + + void setTimelineEnabled(bool timelineEnabled) + { + m_TimelineEnabled = timelineEnabled; + } + +private: + const ICounterDirectory& m_CounterDirectory; + ISendCounterPacket& m_SendCounterPacket; + ISendTimelinePacket& m_SendTimelinePacket; + ProfilingStateMachine& m_StateMachine; + IProfilingServiceStatus& m_ProfilingServiceStatus; + arm::pipe::Optional<BackendProfilingContexts> m_BackendProfilingContext; + std::atomic<bool> m_TimelineEnabled; +}; + +} // namespace pipe + +} // namespace arm |