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 construct/copy/destruct

  1. virtual ~out_of_order_activation_queue();

out_of_order_activation_queue public member functions

  1. virtual void 
    push_back(const boost::shared_ptr<method_request_base> & request) ;

    Adds a new method request to the activation queue.

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

  3. void wake();

    A call to wake should cause any get_request calls which are waiting for a ready method request to wake up immediately and return an empty shared_ptr.

  4. virtual size_type size() const;

    Returns:

    the number of method requests waiting in the queue.

  5. virtual bool empty() const;

    Returns:

    true if size() is zero.