Classes | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
Aws::DataFlow::QueueMonitor< T > Class Template Reference

#include <queue_monitor.h>

Inheritance diagram for Aws::DataFlow::QueueMonitor< T >:
Inheritance graph
[legend]

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< QueuePriorityPairpriority_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
 

Detailed Description

template<typename T>
class Aws::DataFlow::QueueMonitor< T >

Manage multiple queue's and their priorities. Exposes a dequeue API which enforces the desired priorities and returns the data with the highest priority.

Template Parameters
Ttype of data in the queues.

Definition at line 42 of file queue_monitor.h.

Constructor & Destructor Documentation

template<typename T>
Aws::DataFlow::QueueMonitor< T >::QueueMonitor ( )
default
template<typename T>
Aws::DataFlow::QueueMonitor< T >::~QueueMonitor ( )
overridedefault

Member Function Documentation

template<typename T>
void Aws::DataFlow::QueueMonitor< T >::addSource ( std::shared_ptr< IObservedQueue< T >>  observed_queue,
PriorityOptions  priority_options 
)
inlineoverridevirtual

Implements Aws::DataFlow::QueueDemux< T >.

Definition at line 51 of file queue_monitor.h.

template<typename T>
bool Aws::DataFlow::QueueMonitor< T >::dequeue ( T &  data,
const std::chrono::microseconds &  duration 
)
inlineoverridevirtual

Dequeue data off of a queue with the highest priority.

Returns
the dequeue'd data

Implements Aws::DataFlow::Source< T >.

Definition at line 67 of file queue_monitor.h.

template<typename T>
bool Aws::DataFlow::QueueMonitor< T >::hasWork ( )
inlineoverrideprotectedvirtual
Returns
True if any of the status monitors are enabled.

Implements Aws::DataFlow::ThreadMonitor.

Definition at line 88 of file queue_monitor.h.

Member Data Documentation

template<typename T>
std::vector<QueuePriorityPair> Aws::DataFlow::QueueMonitor< T >::priority_vector_
private

Priority queue of managed shared queues.

Definition at line 121 of file queue_monitor.h.


The documentation for this class was generated from the following file:


dataflow_lite
Author(s): AWS RoboMaker
autogenerated on Fri May 7 2021 02:18:22