blob: 2b497da58530c23270891f8db2fe95104e9d9804 [file] [log] [blame]
Narumol Prangnawarat404b2752019-09-24 17:23:16 +01001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "IPacketBuffer.hpp"
9
10#include <memory>
11
Sadik Armagan7bbdf9d2019-10-24 10:26:05 +010012#define MAX_METADATA_PACKET_LENGTH 4096
13
Narumol Prangnawarat404b2752019-09-24 17:23:16 +010014namespace armnn
15{
16
17namespace profiling
18{
19
20class IBufferManager
21{
22public:
Matteo Martincigh61d6f732019-10-03 11:21:18 +010023 virtual ~IBufferManager() {}
Narumol Prangnawarat404b2752019-09-24 17:23:16 +010024
Matteo Martincigh2ffcc412019-11-05 11:47:40 +000025 virtual IPacketBufferPtr Reserve(unsigned int requestedSize, unsigned int& reservedSize) = 0;
Narumol Prangnawarat404b2752019-09-24 17:23:16 +010026
Matteo Martincigh2ffcc412019-11-05 11:47:40 +000027 virtual void Commit(IPacketBufferPtr& packetBuffer, unsigned int size) = 0;
Narumol Prangnawarat404b2752019-09-24 17:23:16 +010028
Matteo Martincigh2ffcc412019-11-05 11:47:40 +000029 virtual void Release(IPacketBufferPtr& packetBuffer) = 0;
Narumol Prangnawarat404b2752019-09-24 17:23:16 +010030
Matteo Martincigh2ffcc412019-11-05 11:47:40 +000031 virtual IPacketBufferPtr GetReadableBuffer() = 0;
Narumol Prangnawarat404b2752019-09-24 17:23:16 +010032
Matteo Martincigh2ffcc412019-11-05 11:47:40 +000033 virtual void MarkRead(IPacketBufferPtr& packetBuffer) = 0;
Narumol Prangnawarat404b2752019-09-24 17:23:16 +010034};
35
36} // namespace profiling
37
38} // namespace armnn