Transforms a class into a "replicated object" with methods that can be invoked by RPC, given a place to store RPC message handlers (which should be the "receivers map" of RPCManager).
More...
|
| RemoteInvocableClass (node_id_t nid, uint32_t type_id, uint32_t instance_id, std::map< Opcode, receive_fun_t > &rvrs, const WrappedFuns &... fs) |
|
template<FunctionTag Tag, typename... Args> |
std::size_t | get_size_for_ordered_send (Args &&... a) |
|
template<FunctionTag Tag, typename... Args> |
auto * | getReturnType (Args &&... args) |
|
template<FunctionTag Tag, typename... Args> |
auto | send (const std::function< char *(int)> &out_alloc, Args &&... args) |
| Constructs a message that will remotely invoke a method of this class, supplying the specified arguments, using RPC. More...
|
|
RemoteInvocableClass & | for_class (IdentifyingClass *) |
|
template<class IdentifyingClass, typename... WrappedFuns>
class derecho::rpc::RemoteInvocableClass< IdentifyingClass, WrappedFuns >
Transforms a class into a "replicated object" with methods that can be invoked by RPC, given a place to store RPC message handlers (which should be the "receivers map" of RPCManager).
Each RPC-invokable method must be supplied as a template parameter, in order to associate it with a compile-time constant name (the tag).
- Template Parameters
-
IdentifyingClass | The class to make into an RPC-invokable class |
Fs | A list of "wrapped" function pointers to members of that class, each associated with a tag. |
Definition at line 587 of file remote_invocable.hpp.
template<class IdentifyingClass , typename... WrappedFuns>
template<FunctionTag Tag, typename... Args>
Constructs a message that will remotely invoke a method of this class, supplying the specified arguments, using RPC.
- Parameters
-
out_alloc | A function that can allocate a buffer for the message |
args | The arguments that should be given to the method when invoking it |
- Returns
- A struct containing a set of futures for the remote-method results ("results"), and a set of corresponding promises for those results ("pending").
Definition at line 625 of file remote_invocable.hpp.