ArmNN
 20.05
PacketBuffer.cpp
Go to the documentation of this file.
1 //
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 
10 namespace armnn
11 {
12 
13 namespace profiling
14 {
15 
16 PacketBuffer::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 
23 const unsigned char* PacketBuffer::GetReadableData() const
24 {
25  return m_Data.get();
26 }
27 
28 unsigned int PacketBuffer::GetSize() const
29 {
30  return m_Size;
31 }
32 
34 {
35  m_Size = 0;
36 }
37 
38 void 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 
49 {
50  m_Size = 0;
51 }
52 
54 {
55  return m_Data.get();
56 }
57 
58 } // namespace profiling
59 
60 } // namespace armnn
PacketBuffer(unsigned int maxSize)
unsigned int GetSize() const override
Copyright (c) 2020 ARM Limited.
const unsigned char * GetReadableData() const override
void Commit(unsigned int size) override
unsigned char * GetWritableData() override