#include <observed_queue.h>

Public Member Functions | |
| void | clear () override |
| bool | dequeue (T &data, const std::chrono::microseconds &duration) override |
| bool | empty () const override |
| bool | enqueue (T &&value) override |
| bool | enqueue (T &value) override |
| ObservedBlockingQueue (const size_t &max_queue_size) | |
| size_t | size () const override |
| bool | tryEnqueue (T &value, const std::chrono::microseconds &duration) override |
| bool | tryEnqueue (T &&value, const std::chrono::microseconds &duration) override |
| ~ObservedBlockingQueue () override=default | |
Public Member Functions inherited from Aws::DataFlow::ObservedQueue< T, Allocator > | |
| void | setStatusMonitor (std::shared_ptr< StatusMonitor > status_monitor) override |
| ~ObservedQueue () override=default | |
Public Member Functions inherited from Aws::DataFlow::Source< T > | |
| virtual | ~Source ()=default |
Private Types | |
| using | OQ = ObservedQueue< T, Allocator > |
| using | WaitFunc = std::function< std::cv_status(std::unique_lock< std::mutex > &)> |
Private Member Functions | |
| bool | enqueueOnCondition (T &value, const WaitFunc &wait_func) |
Static Private Member Functions | |
| static std::cv_status | wait (std::condition_variable &condition_variable, std::unique_lock< std::mutex > &lock) |
Private Attributes | |
| std::condition_variable | condition_variable_ |
| std::mutex | dequeue_mutex_ |
| size_t | max_queue_size_ |
Additional Inherited Members | |
Protected Member Functions inherited from Aws::DataFlow::ObservedQueue< T, Allocator > | |
| void | notifyMonitor (const Status &status) |
Protected Attributes inherited from Aws::DataFlow::ObservedQueue< T, Allocator > | |
| std::deque< T, Allocator > | dequeue_ |
| std::shared_ptr< StatusMonitor > | status_monitor_ |
An observed queue is a dequeue wrapper which notifies an observer when a task is added.
| T | type of data |
| Allocator |
Definition at line 283 of file observed_queue.h.
|
private |
Definition at line 394 of file observed_queue.h.
|
private |
Definition at line 395 of file observed_queue.h.
|
inlineexplicit |
Create an observed blocking queue.
| max_queue_size | to configure. |
| std::invalid_argument | max_queue_size is 0 |
Definition at line 292 of file observed_queue.h.
|
overridedefault |
|
inlineoverridevirtual |
Clear the dequeue
Reimplemented from Aws::DataFlow::ObservedQueue< T, Allocator >.
Definition at line 388 of file observed_queue.h.
|
inlineoverridevirtual |
Dequeue data and notify the observer of data unavailable if the queue is empty.
Reimplemented from Aws::DataFlow::ObservedQueue< T, Allocator >.
Definition at line 360 of file observed_queue.h.
|
inlineoverridevirtual |
Reimplemented from Aws::DataFlow::ObservedQueue< T, Allocator >.
Definition at line 372 of file observed_queue.h.
|
inlineoverridevirtual |
Enqueue data and notify the observer of data available.
| value | to enqueue |
Reimplemented from Aws::DataFlow::ObservedQueue< T, Allocator >.
Definition at line 305 of file observed_queue.h.
|
inlineoverridevirtual |
Enqueue data and notify the observer of data available.
| value | to enqueue |
Reimplemented from Aws::DataFlow::ObservedQueue< T, Allocator >.
Definition at line 316 of file observed_queue.h.
|
inlineprivate |
Enqueue on the condition variable.
| value | to enqueue |
| wait_func | to wait for availability |
Definition at line 419 of file observed_queue.h.
|
inlineoverridevirtual |
Reimplemented from Aws::DataFlow::ObservedQueue< T, Allocator >.
Definition at line 380 of file observed_queue.h.
|
inlineoverridevirtual |
Blocking call.
| value | |
| duration |
Reimplemented from Aws::DataFlow::ObservedQueue< T, Allocator >.
Definition at line 333 of file observed_queue.h.
|
inlineoverridevirtual |
Reimplemented from Aws::DataFlow::ObservedQueue< T, Allocator >.
Definition at line 344 of file observed_queue.h.
|
inlinestaticprivate |
Static wait function which returns no_timeout on completion.
| condition_variable | |
| lock |
Definition at line 404 of file observed_queue.h.
|
private |
Definition at line 434 of file observed_queue.h.
|
mutableprivate |
Definition at line 435 of file observed_queue.h.
|
private |
Definition at line 433 of file observed_queue.h.