blob: c97474759aca42c32e30bc50895e816931f46c94 [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"
Sadik Armagan3896b472020-02-10 12:24:15 +000011#include "ProfilingStateMachine.hpp"
Ferran Balaguer1b941722019-08-28 16:57:18 +010012#include "SendCounterPacket.hpp"
13#include "IPeriodicCounterCapture.hpp"
Matteo Martincighe8485382019-10-10 14:08:21 +010014#include "ICounterValues.hpp"
Ferran Balaguer1b941722019-08-28 16:57:18 +010015
16namespace armnn
17{
18
19namespace profiling
20{
21
22class PeriodicCounterSelectionCommandHandler : public CommandHandlerFunctor
23{
24
25public:
Jim Flynn397043f2019-10-17 17:37:10 +010026 PeriodicCounterSelectionCommandHandler(uint32_t familyId,
27 uint32_t packetId,
Matteo Martincighe8485382019-10-10 14:08:21 +010028 uint32_t version,
29 Holder& captureDataHolder,
30 IPeriodicCounterCapture& periodicCounterCapture,
31 const IReadCounterValues& readCounterValue,
32 ISendCounterPacket& sendCounterPacket,
33 const ProfilingStateMachine& profilingStateMachine)
Jim Flynn397043f2019-10-17 17:37:10 +010034 : CommandHandlerFunctor(familyId, packetId, version)
Matteo Martincighe8485382019-10-10 14:08:21 +010035 , m_CaptureDataHolder(captureDataHolder)
36 , m_PeriodicCounterCapture(periodicCounterCapture)
37 , m_ReadCounterValues(readCounterValue)
38 , m_SendCounterPacket(sendCounterPacket)
39 , m_StateMachine(profilingStateMachine)
Ferran Balaguer1b941722019-08-28 16:57:18 +010040 {}
41
42 void operator()(const Packet& packet) override;
43
Ferran Balaguer1b941722019-08-28 16:57:18 +010044private:
45 Holder& m_CaptureDataHolder;
Matteo Martincighe8485382019-10-10 14:08:21 +010046 IPeriodicCounterCapture& m_PeriodicCounterCapture;
47 const IReadCounterValues& m_ReadCounterValues;
Ferran Balaguer1b941722019-08-28 16:57:18 +010048 ISendCounterPacket& m_SendCounterPacket;
Matteo Martincighe8485382019-10-10 14:08:21 +010049 const ProfilingStateMachine& m_StateMachine;
50
Ferran Balaguer1b941722019-08-28 16:57:18 +010051 void ParseData(const Packet& packet, CaptureData& captureData);
52};
53
54} // namespace profiling
55
56} // namespace armnn
57