QuantumLibrary
Bloomberg::quantum::IQueue Interface Referenceabstract

Interface to a task queue. For internal use only. More...

#include <quantum_iqueue.h>

Inheritance diagram for Bloomberg::quantum::IQueue:
Bloomberg::quantum::ITerminate Bloomberg::quantum::IoQueue Bloomberg::quantum::TaskQueue

Public Types

enum  QueueType : int { QueueType::Coro, QueueType::IO, QueueType::All }
 
enum  QueueId : int { QueueId::Any = -1, QueueId::Same = -2, QueueId::All = -3 }
 
using Ptr = std::shared_ptr< IQueue >
 

Public Member Functions

virtual void pinToCore (int coreId)=0
 
virtual void run ()=0
 
virtual void enqueue (ITask::Ptr task)=0
 
virtual bool tryEnqueue (ITask::Ptr task)=0
 
virtual ITask::Ptr dequeue (std::atomic_bool &hint)=0
 
virtual ITask::Ptr tryDequeue (std::atomic_bool &hint)=0
 
virtual size_t size () const =0
 
virtual bool empty () const =0
 
virtual IQueueStatisticsstats ()=0
 
virtual SpinLockgetLock ()=0
 
virtual void signalEmptyCondition (bool value)=0
 
virtual bool isIdle () const =0
 
- Public Member Functions inherited from Bloomberg::quantum::ITerminate
virtual ~ITerminate ()=default
 Virtual destructor. This function is explicitly left empty. More...
 
virtual void terminate ()=0
 Terminates the object. More...
 

Detailed Description

Interface to a task queue. For internal use only.

Member Typedef Documentation

◆ Ptr

using Bloomberg::quantum::IQueue::Ptr = std::shared_ptr<IQueue>

Member Enumeration Documentation

◆ QueueId

Enumerator
Any 
Same 
All 

◆ QueueType

Enumerator
Coro 
IO 
All 

Member Function Documentation

◆ dequeue()

virtual ITask::Ptr Bloomberg::quantum::IQueue::dequeue ( std::atomic_bool &  hint)
pure virtual

◆ empty()

virtual bool Bloomberg::quantum::IQueue::empty ( ) const
pure virtual

◆ enqueue()

virtual void Bloomberg::quantum::IQueue::enqueue ( ITask::Ptr  task)
pure virtual

◆ getLock()

virtual SpinLock& Bloomberg::quantum::IQueue::getLock ( )
pure virtual

◆ isIdle()

virtual bool Bloomberg::quantum::IQueue::isIdle ( ) const
pure virtual

◆ pinToCore()

virtual void Bloomberg::quantum::IQueue::pinToCore ( int  coreId)
pure virtual

◆ run()

virtual void Bloomberg::quantum::IQueue::run ( )
pure virtual

◆ signalEmptyCondition()

virtual void Bloomberg::quantum::IQueue::signalEmptyCondition ( bool  value)
pure virtual

◆ size()

virtual size_t Bloomberg::quantum::IQueue::size ( ) const
pure virtual

◆ stats()

virtual IQueueStatistics& Bloomberg::quantum::IQueue::stats ( )
pure virtual

◆ tryDequeue()

virtual ITask::Ptr Bloomberg::quantum::IQueue::tryDequeue ( std::atomic_bool &  hint)
pure virtual

◆ tryEnqueue()

virtual bool Bloomberg::quantum::IQueue::tryEnqueue ( ITask::Ptr  task)
pure virtual