blob: eeec5d4b60909b183940f5679283e67b56f9eb27 [file] [log] [blame]
Ferran Balagueraf5c46b2019-08-30 15:49:15 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "CounterDirectory.hpp"
9
10namespace armnn
11{
12
13namespace profiling
14{
15
16class ISendCounterPacket
17{
18public:
19 /// Create and write a StreamMetaDataPacket in the buffer
20 virtual void SendStreamMetaDataPacket() = 0;
21
22 /// Create and write a CounterDirectoryPacket from the parameters to the buffer.
23 virtual void SendCounterDirectoryPacket(const Category& category, const std::vector<Counter>& counters) = 0;
24
25 /// Create and write a PeriodicCounterCapturePacket from the parameters to the buffer.
26 virtual void SendPeriodicCounterCapturePacket(uint64_t timestamp, const std::vector<uint32_t>& counterValues,
27 const std::vector<uint16_t>& counterUids) = 0;
28
29 /// Create and write a PeriodicCounterSelectionPacket from the parameters to the buffer.
30 virtual void SendPeriodicCounterSelectionPacket(uint32_t capturePeriod,
31 const std::vector<uint16_t>& selectedCounterIds) = 0;
32
33 /// Set a "ready to read" flag in the buffer to notify the reading thread to start reading it.
34 virtual void SetReadyToRead() = 0;
35
36};
37
38} // namespace profiling
39
40} // namespace armnn
41