YPC  0.2.0
memref.h
1 #pragma once
2 #include <cassert>
3 #include <memory>
4 
5 namespace ypc {
6 class memref {
7 public:
8  inline memref() : m_data(nullptr), m_len(0), m_cap(0){};
9  inline size_t &size() { return m_len; }
10  inline const size_t &size() const { return m_len; }
11  inline uint8_t *data() { return m_data; }
12  inline const uint8_t *data() const { return m_data; }
13  inline size_t capacity() const { return m_cap; }
14 
15  inline void alloc(size_t s) {
16  assert(!m_data);
17  m_data = new uint8_t[s];
18  m_cap = s;
19  m_len = 0;
20  }
21  inline void dealloc() {
22  if (m_data != nullptr) {
23  delete[] m_data;
24  m_data = nullptr;
25  m_len = 0;
26  }
27  }
28 
29 private:
30  uint8_t *m_data;
31  size_t m_len;
32  size_t m_cap;
33 };
34 } // namespace ypc
ypc::memref
Definition: memref.h:6