RMI request aggregator for a single destination location. More...
| Public Member Functions | |
| tunnel_aggregator (context &ctx, full_location const &dest, gang_md &g, const bool intragang) noexcept | |
| Creates a new tunnel_aggregator to an intragang/intergang destination with the gang metadata being known.  More... | |
| tunnel_aggregator (context &ctx, full_location const &dest) noexcept | |
| Creates a new tunnel_aggregator to an intergang destination. | |
| ~tunnel_aggregator (void) | |
| Destroys this tunnel_aggregator.  More... | |
| bool | is_on_shmem (void) const noexcept | 
| Returns trueif the destination is on shared memory, otherwisefalse. | |
| std::pair< void *, void * > | allocate (const std::size_t size, const std::size_t combined_size, const epoch_type e) | 
| Allocates space for a new request that supports combining.  More... | |
| void | flush (void) | 
| Flushes the buffer. | |
| void | check_and_flush (void) | 
| Flushes the buffer if it has at least a request in it. | |
| void | try_flush (void) | 
| Flushes the buffer if it has enough requests in it.  More... | |
| Public Types | |
| using | epoch_type = logical_clock::time_type | 
RMI request aggregator for a single destination location.
This class keeps an internal buffer where requests are stored and then sent as one message.
| 
 | noexcept | 
Creates a new tunnel_aggregator to an intragang/intergang destination with the gang metadata being known.
If it is an intergang aggregator, then the reference count on gang_md is increased to avoid deleting the gang_md object in case that it is ready to be destroyed.
| stapl::runtime::tunnel_aggregator::~tunnel_aggregator | ( | void | ) | 
Destroys this tunnel_aggregator.
The destructor flushes the buffer if necessary and releases the reference count on gang_md if it was an intergang aggegrator.
| std::pair<void*, void*> stapl::runtime::tunnel_aggregator::allocate | ( | const std::size_t | size, | 
| const std::size_t | combined_size, | ||
| const epoch_type | e | ||
| ) | 
Allocates space for a new request that supports combining.
It will flush any aggregated requests if the new request is in a newer epoch than the last one or if there is not enough space for it.
| void stapl::runtime::tunnel_aggregator::try_flush | ( | void | ) | 
Flushes the buffer if it has enough requests in it.
 1.8.13
 1.8.13