blob: 88133d7674e2180ba6f2fa7e71c5164f7e00e910 [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
23const unsigned char* const PacketBuffer::GetReadableData() const
24{
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