blob: 886561ae758a5548560dcc9d74c4fbbd66a68a0e [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#include "PacketBuffer.hpp"
7
8#include <armnn/Exceptions.hpp>
9
10namespace armnn
11{
12
13namespace profiling
14{
15
16PacketBuffer::PacketBuffer(unsigned int maxSize)
17 : m_MaxSize(maxSize)
18 , m_Size(0)
19{
20 m_Data = std::make_unique<unsigned char[]>(m_MaxSize);
21}
22
Matteo Martincigh76c50d82019-11-21 12:10:42 +000023const unsigned char* PacketBuffer::GetReadableData() const
Narumol Prangnawarat7be47ef2019-09-27 18:00:11 +010024{
25 return m_Data.get();
26}
27
28unsigned int PacketBuffer::GetSize() const
29{
30 return m_Size;
31}
32
33void PacketBuffer::MarkRead()
34{
35 m_Size = 0;
36}
37
38void PacketBuffer::Commit(unsigned int size)
39{
40 if (size > m_MaxSize)
41 {
42 throw armnn::RuntimeException("Cannot commit [" + std::to_string(size) +
43 "] bytes which is more than the maximum size of the buffer [" + std::to_string(m_MaxSize) + "]");
44 }
45 m_Size = size;
46}
47
48void PacketBuffer::Release()
49{
50 m_Size = 0;
51}
52
53unsigned char* PacketBuffer::GetWritableData()
54{
55 return m_Data.get();
56}
57
58} // namespace profiling
59
60} // namespace armnn