TrinityCore
Loading...
Searching...
No Matches
Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink > Class Template Reference

#include <MPSCQueue.h>

Public Member Functions

 MPSCQueueIntrusive ()
 
 ~MPSCQueueIntrusive ()
 
void Enqueue (T *input) noexcept
 
bool Dequeue (T *&result) noexcept
 

Private Types

using Atomic = std::atomic< T * >
 

Private Member Functions

 MPSCQueueIntrusive (MPSCQueueIntrusive const &)=delete
 
MPSCQueueIntrusive & operator= (MPSCQueueIntrusive const &)=delete
 

Private Attributes

std::array< std::byte, sizeof(T)> _dummy
 
T * _dummyPtr
 
Atomic _head
 
Atomic _tail
 

Detailed Description

template<typename T, std::atomic< T * > T::* IntrusiveLink>
class Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >

Definition at line 94 of file MPSCQueue.h.

Member Typedef Documentation

◆ Atomic

template<typename T , std::atomic< T * > T::* IntrusiveLink>
using Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >::Atomic = std::atomic<T*>
private

Definition at line 96 of file MPSCQueue.h.

Constructor & Destructor Documentation

◆ MPSCQueueIntrusive() [1/2]

template<typename T , std::atomic< T * > T::* IntrusiveLink>
Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >::MPSCQueueIntrusive ( )
inline

◆ ~MPSCQueueIntrusive()

template<typename T , std::atomic< T * > T::* IntrusiveLink>
Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >::~MPSCQueueIntrusive ( )
inline

◆ MPSCQueueIntrusive() [2/2]

template<typename T , std::atomic< T * > T::* IntrusiveLink>
Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >::MPSCQueueIntrusive ( MPSCQueueIntrusive< T, IntrusiveLink > const &  )
privatedelete

Member Function Documentation

◆ Dequeue()

◆ Enqueue()

template<typename T , std::atomic< T * > T::* IntrusiveLink>
void Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >::Enqueue ( T *  input)
inlinenoexcept

◆ operator=()

template<typename T , std::atomic< T * > T::* IntrusiveLink>
MPSCQueueIntrusive & Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >::operator= ( MPSCQueueIntrusive< T, IntrusiveLink > const &  )
privatedelete

Member Data Documentation

◆ _dummy

template<typename T , std::atomic< T * > T::* IntrusiveLink>
std::array<std::byte, sizeof(T)> Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >::_dummy
private

Definition at line 161 of file MPSCQueue.h.

◆ _dummyPtr

◆ _head

template<typename T , std::atomic< T * > T::* IntrusiveLink>
Atomic Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >::_head
private

◆ _tail

template<typename T , std::atomic< T * > T::* IntrusiveLink>
Atomic Trinity::Impl::MPSCQueueIntrusive< T, IntrusiveLink >::_tail
private

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