blob: 0acdf61b522b13a82f2da834c5b02b6aa4ff28be [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
12namespace armnn
13{
14
15namespace profiling
16{
17
18class IBufferManager
19{
20public:
Matteo Martincigh61d6f732019-10-03 11:21:18 +010021 virtual ~IBufferManager() {}
Narumol Prangnawarat404b2752019-09-24 17:23:16 +010022
23 virtual std::unique_ptr<IPacketBuffer> Reserve(unsigned int requestedSize, unsigned int& reservedSize) = 0;
24
25 virtual void Commit(std::unique_ptr<IPacketBuffer>& packetBuffer, unsigned int size) = 0;
26
27 virtual void Release(std::unique_ptr<IPacketBuffer>& packetBuffer) = 0;
28
29 virtual std::unique_ptr<IPacketBuffer> GetReadableBuffer() = 0;
30
31 virtual void MarkRead(std::unique_ptr<IPacketBuffer>& packetBuffer) = 0;
32};
33
34} // namespace profiling
35
36} // namespace armnn