blob: e2738f864337a904b928c8c77af8231d42a3d27d [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:
Jim Flynn397043f2019-10-17 17:37:10 +010025 PeriodicCounterSelectionCommandHandler(uint32_t familyId,
26 uint32_t packetId,
Matteo Martincighe8485382019-10-10 14:08:21 +010027 uint32_t version,
28 Holder& captureDataHolder,
29 IPeriodicCounterCapture& periodicCounterCapture,
30 const IReadCounterValues& readCounterValue,
31 ISendCounterPacket& sendCounterPacket,
32 const ProfilingStateMachine& profilingStateMachine)
Jim Flynn397043f2019-10-17 17:37:10 +010033 : CommandHandlerFunctor(familyId, packetId, version)
Matteo Martincighe8485382019-10-10 14:08:21 +010034 , m_CaptureDataHolder(captureDataHolder)
35 , m_PeriodicCounterCapture(periodicCounterCapture)
36 , m_ReadCounterValues(readCounterValue)
37 , m_SendCounterPacket(sendCounterPacket)
38 , m_StateMachine(profilingStateMachine)
Ferran Balaguer1b941722019-08-28 16:57:18 +010039 {}
40
41 void operator()(const Packet& packet) override;
42
Ferran Balaguer1b941722019-08-28 16:57:18 +010043private:
44 Holder& m_CaptureDataHolder;
Matteo Martincighe8485382019-10-10 14:08:21 +010045 IPeriodicCounterCapture& m_PeriodicCounterCapture;
46 const IReadCounterValues& m_ReadCounterValues;
Ferran Balaguer1b941722019-08-28 16:57:18 +010047 ISendCounterPacket& m_SendCounterPacket;
Matteo Martincighe8485382019-10-10 14:08:21 +010048 const ProfilingStateMachine& m_StateMachine;
49
Ferran Balaguer1b941722019-08-28 16:57:18 +010050 void ParseData(const Packet& packet, CaptureData& captureData);
51};
52
53} // namespace profiling
54
55} // namespace armnn
56