Derecho  0.9
Distributed systems toolkit for RDMA
Public Member Functions | Public Attributes | List of all members
derecho::rpc::RemoteInvokerForClass< IdentifyingClass, WrappedFuns > Class Template Reference

Transforms a class into an RPC client for the methods of that class, given a place to store RPC message handlers (which should be the "receivers map" of RPCManager). More...

#include <remote_invocable.hpp>

Inheritance diagram for derecho::rpc::RemoteInvokerForClass< IdentifyingClass, WrappedFuns >:
Inheritance graph
[legend]
Collaboration diagram for derecho::rpc::RemoteInvokerForClass< IdentifyingClass, WrappedFuns >:
Collaboration graph
[legend]

Public Member Functions

 RemoteInvokerForClass (node_id_t nid, uint32_t type_id, uint32_t instance_id, std::map< Opcode, receive_fun_t > &rvrs)
 
template<FunctionTag Tag, typename... Args>
auto send (const std::function< char *(int)> &out_alloc, Args &&... args)
 

Public Attributes

const node_id_t nid
 

Detailed Description

template<class IdentifyingClass, typename... WrappedFuns>
class derecho::rpc::RemoteInvokerForClass< IdentifyingClass, WrappedFuns >

Transforms a class into an RPC client for the methods of that class, 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). This must be the same tag that the "RPC server" being contacted used for the RemoteInvocableClass version of this class.

Template Parameters
IdentifyingClassThe class to make into an RPC-invoking client
FsA list of "wrapped" function pointers to members of that class, each associated with a tag.

Definition at line 754 of file remote_invocable.hpp.

Constructor & Destructor Documentation

◆ RemoteInvokerForClass()

template<class IdentifyingClass , typename... WrappedFuns>
derecho::rpc::RemoteInvokerForClass< IdentifyingClass, WrappedFuns >::RemoteInvokerForClass ( node_id_t  nid,
uint32_t  type_id,
uint32_t  instance_id,
std::map< Opcode, receive_fun_t > &  rvrs 
)
inline

Definition at line 758 of file remote_invocable.hpp.

Member Function Documentation

◆ send()

template<class IdentifyingClass , typename... WrappedFuns>
template<FunctionTag Tag, typename... Args>
auto derecho::rpc::RemoteInvokerForClass< IdentifyingClass, WrappedFuns >::send ( const std::function< char *(int)> &  out_alloc,
Args &&...  args 
)
inline

Definition at line 764 of file remote_invocable.hpp.

Member Data Documentation

◆ nid

template<class IdentifyingClass , typename... WrappedFuns>
const node_id_t derecho::rpc::RemoteInvokerForClass< IdentifyingClass, WrappedFuns >::nid

Definition at line 756 of file remote_invocable.hpp.


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