blob: 9a25854b7febb1bc24c614f851c45de913252807 [file] [log] [blame]
Aron Virginas-Tar1a0f6912019-08-23 15:18:44 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Jim Flynn27761832022-03-20 21:52:17 +00008#include <client/include/ILocalPacketHandler.hpp>
Aron Virginas-Tar1a0f6912019-08-23 15:18:44 +01009
Jim Flynnbbfe6032020-07-20 16:57:44 +010010#include <common/include/Packet.hpp>
11
Aron Virginas-Tar1a0f6912019-08-23 15:18:44 +010012#include <cstdint>
13
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000014namespace arm
Aron Virginas-Tar1a0f6912019-08-23 15:18:44 +010015{
16
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000017namespace pipe
Aron Virginas-Tar1a0f6912019-08-23 15:18:44 +010018{
19
20class IProfilingConnection
21{
22public:
Matteo Martincigh2e7c8852019-09-09 09:23:53 +010023 virtual ~IProfilingConnection() {}
24
Matteo Martincigh54fb9572019-10-02 12:50:57 +010025 virtual bool IsOpen() const = 0;
Aron Virginas-Tar1a0f6912019-08-23 15:18:44 +010026
27 virtual void Close() = 0;
28
Matteo Martincigh24e8f922019-09-19 11:57:46 +010029 virtual bool WritePacket(const unsigned char* buffer, uint32_t length) = 0;
Aron Virginas-Tar1a0f6912019-08-23 15:18:44 +010030
Jim Flynnbbfe6032020-07-20 16:57:44 +010031 virtual arm::pipe::Packet ReadPacket(uint32_t timeout) = 0;
Aron Virginas-Tar1a0f6912019-08-23 15:18:44 +010032};
33
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000034} // namespace pipe
Aron Virginas-Tar1a0f6912019-08-23 15:18:44 +010035
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000036} // namespace arm