LibMultiSense/include/details/legacy/storage.hh
Go to the documentation of this file.
1 
37 #pragma once
38 
39 #include <memory>
40 #include <mutex>
41 #include <vector>
42 
43 namespace multisense{
44 namespace legacy{
45 
47 {
48  size_t num_small_buffers = 0;
49  size_t small_buffer_size = 0;
50  size_t num_large_buffers = 0;
51  size_t large_buffer_size = 0;
52 };
53 
59 {
60 public:
61 
62  BufferPool(const BufferPoolConfig &config);
63 
64  ~BufferPool() = default;
65 
69  BufferPool(const BufferPool&) = delete;
70  BufferPool& operator=(const BufferPool&) = delete;
71 
75  BufferPool(BufferPool&&) noexcept = default;
76  BufferPool& operator=(BufferPool&&) noexcept = default;
77 
81  std::shared_ptr<std::vector<uint8_t>> get_buffer(size_t target_size);
82 
87  {
88  return m_config;
89  }
90 
91 private:
92 
97 
101  std::vector<std::shared_ptr<std::vector<uint8_t>>> m_small_buffers;
102 
106  std::vector<std::shared_ptr<std::vector<uint8_t>>> m_large_buffers;
107 
108 };
109 
110 }
111 }
multisense::legacy::BufferPool::m_large_buffers
std::vector< std::shared_ptr< std::vector< uint8_t > > > m_large_buffers
The collection of large buffers.
Definition: LibMultiSense/include/details/legacy/storage.hh:106
multisense::legacy::BufferPool::operator=
BufferPool & operator=(const BufferPool &)=delete
multisense::legacy::BufferPoolConfig::small_buffer_size
size_t small_buffer_size
Definition: LibMultiSense/include/details/legacy/storage.hh:49
multisense::legacy::BufferPool::get_buffer
std::shared_ptr< std::vector< uint8_t > > get_buffer(size_t target_size)
Get a buffer which will contain at least target_size bytes of storage.
Definition: storage.cc:98
multisense::legacy::BufferPool::get_config
BufferPoolConfig get_config() const
Get the current active configuration.
Definition: LibMultiSense/include/details/legacy/storage.hh:86
multisense::legacy::BufferPool::m_small_buffers
std::vector< std::shared_ptr< std::vector< uint8_t > > > m_small_buffers
The collection of small buffers.
Definition: LibMultiSense/include/details/legacy/storage.hh:101
multisense::legacy::BufferPool::m_config
BufferPoolConfig m_config
The configured numbers and sizes of our internal buffers.
Definition: LibMultiSense/include/details/legacy/storage.hh:96
multisense::legacy::BufferPool::~BufferPool
~BufferPool()=default
multisense::legacy::BufferPoolConfig::large_buffer_size
size_t large_buffer_size
Definition: LibMultiSense/include/details/legacy/storage.hh:51
multisense::legacy::BufferPool::BufferPool
BufferPool(const BufferPoolConfig &config)
Definition: storage.cc:50
multisense::legacy::BufferPool
Object to handle the management and delivery of buffers to used to store incoming data without needin...
Definition: LibMultiSense/include/details/legacy/storage.hh:58
multisense::legacy::BufferPoolConfig
Definition: LibMultiSense/include/details/legacy/storage.hh:46
multisense::legacy::BufferPoolConfig::num_large_buffers
size_t num_large_buffers
Definition: LibMultiSense/include/details/legacy/storage.hh:50
multisense
Definition: factory.cc:39
multisense::legacy::BufferPoolConfig::num_small_buffers
size_t num_small_buffers
Definition: LibMultiSense/include/details/legacy/storage.hh:48


multisense_lib
Author(s):
autogenerated on Thu Apr 17 2025 02:49:09