blob: c2e824e6f5b0a640ad775e409718b2d8be7c8e5e [file] [log] [blame]
Jim Flynn64063552020-02-14 10:18:08 +00001//
Jim Flynn6398a982020-05-27 17:05:21 +01002// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
Jim Flynn64063552020-02-14 10:18:08 +00003// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "CounterIdMap.hpp"
9#include "Holder.hpp"
Jim Flynn6398a982020-05-27 17:05:21 +010010#include "IProfilingServiceStatus.hpp"
Jim Flynn64063552020-02-14 10:18:08 +000011#include "ISendCounterPacket.hpp"
Nikhil Raj5b1bcc92021-06-08 12:31:50 +010012
13#include <common/include/ProfilingGuidGenerator.hpp>
Jim Flynn64063552020-02-14 10:18:08 +000014
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000015namespace arm
Jim Flynn64063552020-02-14 10:18:08 +000016{
17
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000018namespace pipe
Jim Flynn64063552020-02-14 10:18:08 +000019{
20
Jim Flynn6398a982020-05-27 17:05:21 +010021class IProfilingService : public IProfilingGuidGenerator, public IProfilingServiceStatus
Jim Flynn64063552020-02-14 10:18:08 +000022{
23public:
24 virtual ~IProfilingService() {};
25 virtual std::unique_ptr<ISendTimelinePacket> GetSendTimelinePacket() const = 0;
26 virtual const ICounterMappings& GetCounterMappings() const = 0;
27 virtual ISendCounterPacket& GetSendCounterPacket() = 0;
28 virtual bool IsProfilingEnabled() const = 0;
29 virtual CaptureData GetCaptureData() = 0;
30};
31
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000032} // namespace pipe
Jim Flynn64063552020-02-14 10:18:08 +000033
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000034} // namespace arm
Jim Flynn64063552020-02-14 10:18:08 +000035