Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
spdlog::details::mpmc_bounded_queue< T > Class Template Reference

#include <mpmc_bounded_q.h>

Classes

struct  cell_t
 

Public Types

using item_type = T
 

Public Member Functions

size_t approx_size ()
 
bool dequeue (T &data)
 
bool enqueue (T &&data)
 
 mpmc_bounded_queue (size_t buffer_size)
 
 ~mpmc_bounded_queue ()
 

Private Types

typedef char cacheline_pad_t[cacheline_size]
 

Private Member Functions

 mpmc_bounded_queue (mpmc_bounded_queue const &)=delete
 
void operator= (mpmc_bounded_queue const &)=delete
 

Private Attributes

cell_t *const buffer_
 
size_t const buffer_mask_
 
std::atomic< size_t > dequeue_pos_
 
std::atomic< size_t > enqueue_pos_
 
size_t const max_size_
 
cacheline_pad_t pad0_
 
cacheline_pad_t pad1_
 
cacheline_pad_t pad2_
 
cacheline_pad_t pad3_
 

Static Private Attributes

static size_t const cacheline_size = 64
 

Detailed Description

template<typename T>
class spdlog::details::mpmc_bounded_queue< T >

Definition at line 57 of file mpmc_bounded_q.h.

Member Typedef Documentation

template<typename T>
typedef char spdlog::details::mpmc_bounded_queue< T >::cacheline_pad_t[cacheline_size]
private

Definition at line 156 of file mpmc_bounded_q.h.

template<typename T>
using spdlog::details::mpmc_bounded_queue< T >::item_type = T

Definition at line 61 of file mpmc_bounded_q.h.

Constructor & Destructor Documentation

template<typename T>
spdlog::details::mpmc_bounded_queue< T >::mpmc_bounded_queue ( size_t  buffer_size)
inline

Definition at line 62 of file mpmc_bounded_q.h.

template<typename T>
spdlog::details::mpmc_bounded_queue< T >::~mpmc_bounded_queue ( )
inline

Definition at line 77 of file mpmc_bounded_q.h.

template<typename T>
spdlog::details::mpmc_bounded_queue< T >::mpmc_bounded_queue ( mpmc_bounded_queue< T > const &  )
privatedelete

Member Function Documentation

template<typename T>
size_t spdlog::details::mpmc_bounded_queue< T >::approx_size ( )
inline

Definition at line 136 of file mpmc_bounded_q.h.

template<typename T>
bool spdlog::details::mpmc_bounded_queue< T >::dequeue ( T &  data)
inline

Definition at line 111 of file mpmc_bounded_q.h.

template<typename T>
bool spdlog::details::mpmc_bounded_queue< T >::enqueue ( T &&  data)
inline

Definition at line 83 of file mpmc_bounded_q.h.

template<typename T>
void spdlog::details::mpmc_bounded_queue< T >::operator= ( mpmc_bounded_queue< T > const &  )
privatedelete

Member Data Documentation

template<typename T>
cell_t* const spdlog::details::mpmc_bounded_queue< T >::buffer_
private

Definition at line 159 of file mpmc_bounded_q.h.

template<typename T>
size_t const spdlog::details::mpmc_bounded_queue< T >::buffer_mask_
private

Definition at line 160 of file mpmc_bounded_q.h.

template<typename T>
size_t const spdlog::details::mpmc_bounded_queue< T >::cacheline_size = 64
staticprivate

Definition at line 155 of file mpmc_bounded_q.h.

template<typename T>
std::atomic<size_t> spdlog::details::mpmc_bounded_queue< T >::dequeue_pos_
private

Definition at line 164 of file mpmc_bounded_q.h.

template<typename T>
std::atomic<size_t> spdlog::details::mpmc_bounded_queue< T >::enqueue_pos_
private

Definition at line 162 of file mpmc_bounded_q.h.

template<typename T>
size_t const spdlog::details::mpmc_bounded_queue< T >::max_size_
private

Definition at line 153 of file mpmc_bounded_q.h.

template<typename T>
cacheline_pad_t spdlog::details::mpmc_bounded_queue< T >::pad0_
private

Definition at line 158 of file mpmc_bounded_q.h.

template<typename T>
cacheline_pad_t spdlog::details::mpmc_bounded_queue< T >::pad1_
private

Definition at line 161 of file mpmc_bounded_q.h.

template<typename T>
cacheline_pad_t spdlog::details::mpmc_bounded_queue< T >::pad2_
private

Definition at line 163 of file mpmc_bounded_q.h.

template<typename T>
cacheline_pad_t spdlog::details::mpmc_bounded_queue< T >::pad3_
private

Definition at line 165 of file mpmc_bounded_q.h.


The documentation for this class was generated from the following file:


ros_opcua_impl_freeopcua
Author(s): Denis Štogl
autogenerated on Tue Jan 19 2021 03:12:10