#include <queue_monitor.h>
Classes | |
struct | QueuePriorityPair |
Public Member Functions | |
void | addSource (std::shared_ptr< IObservedQueue< T >>observed_queue, PriorityOptions priority_options) override |
bool | dequeue (T &data, const std::chrono::microseconds &duration) override |
QueueMonitor ()=default | |
~QueueMonitor () override=default | |
Public Member Functions inherited from Aws::DataFlow::QueueDemux< T > | |
virtual | ~QueueDemux ()=default |
Public Member Functions inherited from Aws::DataFlow::MultiStatusConditionMonitor | |
void | addStatusMonitor (std::shared_ptr< StatusMonitor > &status_monitor) |
MultiStatusConditionMonitor () | |
~MultiStatusConditionMonitor () override=default | |
Public Member Functions inherited from Aws::DataFlow::ThreadMonitor | |
void | notify () |
void | waitForWork () |
std::cv_status | waitForWork (const std::chrono::microseconds &duration) |
virtual | ~ThreadMonitor ()=default |
Public Member Functions inherited from Aws::DataFlow::Source< T > | |
virtual | ~Source ()=default |
Protected Member Functions | |
bool | hasWork () override |
Protected Member Functions inherited from Aws::DataFlow::MultiStatusConditionMonitor | |
bool | hasWork () override |
virtual void | setStatus (const Status &status, StatusMonitor *status_monitor) |
Private Attributes | |
std::vector< QueuePriorityPair > | priority_vector_ |
Additional Inherited Members | |
Protected Attributes inherited from Aws::DataFlow::MultiStatusConditionMonitor | |
std::atomic< uint64_t > | mask_ {} |
MaskFactory | mask_factory_ |
std::unordered_map< StatusMonitor *, uint64_t > | status_monitors_ |
friend | StatusMonitor |
Manage multiple queue's and their priorities. Exposes a dequeue API which enforces the desired priorities and returns the data with the highest priority.
T | type of data in the queues. |
Definition at line 42 of file queue_monitor.h.
|
default |
|
overridedefault |
|
inlineoverridevirtual |
Implements Aws::DataFlow::QueueDemux< T >.
Definition at line 51 of file queue_monitor.h.
|
inlineoverridevirtual |
Dequeue data off of a queue with the highest priority.
Implements Aws::DataFlow::Source< T >.
Definition at line 67 of file queue_monitor.h.
|
inlineoverrideprotectedvirtual |
Implements Aws::DataFlow::ThreadMonitor.
Definition at line 88 of file queue_monitor.h.
|
private |
Priority queue of managed shared queues.
Definition at line 121 of file queue_monitor.h.