xref: /aosp_15_r20/external/armnn/profiling/common/include/ICounterRegistry.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020,2022 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #pragma once
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker #include <common/include/Optional.hpp>
9*89c4ff92SAndroid Build Coastguard Worker 
10*89c4ff92SAndroid Build Coastguard Worker namespace arm
11*89c4ff92SAndroid Build Coastguard Worker {
12*89c4ff92SAndroid Build Coastguard Worker 
13*89c4ff92SAndroid Build Coastguard Worker namespace pipe
14*89c4ff92SAndroid Build Coastguard Worker {
15*89c4ff92SAndroid Build Coastguard Worker 
16*89c4ff92SAndroid Build Coastguard Worker class Category;
17*89c4ff92SAndroid Build Coastguard Worker class Device;
18*89c4ff92SAndroid Build Coastguard Worker class CounterSet;
19*89c4ff92SAndroid Build Coastguard Worker class Counter;
20*89c4ff92SAndroid Build Coastguard Worker 
21*89c4ff92SAndroid Build Coastguard Worker class ICounterRegistry
22*89c4ff92SAndroid Build Coastguard Worker {
23*89c4ff92SAndroid Build Coastguard Worker public:
~ICounterRegistry()24*89c4ff92SAndroid Build Coastguard Worker     virtual ~ICounterRegistry() {}
25*89c4ff92SAndroid Build Coastguard Worker 
26*89c4ff92SAndroid Build Coastguard Worker     // Register profiling objects
27*89c4ff92SAndroid Build Coastguard Worker     virtual const Category*   RegisterCategory  (const std::string& categoryName) = 0;
28*89c4ff92SAndroid Build Coastguard Worker 
29*89c4ff92SAndroid Build Coastguard Worker     virtual const Device*     RegisterDevice    (const std::string& deviceName,
30*89c4ff92SAndroid Build Coastguard Worker                                                  uint16_t cores,
31*89c4ff92SAndroid Build Coastguard Worker                                                  const arm::pipe::Optional<std::string>& parentCategoryName) = 0;
32*89c4ff92SAndroid Build Coastguard Worker 
33*89c4ff92SAndroid Build Coastguard Worker     virtual const CounterSet* RegisterCounterSet(const std::string& counterSetName,
34*89c4ff92SAndroid Build Coastguard Worker                                                  uint16_t count,
35*89c4ff92SAndroid Build Coastguard Worker                                                  const arm::pipe::Optional<std::string>& parentCategoryName) = 0;
36*89c4ff92SAndroid Build Coastguard Worker 
37*89c4ff92SAndroid Build Coastguard Worker     virtual const Counter* RegisterCounter(const std::string& backendId,
38*89c4ff92SAndroid Build Coastguard Worker         const uint16_t uid,
39*89c4ff92SAndroid Build Coastguard Worker         const std::string& parentCategoryName,
40*89c4ff92SAndroid Build Coastguard Worker         uint16_t counterClass,
41*89c4ff92SAndroid Build Coastguard Worker         uint16_t interpolation,
42*89c4ff92SAndroid Build Coastguard Worker         double multiplier,
43*89c4ff92SAndroid Build Coastguard Worker         const std::string& name,
44*89c4ff92SAndroid Build Coastguard Worker         const std::string& description,
45*89c4ff92SAndroid Build Coastguard Worker         const arm::pipe::Optional<std::string>& units = arm::pipe::EmptyOptional(),
46*89c4ff92SAndroid Build Coastguard Worker         const arm::pipe::Optional<uint16_t>& numberOfCores = arm::pipe::EmptyOptional(),
47*89c4ff92SAndroid Build Coastguard Worker         const arm::pipe::Optional<uint16_t>& deviceUid = arm::pipe::EmptyOptional(),
48*89c4ff92SAndroid Build Coastguard Worker         const arm::pipe::Optional<uint16_t>& counterSetUid = arm::pipe::EmptyOptional()) = 0;
49*89c4ff92SAndroid Build Coastguard Worker 
50*89c4ff92SAndroid Build Coastguard Worker };
51*89c4ff92SAndroid Build Coastguard Worker 
52*89c4ff92SAndroid Build Coastguard Worker } // namespace pipe
53*89c4ff92SAndroid Build Coastguard Worker 
54*89c4ff92SAndroid Build Coastguard Worker } // namespace arm
55