STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Static Public Member Functions | Public Types | Static Public Attributes
stapl::runtime::async_rmi_request< ObjectHandle, MemFun, T > Class Template Referencefinal

RMI request that discards the return value and supports combining. More...

Public Member Functions

template<typename Handle , typename F , typename... U>
 async_rmi_request (Handle &&h, F &&f, U &&... u) noexcept
 
const void * end (void) const noexcept
 Returns a pointer to the end of this request.
 
bool operator() (context &ctx) final
 
void combined (const size_type size) noexcept
 Informs that a request has been combined by increasing the size of first request.
 
constexpr size_type num_requests (void) const noexcept
 
constexpr size_type size (void) const noexcept
 
size_type & size (void) noexcept
 

Static Public Member Functions

template<typename... U>
static combined_request_size expected_size (U &&... u) noexcept
 
static constexpr size_type minimum_size (void) noexcept
 

Public Types

using args_type = arguments_t< MemFun, T... >
 
typedef std::size_t size_type
 

Static Public Attributes

static constexpr bool has_counter
 true if the request has a counter for the combined requests.
 

Detailed Description

template<typename ObjectHandle, typename MemFun, typename... T>
class stapl::runtime::async_rmi_request< ObjectHandle, MemFun, T >

RMI request that discards the return value and supports combining.

Template Parameters
ObjectHandleDistributed object handle type.
MemFunMember function pointer type.
TArgument types.

This RMI request supports combining. It is detected at runtime if two requests can be combined and if so, they are. Combining consists of keeping only the set of arguments instead of also the object handle and the member function pointer, saving on space and required function calls.

In general combining is detected if the size of the sent request is bigger than the size of the current executed request (given by the arguments). However, if the argument size is 0, an additional counter that gives the number of aggregated requests exists.


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