blob: 1da08e3c7a1ea8611f13e9ba962500b05d346b1e [file] [log] [blame]
Ferran Balaguer1b941722019-08-28 16:57:18 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "Packet.hpp"
9#include "CommandHandlerFunctor.hpp"
10#include "Holder.hpp"
11#include "SendCounterPacket.hpp"
12#include "IPeriodicCounterCapture.hpp"
Matteo Martincighe8485382019-10-10 14:08:21 +010013#include "ICounterValues.hpp"
Ferran Balaguer1b941722019-08-28 16:57:18 +010014
15namespace armnn
16{
17
18namespace profiling
19{
20
21class PeriodicCounterSelectionCommandHandler : public CommandHandlerFunctor
22{
23
24public:
Matteo Martincighe8485382019-10-10 14:08:21 +010025 PeriodicCounterSelectionCommandHandler(uint32_t packetId,
26 uint32_t version,
27 Holder& captureDataHolder,
28 IPeriodicCounterCapture& periodicCounterCapture,
29 const IReadCounterValues& readCounterValue,
30 ISendCounterPacket& sendCounterPacket,
31 const ProfilingStateMachine& profilingStateMachine)
32 : CommandHandlerFunctor(packetId, version)
33 , m_CaptureDataHolder(captureDataHolder)
34 , m_PeriodicCounterCapture(periodicCounterCapture)
35 , m_ReadCounterValues(readCounterValue)
36 , m_SendCounterPacket(sendCounterPacket)
37 , m_StateMachine(profilingStateMachine)
Ferran Balaguer1b941722019-08-28 16:57:18 +010038 {}
39
40 void operator()(const Packet& packet) override;
41
Ferran Balaguer1b941722019-08-28 16:57:18 +010042private:
43 Holder& m_CaptureDataHolder;
Matteo Martincighe8485382019-10-10 14:08:21 +010044 IPeriodicCounterCapture& m_PeriodicCounterCapture;
45 const IReadCounterValues& m_ReadCounterValues;
Ferran Balaguer1b941722019-08-28 16:57:18 +010046 ISendCounterPacket& m_SendCounterPacket;
Matteo Martincighe8485382019-10-10 14:08:21 +010047 const ProfilingStateMachine& m_StateMachine;
48
Ferran Balaguer1b941722019-08-28 16:57:18 +010049 void ParseData(const Packet& packet, CaptureData& captureData);
50};
51
52} // namespace profiling
53
54} // namespace armnn
55