GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: include/pinocchio/serialization/static-buffer.hpp Lines: 14 14 100.0 %
Date: 2024-04-26 13:14:21 Branches: 1 2 50.0 %

Line Branch Exec Source
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
15
    /// \brief Static buffer with pre-allocated memory.
16
    struct StaticBuffer
17
    {
18
19
      /// \brief Defautl constructor from a given size
20
136
      explicit StaticBuffer(const size_t n)
21
136
      : m_size(n)
22
      {
23
136
        m_data.reserve(n);
24
136
      }
25
26
      /// \brief Returns the current size of the buffer
27
272
      size_t size() const
28
      {
29
272
        return m_size;
30
      }
31
32
      /// \brief Returns the pointer on the data
33
272
      char * data()
34
      {
35
272
        return m_data.data();
36
      }
37
38
      /// \brief Returns the pointer on the data (const version)
39
2
      const char * data() const
40
      {
41
2
        return m_data.data();
42
      }
43
44
      /// \brief Increase the capacity of the vector to a value that's greater or equal to new_size.
45
      ///
46
      /// \param[in] new_size New capacity of the buffer.
47
      ///
48
1
      void resize(const size_t new_size)
49
      {
50
1
        m_size = new_size;
51
1
        m_data.reserve(new_size);
52
1
      }
53
54
    protected:
55
56
      size_t m_size;
57
      std::vector<char> m_data;
58
    };
59
60
  }
61
}
62
63
#endif // ifndef __pinocchio_serialization_static_buffer_hpp__