// // Copyright © 2020 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include namespace arm { namespace pipe { class ICounterRegistry { public: virtual ~ICounterRegistry() {} // Register profiling objects virtual const Category* RegisterCategory (const std::string& categoryName) = 0; virtual const Device* RegisterDevice (const std::string& deviceName, uint16_t cores, const armnn::Optional& parentCategoryName) = 0; virtual const CounterSet* RegisterCounterSet(const std::string& counterSetName, uint16_t count, const armnn::Optional& parentCategoryName) = 0; virtual const Counter* RegisterCounter(const armnn::BackendId& backendId, const uint16_t uid, const std::string& parentCategoryName, uint16_t counterClass, uint16_t interpolation, double multiplier, const std::string& name, const std::string& description, const armnn::Optional& units, const armnn::Optional& numberOfCores, const armnn::Optional& deviceUid, const armnn::Optional& counterSetUid) = 0; }; } // namespace pipe } // namespace arm