BCNP 3.2.1
Batched Command Network Protocol
Loading...
Searching...
No Matches
packet_storage.h File Reference
#include "bcnp/static_vector.h"
#include <cstddef>
#include <type_traits>
#include <vector>
Include dependency graph for packet_storage.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  bcnp::detail::has_push_back< typename, typename >
 
struct  bcnp::detail::has_push_back< T, std::void_t< decltype(std::declval< T >().push_back(std::declval< typename T::value_type >()))> >
 
struct  bcnp::detail::has_size< typename, typename >
 
struct  bcnp::detail::has_size< T, std::void_t< decltype(std::declval< T >().size())> >
 
struct  bcnp::detail::has_clear< typename, typename >
 
struct  bcnp::detail::has_clear< T, std::void_t< decltype(std::declval< T >().clear())> >
 
struct  bcnp::detail::has_reserve< typename, typename >
 
struct  bcnp::detail::has_reserve< T, std::void_t< decltype(std::declval< T >().reserve(std::size_t{}))> >
 
struct  bcnp::detail::has_begin_end< typename, typename >
 
struct  bcnp::detail::has_begin_end< T, std::void_t< decltype(std::declval< T >().begin()), decltype(std::declval< T >().end())> >
 
struct  bcnp::detail::has_subscript< typename, typename >
 
struct  bcnp::detail::has_subscript< T, std::void_t< decltype(std::declval< T >()[std::size_t{}])> >
 
struct  bcnp::IsValidPacketStorage< Container >
 Concept-like check for valid packet storage containers. More...
 

Namespaces

namespace  bcnp
 
namespace  bcnp::detail
 Type traits to detect container capabilities for packet storage.
 

Typedefs

template<typename T >
using bcnp::DynamicPacketStorage = std::vector<T>
 Default packet storage using heap allocation.
 
template<typename T , std::size_t Capacity = 64>
using bcnp::StaticPacketStorage = StaticVector<T, Capacity>
 Real-time packet storage using stack allocation.
 
template<typename T >
using bcnp::DefaultRealtimeStorage = StaticPacketStorage<T, 64>
 Alias for the recommended real-time default (64 messages).
 

Functions

template<typename Container >
void bcnp::ReserveIfPossible (Container &container, std::size_t capacity)
 Helper to reserve capacity (no-op for static storage).
 

Variables

template<typename Container >
constexpr bool bcnp::IsValidPacketStorage_v = IsValidPacketStorage<Container>::value