xref: /aosp_15_r20/external/armnn/profiling/client/src/backends/BackendProfiling.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
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