Loading [MathJax]/extensions/tex2jax.js
Iros
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Loading...
Searching...
No Matches
ipc_protocol.h File Reference

Go to the source code of this file.

Classes

struct  di::meta::detail::MessageReplyHelper< T >
 
struct  di::meta::detail::MessageReplyHelper< T >
 
struct  di::execution::Protocol< ClientMessages, ServerMessages >
 
struct  di::meta::detail::MustBeClientOrServer
 
struct  di::execution::send_ns::Function
 
struct  di::execution::ipc::Receiver< Reader >
 
struct  di::execution::ipc::Transmitter< Writer >
 
struct  di::execution::ipc::ReceiverTransmitter< RW >
 
struct  di::execution::ipc::Transmit< F >
 
struct  di::execution::ipc::Receive< F >
 
struct  di::execution::ipc::Allocator< Alloc >
 
struct  di::Protocol< ClientMessages, ServerMessages >
 

Namespaces

namespace  di
 
namespace  di::concepts
 
namespace  di::meta
 
namespace  di::meta::detail
 
namespace  di::execution
 
namespace  di::execution::send_ns
 
namespace  di::execution::ipc
 

Concepts

concept  di::concepts::MessageWithReply
 
concept  di::concepts::HasProtocol
 
concept  di::concepts::Reply
 

Typedefs

template<typename T>
using di::meta::MessageReply = Type<detail::MessageReplyHelper<T>>
 
template<typename T>
using di::meta::Protocol = typename T::Protocol
 
template<concepts::TypeList Messages>
using di::meta::detail::MessagesReplies = Filter<Transform<Messages, meta::Quote<MessageReply>>, Not<SameAs<void>>>
 
template<concepts::HasProtocol T>
using di::meta::MessageTypesWithoutReplies
 
template<concepts::HasProtocol T>
using di::meta::PeerMessageTypesWithoutReplies
 
template<concepts::HasProtocol T>
using di::meta::MessageTypes = Concat<MessageTypesWithoutReplies<T>, detail::MessagesReplies<PeerMessageTypesWithoutReplies<T>>>
 
template<concepts::HasProtocol T>
using di::meta::AllMessageTypesWithoutReplies = Concat<typename meta::Protocol<T>::Client, typename meta::Protocol<T>::Server>
 
using di::execution::ipc::BaseNamedArguments
 

Functions

template<typename Reader>
 di::execution::ipc::Receiver (Reader &&) -> Receiver< Reader >
 
template<typename Writer>
 di::execution::ipc::Transmitter (Writer &&) -> Transmitter< di::meta::RemoveReference< Writer > >
 
template<typename RW>
 di::execution::ipc::ReceiverTransmitter (RW &&) -> ReceiverTransmitter< di::meta::RemoveReference< RW > >
 
template<typename F>
 di::execution::ipc::Transmit (F &&) -> Transmit< F >
 
template<typename F>
 di::execution::ipc::Receive (F &&) -> Receive< F >
 
template<typename Alloc>
 di::execution::ipc::Allocator (Alloc &) -> Allocator< Alloc >
 

Variables

template<typename T>
constexpr bool is_client = requires { typename T::is_client; }
 
template<typename T>
constexpr bool is_server = requires { typename T::is_server; }
 
constexpr auto di::execution::send = send_ns::Function {}
 
constexpr auto di::send
 

Variable Documentation

◆ is_client

template<typename T>
bool is_client = requires { typename T::is_client; }
inlineconstexpr

◆ is_server

template<typename T>
bool is_server = requires { typename T::is_server; }
inlineconstexpr