emlabcpp
modern opinionated embedded C++ library
emlabcpp::rpc::controller< Wrapper > Class Template Reference

#include <rpc.h>

Public Types

using traits_type = wrapper_traits< Wrapper >
 
using call_defs = typename traits_type::call_defs
 
using reply_variant = typename traits_type::reply_variant
 
using request_type = typename traits_type::request_type
 
using reply_type = typename traits_type::reply_type
 
using request_group = typename traits_type::request_group
 
using outter_reply_group = typename traits_type::outter_reply_group
 
using request_message_type = typename traits_type::request_message_type
 
using reply_message_type = typename traits_type::reply_message_type
 
using request_handler = protocol::handler< request_group >
 
using reply_handler = protocol::handler< outter_reply_group >
 
template<auto ID>
using call_type = std::tuple_element_t< call_index< ID >, call_defs >
 

Static Public Member Functions

template<auto ID, typename... Args, typename MsgCallback >
static std::variant< typename call_type< ID >::reply, errorcall (MsgCallback &&cb, Args const &... args)
 
template<auto ID, typename... Args>
static auto make_call_msg (Args const &... args)
 
template<auto ID>
static std::variant< typename call_type< ID >::reply, erroron_reply_msg (auto const &reply_msg)
 

Static Public Attributes

template<auto ID>
static constexpr std::size_t call_index = get_call_index< call_defs >( ID )
 

Member Typedef Documentation

◆ call_defs

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::call_defs = typename traits_type::call_defs

◆ call_type

template<typename Wrapper >
template<auto ID>
using emlabcpp::rpc::controller< Wrapper >::call_type = std::tuple_element_t< call_index< ID >, call_defs >

◆ outter_reply_group

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::outter_reply_group = typename traits_type::outter_reply_group

◆ reply_handler

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::reply_handler = protocol::handler< outter_reply_group >

◆ reply_message_type

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::reply_message_type = typename traits_type::reply_message_type

◆ reply_type

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::reply_type = typename traits_type::reply_type

◆ reply_variant

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::reply_variant = typename traits_type::reply_variant

◆ request_group

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::request_group = typename traits_type::request_group

◆ request_handler

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::request_handler = protocol::handler< request_group >

◆ request_message_type

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::request_message_type = typename traits_type::request_message_type

◆ request_type

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::request_type = typename traits_type::request_type

◆ traits_type

template<typename Wrapper >
using emlabcpp::rpc::controller< Wrapper >::traits_type = wrapper_traits< Wrapper >

Member Function Documentation

◆ call()

template<typename Wrapper >
template<auto ID, typename... Args, typename MsgCallback >
static std::variant< typename call_type< ID >::reply, error > emlabcpp::rpc::controller< Wrapper >::call ( MsgCallback &&  cb,
Args const &...  args 
)
inlinestatic

References emlabcpp::args.

◆ make_call_msg()

template<typename Wrapper >
template<auto ID, typename... Args>
static auto emlabcpp::rpc::controller< Wrapper >::make_call_msg ( Args const &...  args)
inlinestatic

◆ on_reply_msg()

template<typename Wrapper >
template<auto ID>
static std::variant< typename call_type< ID >::reply, error > emlabcpp::rpc::controller< Wrapper >::on_reply_msg ( auto const &  reply_msg)
inlinestatic

Member Data Documentation

◆ call_index

template<typename Wrapper >
template<auto ID>
constexpr std::size_t emlabcpp::rpc::controller< Wrapper >::call_index = get_call_index< call_defs >( ID )
staticconstexpr

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