1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020 Arm Ltd. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #pragma once 7*89c4ff92SAndroid Build Coastguard Worker 8*89c4ff92SAndroid Build Coastguard Worker #include <client/include/backends/IBackendProfiling.hpp> 9*89c4ff92SAndroid Build Coastguard Worker #include <client/include/IProfilingService.hpp> 10*89c4ff92SAndroid Build Coastguard Worker 11*89c4ff92SAndroid Build Coastguard Worker namespace arm 12*89c4ff92SAndroid Build Coastguard Worker { 13*89c4ff92SAndroid Build Coastguard Worker 14*89c4ff92SAndroid Build Coastguard Worker namespace pipe 15*89c4ff92SAndroid Build Coastguard Worker { 16*89c4ff92SAndroid Build Coastguard Worker 17*89c4ff92SAndroid Build Coastguard Worker class BackendProfiling : public IBackendProfiling 18*89c4ff92SAndroid Build Coastguard Worker { 19*89c4ff92SAndroid Build Coastguard Worker public: BackendProfiling(const ProfilingOptions & options,IProfilingService & profilingService,const std::string & backendId)20*89c4ff92SAndroid Build Coastguard Worker BackendProfiling(const ProfilingOptions& options, 21*89c4ff92SAndroid Build Coastguard Worker IProfilingService& profilingService, 22*89c4ff92SAndroid Build Coastguard Worker const std::string& backendId) 23*89c4ff92SAndroid Build Coastguard Worker : m_Options(options), 24*89c4ff92SAndroid Build Coastguard Worker m_ProfilingService(profilingService), 25*89c4ff92SAndroid Build Coastguard Worker m_BackendId(backendId) {} 26*89c4ff92SAndroid Build Coastguard Worker ~BackendProfiling()27*89c4ff92SAndroid Build Coastguard Worker ~BackendProfiling() 28*89c4ff92SAndroid Build Coastguard Worker {} 29*89c4ff92SAndroid Build Coastguard Worker 30*89c4ff92SAndroid Build Coastguard Worker std::unique_ptr<IRegisterBackendCounters> 31*89c4ff92SAndroid Build Coastguard Worker GetCounterRegistrationInterface(uint16_t currentMaxGlobalCounterID) override; 32*89c4ff92SAndroid Build Coastguard Worker 33*89c4ff92SAndroid Build Coastguard Worker std::unique_ptr<ISendTimelinePacket> GetSendTimelinePacket() override; 34*89c4ff92SAndroid Build Coastguard Worker 35*89c4ff92SAndroid Build Coastguard Worker IProfilingGuidGenerator& GetProfilingGuidGenerator() override; 36*89c4ff92SAndroid Build Coastguard Worker 37*89c4ff92SAndroid Build Coastguard Worker void ReportCounters(const std::vector<Timestamp>&) override; 38*89c4ff92SAndroid Build Coastguard Worker 39*89c4ff92SAndroid Build Coastguard Worker CounterStatus GetCounterStatus(uint16_t backendCounterId) override; 40*89c4ff92SAndroid Build Coastguard Worker 41*89c4ff92SAndroid Build Coastguard Worker std::vector<CounterStatus> GetActiveCounters() override; 42*89c4ff92SAndroid Build Coastguard Worker 43*89c4ff92SAndroid Build Coastguard Worker bool IsProfilingEnabled() const override; 44*89c4ff92SAndroid Build Coastguard Worker 45*89c4ff92SAndroid Build Coastguard Worker private: 46*89c4ff92SAndroid Build Coastguard Worker ProfilingOptions m_Options; 47*89c4ff92SAndroid Build Coastguard Worker IProfilingService& m_ProfilingService; 48*89c4ff92SAndroid Build Coastguard Worker std::string m_BackendId; 49*89c4ff92SAndroid Build Coastguard Worker }; 50*89c4ff92SAndroid Build Coastguard Worker 51*89c4ff92SAndroid Build Coastguard Worker } // namespace pipe 52*89c4ff92SAndroid Build Coastguard Worker 53*89c4ff92SAndroid Build Coastguard Worker } // namespace arm 54