xref: /aosp_15_r20/external/armnn/profiling/client/include/backends/IBackendProfilingContext.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2020 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
7 #include "IBackendProfiling.hpp"
8 
9 #include <common/include/Optional.hpp>
10 
11 #include <vector>
12 
13 namespace arm
14 {
15 namespace pipe
16 {
17 
18 class IBackendProfilingContext
19 {
20 public:
~IBackendProfilingContext()21     virtual ~IBackendProfilingContext()
22     {}
23     virtual uint16_t RegisterCounters(uint16_t currentMaxGlobalCounterID) = 0;
24     virtual arm::pipe::Optional<std::string> ActivateCounters(
25         uint32_t capturePeriod, const std::vector<uint16_t>& counterIds) = 0;
26     virtual std::vector<arm::pipe::Timestamp> ReportCounterValues() = 0;
27     virtual bool EnableProfiling(bool flag) = 0;
28     virtual bool EnableTimelineReporting(bool flag) = 0;
29 };
30 
31 using IBackendProfilingContextUniquePtr = std::unique_ptr<IBackendProfilingContext>;
32 }    // namespace pipe
33 }    // namespace arm
34