blob: 9c06ff0a7d4b7defbed02fcd9d3f09f160c3b0d9 [file] [log] [blame]
FinnWilliamsArmf6e534a2019-09-16 15:45:42 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
7#include <cstdint>
8
9namespace armnn
10{
11
12namespace profiling
13{
14
15class IReadCounterValues
16{
17public:
FinnWilliamsArmf6e534a2019-09-16 15:45:42 +010018 virtual ~IReadCounterValues() {}
Matteo Martincigha84edee2019-10-02 12:50:57 +010019
20 virtual uint16_t GetCounterCount() const = 0;
21 virtual uint32_t GetCounterValue(uint16_t counterUid) const = 0;
FinnWilliamsArmf6e534a2019-09-16 15:45:42 +010022};
23
Matteo Martincigha84edee2019-10-02 12:50:57 +010024class IWriteCounterValues
FinnWilliamsArmf6e534a2019-09-16 15:45:42 +010025{
26public:
FinnWilliamsArmf6e534a2019-09-16 15:45:42 +010027 virtual ~IWriteCounterValues() {}
Matteo Martincigha84edee2019-10-02 12:50:57 +010028
29 virtual void SetCounterValue(uint16_t counterUid, uint32_t value) = 0;
30 virtual uint32_t AddCounterValue(uint16_t counterUid, uint32_t value) = 0;
31 virtual uint32_t SubtractCounterValue(uint16_t counterUid, uint32_t value) = 0;
32 virtual uint32_t IncrementCounterValue(uint16_t counterUid) = 0;
33 virtual uint32_t DecrementCounterValue(uint16_t counterUid) = 0;
34};
35
36class IReadWriteCounterValues : public IReadCounterValues, public IWriteCounterValues
37{
38public:
39 virtual ~IReadWriteCounterValues() {}
FinnWilliamsArmf6e534a2019-09-16 15:45:42 +010040};
41
42} // namespace profiling
43
44} // namespace armnn