ArmNN
 21.02
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 
59 {
60  m_Data.reset(nullptr);
61  m_Size = 0;
62  m_MaxSize = 0;
63 }
64 
65 } // namespace profiling
66 
67 } // namespace armnn
PacketBuffer(unsigned int maxSize)
void Destroy() override
release the memory held and reset internal point to null.
unsigned int GetSize() const override
Copyright (c) 2021 ARM Limited and Contributors.
const unsigned char * GetReadableData() const override
void Commit(unsigned int size) override
unsigned char * GetWritableData() override