Class out_of_order_activation_queue
poet::out_of_order_activation_queue — An activation queue which can reorder method requests.
Synopsis
class out_of_order_activation_queue : public poet::activation_queue_base { public: // construct/copy/destruct virtual ~out_of_order_activation_queue(); // public member functions virtual void push_back(const boost::shared_ptr<method_request_base> &) ; virtual boost::shared_ptr<method_request_base> get_request() ; void wake(); virtual size_type size() const; virtual bool empty() const; };
Description
An out_of_order_activation_queue can return any method request it contains which is currently ready for execution. Thus, method requests which are not ready will never stall the queue and prevent another ready method request from running.
out_of_order_activation_queue
public member functions
-
virtual void push_back(const boost::shared_ptr<method_request_base> & request) ;
Adds a new method request to the activation queue.
-
virtual boost::shared_ptr<method_request_base> get_request() ;
Blocks until any method request in the queue becomes ready, then pops the ready request off the queue and returns it.
Returns:
A method request from the queue which is currently ready for execution, or an empty
shared_ptr
if interrupted by wake. -
void wake();
A call to
wake
should cause anyget_request
calls which are waiting for a ready method request to wake up immediately and return an empty shared_ptr. -
virtual size_type size() const;
Returns:
the number of method requests waiting in the queue.
-
virtual bool empty() const;
Returns:
true if size() is zero.