blob: 02fe3b99d80b3de1edbae2c9ff3b362afe7fd7db [file] [log] [blame]
Narumol Prangnawarat7be47ef2019-09-27 18:00:11 +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 PacketBuffer : public IPacketBuffer
19{
20public:
21 PacketBuffer(unsigned int maxSize);
22
23 ~PacketBuffer() {}
24
Matteo Martincigh76c50d82019-11-21 12:10:42 +000025 const unsigned char* GetReadableData() const override;
Narumol Prangnawarat7be47ef2019-09-27 18:00:11 +010026
27 unsigned int GetSize() const override;
28
29 void MarkRead() override;
30
31 void Commit(unsigned int size) override;
32
33 void Release() override;
34
35 unsigned char* GetWritableData() override;
36
Jim Flynn0204f092020-06-22 20:41:43 +010037 void Destroy() override;
38
Narumol Prangnawarat7be47ef2019-09-27 18:00:11 +010039private:
40 unsigned int m_MaxSize;
41 unsigned int m_Size;
42 std::unique_ptr<unsigned char[]> m_Data;
43};
44
45} // namespace profiling
46
Matteo Martincigh76c50d82019-11-21 12:10:42 +000047} // namespace armnn