LLVM  4.0.0
Public Member Functions | List of all members
llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT > Class Template Reference

#include <RPCUtils.h>

Inheritance diagram for llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >:
[legend]
Collaboration diagram for llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >:
[legend]

Public Member Functions

 SingleThreadedRPCEndpoint (ChannelT &C, bool LazyAutoNegotiation)
 
template<typename Func , typename HandlerT >
void addHandler (HandlerT Handler)
 
template<typename Func , typename ClassT , typename RetT , typename... ArgTs>
void addHandler (ClassT &Object, RetT(ClassT::*Method)(ArgTs...))
 
template<typename Func >
Error negotiateFunction (bool Retry=false)
 Negotiate a function id for Func with the other end of the channel. More...
 
template<typename Func , typename... ArgTs, typename AltRetT = typename Func::ReturnType>
detail::ResultTraits< AltRetT >
::ErrorReturnType 
callB (const ArgTs &...Args)
 
- Public Member Functions inherited from llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >
 RPCEndpointBase (ChannelT &C, bool LazyAutoNegotiation)
 Construct an RPC instance on a channel. More...
 
Error appendCallAsync (HandlerT Handler, const ArgTs &...Args)
 Append a call Func, does not call send on the channel. More...
 
Error sendAppendedCalls ()
 
Error callAsync (HandlerT Handler, const ArgTs &...Args)
 
Error handleOne ()
 Handle one incoming call. More...
 
void abandonPendingResponses ()
 Abandon all outstanding result handlers. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >
**static detail::ReadArgs
< ArgTs...> 
readArgs (ArgTs &...Args)
 Helper for handling setter procedures - this method returns a functor that sets the variables referred to by Args... More...
 
- Protected Types inherited from llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >
using LaunchPolicy = std::function< Error(std::function< Error()>)>
 
using WrappedHandlerFn = std::function< Error(ChannelT &, SequenceNumberT)>
 
- Protected Member Functions inherited from llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >
FunctionIdT getInvalidFunctionId () const
 
void addHandlerImpl (HandlerT Handler, LaunchPolicy Launch)
 Add the given handler to the handler map and make it available for autonegotiation and execution. More...
 
Error handleResponse (SequenceNumberT SeqNo)
 
FunctionIdT handleNegotiate (const std::string &Name)
 
Expected< FunctionIdT > getRemoteFunctionId ()
 
WrappedHandlerFn wrapHandler (HandlerT Handler, LaunchPolicy Launch)
 
- Protected Attributes inherited from llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >
ChannelT & C
 
bool LazyAutoNegotiation
 
RPCFunctionIdAllocator
< FunctionIdT > 
FnIdAllocator
 
FunctionIdT ResponseId
 
std::map< std::string,
FunctionIdT > 
LocalFunctionIds
 
std::map< const char
*, FunctionIdT > 
RemoteFunctionIds
 
std::map< FunctionIdT,
WrappedHandlerFn
Handlers
 
std::mutex ResponsesMutex
 
detail::SequenceNumberManager
< SequenceNumberT > 
SequenceNumberMgr
 
std::map< SequenceNumberT,
std::unique_ptr
< detail::ResponseHandler
< ChannelT > > > 
PendingResponses
 

Detailed Description

template<typename ChannelT, typename FunctionIdT = uint32_t, typename SequenceNumberT = uint32_t>
class llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >

Definition at line 1217 of file RPCUtils.h.

Constructor & Destructor Documentation

template<typename ChannelT, typename FunctionIdT = uint32_t, typename SequenceNumberT = uint32_t>
llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >::SingleThreadedRPCEndpoint ( ChannelT &  C,
bool  LazyAutoNegotiation 
)
inline

Definition at line 1230 of file RPCUtils.h.

Member Function Documentation

template<typename ChannelT, typename FunctionIdT = uint32_t, typename SequenceNumberT = uint32_t>
template<typename Func , typename HandlerT >
void llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >::addHandler ( HandlerT  Handler)
inline

Definition at line 1234 of file RPCUtils.h.

template<typename ChannelT, typename FunctionIdT = uint32_t, typename SequenceNumberT = uint32_t>
template<typename Func , typename ClassT , typename RetT , typename... ArgTs>
void llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >::addHandler ( ClassT &  Object,
RetT(ClassT::*)(ArgTs...)  Method 
)
inline

Definition at line 1240 of file RPCUtils.h.

template<typename ChannelT, typename FunctionIdT = uint32_t, typename SequenceNumberT = uint32_t>
template<typename Func , typename... ArgTs, typename AltRetT = typename Func::ReturnType>
detail::ResultTraits<AltRetT>::ErrorReturnType llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >::callB ( const ArgTs &...  Args)
inline

Definition at line 1274 of file RPCUtils.h.

template<typename ChannelT, typename FunctionIdT = uint32_t, typename SequenceNumberT = uint32_t>
template<typename Func >
Error llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >::negotiateFunction ( bool  Retry = false)
inline

Negotiate a function id for Func with the other end of the channel.

Definition at line 1246 of file RPCUtils.h.


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