// // Copyright © 2020 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include namespace arm { namespace pipe { class BackendProfiling : public IBackendProfiling { public: BackendProfiling(const ProfilingOptions& options, IProfilingService& profilingService, const std::string& backendId) : m_Options(options), m_ProfilingService(profilingService), m_BackendId(backendId) {} ~BackendProfiling() {} std::unique_ptr GetCounterRegistrationInterface(uint16_t currentMaxGlobalCounterID) override; std::unique_ptr GetSendTimelinePacket() override; IProfilingGuidGenerator& GetProfilingGuidGenerator() override; void ReportCounters(const std::vector&) override; CounterStatus GetCounterStatus(uint16_t backendCounterId) override; std::vector GetActiveCounters() override; bool IsProfilingEnabled() const override; private: ProfilingOptions m_Options; IProfilingService& m_ProfilingService; std::string m_BackendId; }; } // namespace pipe } // namespace arm