/workspaces/astro/sol3-sdk/cpp/sol3/net/write_queue.h Source File

Space-ng SDK: /workspaces/astro/sol3-sdk/cpp/sol3/net/write_queue.h Source File
Space-ng SDK
write_queue.h
Go to the documentation of this file.
1 // Copyright (c) Space-ng, inc. All rights reserved.
2 
3 #pragma once
4 
5 #include <cstddef>
6 #include <memory>
7 #include <vector>
8 
9 namespace sol3::net {
10 
18 class WriteQueue {
19  public:
20  using TElement = std::shared_ptr<std::vector<uint8_t> const>;
21 
22  bool empty() const { return count_ == 0; }
23  size_t size() const { return count_; }
24 
25  TElement const& front() const;
26  void popFront();
27  void pushBack(TElement v);
28 
29  private:
30  void grow(size_t new_capacity);
31 
32  std::vector<TElement> store_;
33  size_t head_{0};
34  size_t count_{0};
35 };
36 
37 } // namespace sol3::net
Definition: write_queue.h:18
void pushBack(TElement v)
std::shared_ptr< std::vector< uint8_t > const > TElement
Definition: write_queue.h:20
TElement const & front() const
size_t size() const
Definition: write_queue.h:23
bool empty() const
Definition: write_queue.h:22
Definition: buffer_pool.h:12