#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.