JODA  0.13.1 (59b41972)
JSON On-Demand Analysis
Public Types | Public Member Functions | Data Fields
JODA_SHARED_QUEUE< payload_t, flag, queue_trait > Struct Template Reference

#include <Queue.h>

Collaboration diagram for JODA_SHARED_QUEUE< payload_t, flag, queue_trait >:
[legend]

Public Types

typedef moodycamel::ConcurrentQueue< payload_t, queue_trait > queue_t
 
typedef queue_t::producer_token_t ptok_t
 
typedef queue_t::consumer_token_t ctok_t
 

Public Member Functions

 JODA_SHARED_QUEUE (size_t minCapacity, size_t maxExplicitProducers, size_t maxImplicit=0)
 
 JODA_SHARED_QUEUE ()
 
 JODA_SHARED_QUEUE (JODA_SHARED_QUEUE &c)=delete
 
 JODA_SHARED_QUEUE (JODA_SHARED_QUEUE &&c)=delete
 
constexpr auto getFlag ()
 
bool isFinished ()
 
std::pair< size_t, size_t > getStatistics ()
 
void registerProducer ()
 
void unregisterProducer ()
 
void producerFinished ()
 
void send (typename queue_t::producer_token_t &ptok, payload_t &&e)
 
void send (payload_t &&e)
 
template<typename It >
void send (typename queue_t::producer_token_t &ptok, It e, size_t count)
 
template<typename It >
void send (It e, size_t count)
 
void retrieve (payload_t &e)
 
void retrieve (typename queue_t::consumer_token_t &ctok, payload_t &e)
 
template<typename It >
size_t retrieve (It e, size_t count)
 
template<typename It >
size_t retrieve (typename queue_t::consumer_token_t &ctok, It e, size_t count)
 

Data Fields

queue_t queue
 
std::atomic< unsigned long > inQueue {}
 
std::atomic< unsigned long > registered {}
 
std::atomic< unsigned long > finished {}
 
std::atomic< size_t > added {}
 
std::atomic< size_t > removed {}
 
std::atomic< bool > finishedWriting {}
 

Member Typedef Documentation

◆ ctok_t

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
typedef queue_t::consumer_token_t JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::ctok_t

◆ ptok_t

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
typedef queue_t::producer_token_t JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::ptok_t

◆ queue_t

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
typedef moodycamel::ConcurrentQueue<payload_t, queue_trait> JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::queue_t

Constructor & Destructor Documentation

◆ JODA_SHARED_QUEUE() [1/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::JODA_SHARED_QUEUE ( size_t  minCapacity,
size_t  maxExplicitProducers,
size_t  maxImplicit = 0 
)
inline

◆ JODA_SHARED_QUEUE() [2/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::JODA_SHARED_QUEUE ( )
inline

◆ JODA_SHARED_QUEUE() [3/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::JODA_SHARED_QUEUE ( JODA_SHARED_QUEUE< payload_t, flag, queue_trait > &  c)
delete

◆ JODA_SHARED_QUEUE() [4/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::JODA_SHARED_QUEUE ( JODA_SHARED_QUEUE< payload_t, flag, queue_trait > &&  c)
delete

Member Function Documentation

◆ getFlag()

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
constexpr auto JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::getFlag ( )
inlineconstexpr

◆ getStatistics()

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
std::pair<size_t, size_t> JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::getStatistics ( )
inline

◆ isFinished()

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
bool JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::isFinished ( )
inline
Here is the caller graph for this function:

◆ producerFinished()

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
void JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::producerFinished ( )
inline
Here is the caller graph for this function:

◆ registerProducer()

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
void JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::registerProducer ( )
inline
Here is the caller graph for this function:

◆ retrieve() [1/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
template<typename It >
size_t JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::retrieve ( It  e,
size_t  count 
)
inline
Here is the call graph for this function:

◆ retrieve() [2/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
void JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::retrieve ( payload_t &  e)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ retrieve() [3/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
template<typename It >
size_t JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::retrieve ( typename queue_t::consumer_token_t ctok,
It  e,
size_t  count 
)
inline
Here is the call graph for this function:

◆ retrieve() [4/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
void JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::retrieve ( typename queue_t::consumer_token_t ctok,
payload_t &  e 
)
inline
Here is the call graph for this function:

◆ send() [1/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
template<typename It >
void JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::send ( It  e,
size_t  count 
)
inline
Here is the call graph for this function:

◆ send() [2/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
void JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::send ( payload_t &&  e)
inline
Here is the call graph for this function:

◆ send() [3/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
template<typename It >
void JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::send ( typename queue_t::producer_token_t ptok,
It  e,
size_t  count 
)
inline
Here is the call graph for this function:

◆ send() [4/4]

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
void JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::send ( typename queue_t::producer_token_t ptok,
payload_t &&  e 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ unregisterProducer()

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
void JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::unregisterProducer ( )
inline
Here is the caller graph for this function:

Field Documentation

◆ added

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
std::atomic<size_t> JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::added {}

◆ finished

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
std::atomic<unsigned long> JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::finished {}

◆ finishedWriting

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
std::atomic<bool> JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::finishedWriting {}

◆ inQueue

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
std::atomic<unsigned long> JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::inQueue {}

◆ queue

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
queue_t JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::queue

◆ registered

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
std::atomic<unsigned long> JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::registered {}

◆ removed

template<class payload_t , JODA_FLAG_T flag = 0, class queue_trait = moodycamel::ConcurrentQueueDefaultTraits>
std::atomic<size_t> JODA_SHARED_QUEUE< payload_t, flag, queue_trait >::removed {}

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