QuantumLibrary
Bloomberg::quantum::DispatcherCore Class Reference

Class implementing the dispatching logic unto worker threads. Used for both coroutines and IO tasks. More...

#include <quantum_dispatcher_core.h>

Inheritance diagram for Bloomberg::quantum::DispatcherCore:
Bloomberg::quantum::ITerminate

Public Member Functions

 ~DispatcherCore ()
 
void terminate () final
 Terminates the object. More...
 
size_t size (IQueue::QueueType type, int queueId) const
 
bool empty (IQueue::QueueType type, int queueId) const
 
QueueStatistics stats (IQueue::QueueType type, int queueId)
 
void resetStats ()
 
void post (Task::Ptr task)
 
void postAsyncIo (IoTask::Ptr task)
 
int getNumCoroutineThreads () const
 
int getNumIoThreads () const
 
const std::pair< int, int > & getCoroQueueIdRangeForAny () const
 
- Public Member Functions inherited from Bloomberg::quantum::ITerminate
virtual ~ITerminate ()=default
 Virtual destructor. This function is explicitly left empty. More...
 

Friends

class Dispatcher
 

Detailed Description

Class implementing the dispatching logic unto worker threads. Used for both coroutines and IO tasks.

Note
For internal use only.

Constructor & Destructor Documentation

◆ ~DispatcherCore()

Bloomberg::quantum::DispatcherCore::~DispatcherCore ( )
inline

Member Function Documentation

◆ empty()

bool Bloomberg::quantum::DispatcherCore::empty ( IQueue::QueueType  type,
int  queueId 
) const
inline

◆ getCoroQueueIdRangeForAny()

const std::pair< int, int > & Bloomberg::quantum::DispatcherCore::getCoroQueueIdRangeForAny ( ) const
inline

◆ getNumCoroutineThreads()

int Bloomberg::quantum::DispatcherCore::getNumCoroutineThreads ( ) const
inline

◆ getNumIoThreads()

int Bloomberg::quantum::DispatcherCore::getNumIoThreads ( ) const
inline

◆ post()

void Bloomberg::quantum::DispatcherCore::post ( Task::Ptr  task)
inline

◆ postAsyncIo()

void Bloomberg::quantum::DispatcherCore::postAsyncIo ( IoTask::Ptr  task)
inline

◆ resetStats()

void Bloomberg::quantum::DispatcherCore::resetStats ( )
inline

◆ size()

size_t Bloomberg::quantum::DispatcherCore::size ( IQueue::QueueType  type,
int  queueId 
) const
inline

◆ stats()

QueueStatistics Bloomberg::quantum::DispatcherCore::stats ( IQueue::QueueType  type,
int  queueId 
)
inline

◆ terminate()

void Bloomberg::quantum::DispatcherCore::terminate ( )
inlinefinalvirtual

Terminates the object.

Note
This method should contain all logic necessary to properly cleanup this instance.

Implements Bloomberg::quantum::ITerminate.

Friends And Related Function Documentation

◆ Dispatcher

friend class Dispatcher
friend