LLVM  10.0.0svn
Classes | Namespaces | Functions
RPCUtils.h File Reference
#include <map>
#include <thread>
#include <vector>
#include "llvm/ADT/STLExtras.h"
#include "llvm/ExecutionEngine/Orc/OrcError.h"
#include "llvm/ExecutionEngine/Orc/RPCSerialization.h"
#include "llvm/Support/MSVCErrorWorkarounds.h"
#include <future>
Include dependency graph for RPCUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::orc::rpc::RPCFatalError
 Base class of all fatal RPC errors (those that necessarily result in the termination of the RPC session). More...
 
class  llvm::orc::rpc::ConnectionClosed
 RPCConnectionClosed is returned from RPC operations if the RPC connection has already been closed due to either an error or graceful disconnection. More...
 
class  llvm::orc::rpc::BadFunctionCall< FnIdT, SeqNoT >
 BadFunctionCall is returned from handleOne when the remote makes a call with an unrecognized function id. More...
 
class  llvm::orc::rpc::InvalidSequenceNumberForResponse< SeqNoT >
 InvalidSequenceNumberForResponse is returned from handleOne when a response call arrives with a sequence number that doesn't correspond to any in-flight function call. More...
 
class  llvm::orc::rpc::ResponseAbandoned
 This non-fatal error will be passed to asynchronous result handlers in place of a result if the connection goes down before a result returns, or if the function to be called cannot be negotiated with the remote. More...
 
class  llvm::orc::rpc::CouldNotNegotiate
 This error is returned if the remote does not have a handler installed for the given RPC function. More...
 
class  llvm::orc::rpc::Function< DerivedFunc, FnT >
 
class  llvm::orc::rpc::Function< DerivedFunc, RetT(ArgTs...)>
 
class  llvm::orc::rpc::RPCFunctionIdAllocator< T, typename >
 Allocates RPC function ids during autonegotiation. More...
 
class  llvm::orc::rpc::RPCFunctionIdAllocator< T, typename std::enable_if< std::is_integral< T >::value >::type >
 This specialization of RPCFunctionIdAllocator provides a default implementation for integral types. More...
 
class  llvm::orc::rpc::detail::FunctionArgsTuple< T >
 Provides a typedef for a tuple containing the decayed argument types. More...
 
class  llvm::orc::rpc::detail::FunctionArgsTuple< RetT(ArgTs...)>
 
class  llvm::orc::rpc::detail::ResultTraits< RetT >
 
class  llvm::orc::rpc::detail::ResultTraits< void >
 
class  llvm::orc::rpc::detail::ResultTraits< Error >
 
class  llvm::orc::rpc::detail::ResultTraits< Expected< RetT > >
 
class  llvm::orc::rpc::detail::SupportsErrorReturn< T >
 
class  llvm::orc::rpc::detail::SupportsErrorReturn< Error >
 
class  llvm::orc::rpc::detail::SupportsErrorReturn< Expected< T > >
 
class  llvm::orc::rpc::detail::RespondHelper< FuncSupportsErrorReturn >
 
class  llvm::orc::rpc::detail::RespondHelper< true >
 
class  llvm::orc::rpc::detail::RespondHelper< false >
 
class  llvm::orc::rpc::detail::WrappedHandlerReturn< T >
 
class  llvm::orc::rpc::detail::WrappedHandlerReturn< Expected< T > >
 
class  llvm::orc::rpc::detail::WrappedHandlerReturn< void >
 
class  llvm::orc::rpc::detail::WrappedHandlerReturn< Error >
 
class  llvm::orc::rpc::detail::WrappedHandlerReturn< ErrorSuccess >
 
class  llvm::orc::rpc::detail::AsyncHandlerTraits< FnT >
 
class  llvm::orc::rpc::detail::AsyncHandlerTraits< Error(std::function< Error(Expected< ResultT >)>, ArgTs...)>
 
class  llvm::orc::rpc::detail::AsyncHandlerTraits< Error(std::function< Error(Error)>, ArgTs...)>
 
class  llvm::orc::rpc::detail::AsyncHandlerTraits< ErrorSuccess(std::function< Error(Error)>, ArgTs...)>
 
class  llvm::orc::rpc::detail::AsyncHandlerTraits< void(std::function< Error(Error)>, ArgTs...)>
 
class  llvm::orc::rpc::detail::AsyncHandlerTraits< Error(ResponseHandlerT, ArgTs...)>
 
class  llvm::orc::rpc::detail::HandlerTraits< HandlerT >
 
class  llvm::orc::rpc::detail::HandlerTraits< RetT(ArgTs...)>
 
class  llvm::orc::rpc::detail::HandlerTraits< RetT(*)(ArgTs...)>
 
class  llvm::orc::rpc::detail::HandlerTraits< RetT(Class::*)(ArgTs...)>
 
class  llvm::orc::rpc::detail::HandlerTraits< RetT(Class::*)(ArgTs...) const >
 
class  llvm::orc::rpc::detail::ResponseHandlerArg< HandlerT >
 
class  llvm::orc::rpc::detail::ResponseHandlerArg< Error(Expected< ArgT >)>
 
class  llvm::orc::rpc::detail::ResponseHandlerArg< ErrorSuccess(Expected< ArgT >)>
 
class  llvm::orc::rpc::detail::ResponseHandlerArg< Error(Error)>
 
class  llvm::orc::rpc::detail::ResponseHandlerArg< ErrorSuccess(Error)>
 
class  llvm::orc::rpc::detail::ResponseHandler< ChannelT >
 
class  llvm::orc::rpc::detail::ResponseHandlerImpl< ChannelT, FuncRetT, HandlerT >
 
class  llvm::orc::rpc::detail::ResponseHandlerImpl< ChannelT, void, HandlerT >
 
class  llvm::orc::rpc::detail::ResponseHandlerImpl< ChannelT, Expected< FuncRetT >, HandlerT >
 
class  llvm::orc::rpc::detail::ResponseHandlerImpl< ChannelT, Error, HandlerT >
 
class  llvm::orc::rpc::detail::MemberFnWrapper< ClassT, RetT, ArgTs >
 
class  llvm::orc::rpc::detail::ReadArgs< ArgTs >
 
class  llvm::orc::rpc::detail::ReadArgs< ArgT, ArgTs... >
 
class  llvm::orc::rpc::detail::SequenceNumberManager< SequenceNumberT >
 
class  llvm::orc::rpc::detail::RPCArgTypeCheckHelper< P, T1Tuple, T2Tuple >
 
class  llvm::orc::rpc::detail::RPCArgTypeCheckHelper< P, std::tuple<>, std::tuple<> >
 
class  llvm::orc::rpc::detail::RPCArgTypeCheckHelper< P, std::tuple< T, Ts... >, std::tuple< U, Us... > >
 
class  llvm::orc::rpc::detail::RPCArgTypeCheck< P, T1Sig, T2Sig >
 
class  llvm::orc::rpc::detail::CanSerialize< ChannelT, WireT, ConcreteT >
 
class  llvm::orc::rpc::detail::CanDeserialize< ChannelT, WireT, ConcreteT >
 
class  llvm::orc::rpc::detail::RPCEndpointBase< ImplT, ChannelT, FunctionIdT, SequenceNumberT >
 Contains primitive utilities for defining, calling and handling calls to remote procedures. More...
 
class  llvm::orc::rpc::detail::RPCEndpointBase< ImplT, ChannelT, FunctionIdT, SequenceNumberT >::OrcRPCInvalid
 
class  llvm::orc::rpc::detail::RPCEndpointBase< ImplT, ChannelT, FunctionIdT, SequenceNumberT >::OrcRPCResponse
 
class  llvm::orc::rpc::detail::RPCEndpointBase< ImplT, ChannelT, FunctionIdT, SequenceNumberT >::OrcRPCNegotiate
 
class  llvm::orc::rpc::detail::RPCEndpointBase< ImplT, ChannelT, FunctionIdT, SequenceNumberT >::CanSerializeCheck< WireT, ConcreteT >
 
class  llvm::orc::rpc::detail::RPCEndpointBase< ImplT, ChannelT, FunctionIdT, SequenceNumberT >::CanDeserializeCheck< WireT, ConcreteT >
 
class  llvm::orc::rpc::MultiThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >
 
class  llvm::orc::rpc::SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >
 
class  llvm::orc::rpc::RPCAsyncDispatch< RPCClass, Func >
 Asynchronous dispatch for a function on an RPC endpoint. More...
 
class  llvm::orc::rpc::ParallelCallGroup
 Allows a set of asynchrounous calls to be dispatched, and then waited on as a group. More...
 
class  llvm::orc::rpc::APICalls< Funcs >
 Convenience class for grouping RPC Functions into APIs that can be negotiated as a block. More...
 
class  llvm::orc::rpc::APICalls< Funcs >::Contains< F >
 Test whether this API contains Function F. More...
 
class  llvm::orc::rpc::APICalls< Func, Funcs... >
 
class  llvm::orc::rpc::APICalls< Func, Funcs... >::Contains< F >
 
class  llvm::orc::rpc::APICalls< APICalls< InnerFuncs... >, Funcs... >
 
class  llvm::orc::rpc::APICalls< APICalls< InnerFuncs... >, Funcs... >::Contains< F >
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::orc
 
 llvm::orc::rpc
 
 llvm::orc::rpc::detail
 

Functions

template<typename WireRetT , typename HandlerRetT , typename ChannelT , typename FunctionIdT , typename SequenceNumberT >
Error llvm::orc::rpc::detail::respond (ChannelT &C, const FunctionIdT &ResponseId, SequenceNumberT SeqNo, Expected< HandlerRetT > ResultOrErr)
 
template<typename WireRetT , typename ChannelT , typename FunctionIdT , typename SequenceNumberT >
Error llvm::orc::rpc::detail::respond (ChannelT &C, const FunctionIdT &ResponseId, SequenceNumberT SeqNo, Error Err)
 
template<typename ChannelT , typename FuncRetT , typename HandlerT >
std::unique_ptr< ResponseHandler< ChannelT > > llvm::orc::rpc::detail::createResponseHandler (HandlerT H)
 
template<typename Func , typename RPCEndpointT >
RPCAsyncDispatch< RPCEndpointT, Func > llvm::orc::rpc::rpcAsyncDispatch (RPCEndpointT &Endpoint)
 Construct an asynchronous dispatcher from an RPC endpoint and a Func. More...