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