| 
    Intel(R) Threading Building Blocks Doxygen Documentation
    version 4.2.3
    
   | 
 
Aggregator base class. More...
#include <_aggregator_impl.h>
Public Member Functions | |
| aggregator_generic () | |
| template<typename handler_type > | |
| void | execute (operation_type *op, handler_type &handle_operations, bool long_life_time=true) | 
| Execute an operation.  More... | |
Private Member Functions | |
| template<typename handler_type > | |
| void | start_handle_operations (handler_type &handle_operations) | 
| Trigger the handling of operations when the handler is free.  More... | |
Private Attributes | |
| atomic< operation_type * > | pending_operations | 
| An atomically updated list (aka mailbox) of pending operations.  More... | |
| uintptr_t | handler_busy | 
| Controls thread access to handle_operations.  More... | |
Aggregator base class.
An aggregator for collecting operations coming from multiple sources and executing them serially on a single thread. operation_type must be derived from aggregated_operation. The parameter handler_type is a functor that will be passed the list of operations and is expected to handle each operation appropriately, setting the status of each operation to non-zero.
Definition at line 49 of file _aggregator_impl.h.
      
  | 
  inline | 
Definition at line 51 of file _aggregator_impl.h.
      
  | 
  inline | 
Execute an operation.
Places an operation into the waitlist (pending_operations), and either handles the list, or waits for the operation to complete, or returns. The long_life_time parameter specifies the life time of the given operation object. Operations with long_life_time == true may be accessed after execution. A "short" life time operation (long_life_time == false) can be destroyed during execution, and so any access to it after it was put into the waitlist, including status check, is invalid. As a consequence, waiting for completion of such operation causes undefined behavior.
Definition at line 64 of file _aggregator_impl.h.
      
  | 
  inlineprivate | 
Trigger the handling of operations when the handler is free.
Definition at line 110 of file _aggregator_impl.h.
      
  | 
  private | 
Controls thread access to handle_operations.
Definition at line 106 of file _aggregator_impl.h.
      
  | 
  private | 
An atomically updated list (aka mailbox) of pending operations.
Definition at line 104 of file _aggregator_impl.h.