GCC Code Coverage Report


Directory: ./
File: include/pinocchio/serialization/static-buffer.hpp
Date: 2024-08-27 18:20:05
Exec Total Coverage
Lines: 0 12 0.0%
Branches: 0 2 0.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 explicit StaticBuffer(const size_t n)
21 : m_size(n)
22 {
23 m_data.reserve(n);
24 }
25
26 /// \brief Returns the current size of the buffer
27 size_t size() const
28 {
29 return m_size;
30 }
31
32 /// \brief Returns the pointer on the data
33 char * data()
34 {
35 return m_data.data();
36 }
37
38 /// \brief Returns the pointer on the data (const version)
39 const char * data() const
40 {
41 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 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__
63