// // Copyright © 2020 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include namespace armnn { namespace profiling { 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 Optional& parentCategoryName) = 0; virtual const CounterSet* RegisterCounterSet(const std::string& counterSetName, uint16_t count, const Optional& parentCategoryName) = 0; virtual const Counter* RegisterCounter(const 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 Optional& units, const Optional& numberOfCores, const Optional& deviceUid, const Optional& counterSetUid) = 0; }; } // namespace profiling } // namespace armnn