From 3e9bc19ad523361e6b18057849e30c0c48183915 Mon Sep 17 00:00:00 2001 From: Jim Flynn Date: Wed, 23 Mar 2022 23:01:26 +0000 Subject: IVGCVSW-6706 Create the libpipeClient library Change-Id: I2368aade38ad3808fab55d8a86cd659d4e95d91e Signed-off-by: Jim Flynn --- profiling/client/src/RegisterBackendCounters.hpp | 67 ++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 profiling/client/src/RegisterBackendCounters.hpp (limited to 'profiling/client/src/RegisterBackendCounters.hpp') diff --git a/profiling/client/src/RegisterBackendCounters.hpp b/profiling/client/src/RegisterBackendCounters.hpp new file mode 100644 index 0000000000..f48f1ca8f0 --- /dev/null +++ b/profiling/client/src/RegisterBackendCounters.hpp @@ -0,0 +1,67 @@ +// +// Copyright © 2020 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include +#include + +#include + +#include + +namespace arm +{ + +namespace pipe +{ + +class RegisterBackendCounters : public IRegisterBackendCounters +{ +public: + + RegisterBackendCounters( + uint16_t currentMaxGlobalCounterID, const std::string& backendId, IProfilingService& profilingService) + : m_CurrentMaxGlobalCounterID(currentMaxGlobalCounterID), + m_BackendId(backendId), + m_ProfilingService(profilingService), + m_CounterDirectory(m_ProfilingService.GetCounterRegistry()) {} + + ~RegisterBackendCounters() = default; + + void RegisterCategory(const std::string& categoryName) override; + + uint16_t RegisterDevice(const std::string& deviceName, + uint16_t cores = 0, + const arm::pipe::Optional& parentCategoryName = + arm::pipe::EmptyOptional()) override; + + uint16_t RegisterCounterSet(const std::string& counterSetName, + uint16_t count = 0, + const arm::pipe::Optional& parentCategoryName + = arm::pipe::EmptyOptional()) override; + + uint16_t RegisterCounter(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 arm::pipe::Optional& units = arm::pipe::EmptyOptional(), + const arm::pipe::Optional& numberOfCores = arm::pipe::EmptyOptional(), + const arm::pipe::Optional& deviceUid = arm::pipe::EmptyOptional(), + const arm::pipe::Optional& counterSetUid = arm::pipe::EmptyOptional()) override; + +private: + uint16_t m_CurrentMaxGlobalCounterID; + const std::string& m_BackendId; + IProfilingService& m_ProfilingService; + ICounterRegistry& m_CounterDirectory; +}; + +} // namespace pipe + +} // namespace arm -- cgit v1.2.1