xdrpp
RFC4506 XDR compiler and message library
|
Classes for implementing RPC servers. More...
#include <iostream>
#include <xdrpp/marshal.h>
#include <xdrpp/printer.h>
#include <xdrpp/msgsock.h>
#include <xdrpp/rpcbind.h>
#include <xdrpp/rpc_msg.hh>
#include <map>
Go to the source code of this file.
Classes | |
struct | xdr::rpc_success_hdr |
Structure that gets marshalled as an RPC success header. More... | |
struct | xdr::xdr_traits< rpc_success_hdr > |
struct | xdr::transparent_ptr< T > |
A pointer, but that gets marshalled as the underlying object and can convert to the underlying type. More... | |
struct | xdr::xdr_traits< transparent_ptr< T > > |
struct | xdr::session_allocator< S > |
Trivial session allocator that just calls new and delete. More... | |
struct | xdr::session_allocator< void > |
struct | xdr::service_base |
class | xdr::rpc_server_base |
class | xdr::rpc_tcp_listener_common |
Listens for connections on a TCP socket (optionally registering the socket with rpcbind ), and then serves one or more program/version interfaces to accepted connections. More... | |
class | xdr::generic_rpc_tcp_listener< ServiceType, Session, SessionAllocator > |
Namespaces | |
xdr | |
Most of the xdrpp library is encapsulated in the xdr namespace. | |
Typedefs | |
template<typename T > | |
using | xdr::wrap_transparent_ptr = typename detail::wrap_transparent_ptr_helper< T >::type |
Wrap xdr::transparent_ptr around each type in a tuple to generate a new tuple type. More... | |
Functions | |
msg_ptr | xdr::rpc_accepted_error_msg (uint32_t xid, accept_stat stat) |
msg_ptr | xdr::rpc_prog_mismatch_msg (uint32_t xid, uint32_t low, uint32_t high) |
msg_ptr | xdr::rpc_auth_error_msg (uint32_t xid, auth_stat stat) |
msg_ptr | xdr::rpc_rpc_mismatch_msg (uint32_t xid) |
template<typename Archive , typename T > | |
void | xdr::archive (Archive &ar, const transparent_ptr< T > &t, const char *name=nullptr) |
template<typename P , typename C , typename S , typename T , typename... Rest> | |
auto | xdr::dispatch_with_session (C &&c, S *s, T &&t, Rest &&...rest) -> decltype(detail::dispatch_session_helper< P, C, T >::dispatch(c, s, std::forward< T >(t), std::forward< Rest >(rest)...)) |
Call P::dispatch with a session pointer (unless the session type S is void, in which case the argument is omitted) and with a tuple that should be unpacked into multiple arguments. More... | |
Classes for implementing RPC servers.
We use the following terminology: The term service denotes a class that responds to RPCs for a particular program/version combination. A server is a collection of services. A listener attaches incoming connections from clients to a particular server. And a session is state (if needed) associated with a particular client connection.
Definition in file server.h.