blob: 9e04f605a1655890106d772547aa921a9f80621a [file] [log] [blame]
Jim Flynn97897022020-02-02 12:52:59 +00001//
2// Copyright © 2020 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <armnn/Optional.hpp>
Jim Flynn97897022020-02-02 12:52:59 +00009
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000010namespace arm
Jim Flynn97897022020-02-02 12:52:59 +000011{
12
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000013namespace pipe
Jim Flynn97897022020-02-02 12:52:59 +000014{
15
16class ICounterRegistry
17{
18public:
19 virtual ~ICounterRegistry() {}
20
21 // Register profiling objects
Sadik Armagan4c998992020-02-25 12:44:44 +000022 virtual const Category* RegisterCategory (const std::string& categoryName) = 0;
Jim Flynn97897022020-02-02 12:52:59 +000023
24 virtual const Device* RegisterDevice (const std::string& deviceName,
25 uint16_t cores,
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000026 const armnn::Optional<std::string>& parentCategoryName) = 0;
Jim Flynn97897022020-02-02 12:52:59 +000027
28 virtual const CounterSet* RegisterCounterSet(const std::string& counterSetName,
29 uint16_t count,
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000030 const armnn::Optional<std::string>& parentCategoryName) = 0;
Jim Flynn97897022020-02-02 12:52:59 +000031
Cathal Corbett6f073722022-03-04 12:11:09 +000032 virtual const Counter* RegisterCounter(const std::string& backendId,
Jim Flynn97897022020-02-02 12:52:59 +000033 const uint16_t uid,
34 const std::string& parentCategoryName,
35 uint16_t counterClass,
36 uint16_t interpolation,
37 double multiplier,
38 const std::string& name,
39 const std::string& description,
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000040 const armnn::Optional<std::string>& units,
41 const armnn::Optional<uint16_t>& numberOfCores,
42 const armnn::Optional<uint16_t>& deviceUid,
43 const armnn::Optional<uint16_t>& counterSetUid) = 0;
Jim Flynn97897022020-02-02 12:52:59 +000044
45};
46
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000047} // namespace pipe
Jim Flynn97897022020-02-02 12:52:59 +000048
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000049} // namespace arm