Request to construct an object in a new gang over specific locations of an existing gang. More...
Public Member Functions | |
template<typename C , typename Map , typename F > | |
construct_request (C &&c, gang_md &g, Map &&m, F &&f) noexcept | |
bool | operator() (location_md &l, message_shared_ptr &) final |
constexpr size_type | size (void) const noexcept |
size_type & | size (void) noexcept |
Static Public Member Functions | |
template<typename C , typename F > | |
static std::size_t | expected_size (C &&c, F &&f) noexcept |
Public Types | |
using | size_type = std::size_t |
Request to construct an object in a new gang over specific locations of an existing gang.
Callback | Callback to pass a pointer to the constructed object. |
Function | Function that creates a new object. |
LocationMapping | Associative container with the mapping from current to new location id. |
This request has a reference counted pointer to a shared data structure that maps current gang location ids to new gang location ids.
The reference count is increased prior to assigning the pointer in the request, as requests are memcpy'd instead of fully constructed. The destructor of the request will assure that the last thread will delete the shared data structure.