pinocchio  3.3.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
static-buffer.hpp
1 //
2 // Copyright (c) 2021 INRIA
3 //
4 
5 #ifndef __pinocchio_serialization_static_buffer_hpp__
6 #define __pinocchio_serialization_static_buffer_hpp__
7 
8 #include <vector>
9 
10 namespace pinocchio
11 {
12  namespace serialization
13  {
14 
16  struct StaticBuffer
17  {
18 
20  explicit StaticBuffer(const size_t n)
21  : m_size(n)
22  {
23  m_data.reserve(n);
24  }
25 
27  size_t size() const
28  {
29  return m_size;
30  }
31 
33  char * data()
34  {
35  return m_data.data();
36  }
37 
39  const char * data() const
40  {
41  return m_data.data();
42  }
43 
48  void resize(const size_t new_size)
49  {
50  m_size = new_size;
51  m_data.reserve(new_size);
52  }
53 
54  protected:
55  size_t m_size;
56  std::vector<char> m_data;
57  };
58 
59  } // namespace serialization
60 } // namespace pinocchio
61 
62 #endif // ifndef __pinocchio_serialization_static_buffer_hpp__
Main pinocchio namespace.
Definition: treeview.dox:11
Static buffer with pre-allocated memory.
size_t size() const
Returns the current size of the buffer.
const char * data() const
Returns the pointer on the data (const version)
char * data()
Returns the pointer on the data.
void resize(const size_t new_size)
Increase the capacity of the vector to a value that's greater or equal to new_size.