COMMS
Template library intended to help with implementation of communication protocols.
|
Contains extra logic to help with dispatching message types and objects. More...
#include <type_traits>
#include "comms/CompileControl.h"
#include "comms/Message.h"
#include "comms/details/dispatch_impl.h"
#include "comms/util/type_traits.h"
#include "comms/details/tag.h"
Go to the source code of this file.
Namespaces | |
namespace | comms |
Main namespace for all classes / functions of COMMS library. | |
Functions | |
template<typename TAllMessages , typename TId , typename TMsg , typename THandler > | |
auto | comms::dispatchMsg (TId &&id, std::size_t index, TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using either "polymorphic" or "static binary search" behavior. | |
template<typename TAllMessages , typename TId , typename TMsg , typename THandler > | |
auto | comms::dispatchMsg (TId &&id, TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using either "polymorphic" or "static binary search" behavior. | |
template<typename TAllMessages , typename TMsg , typename THandler > | |
auto | comms::dispatchMsg (TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using either "polymorphic" or "static binary search" behavior. | |
template<typename TMsg , typename THandler > | |
constexpr bool | comms::dispatchMsgIsDirect () |
Compile time check whether the message object can use its own polymorphic dispatch() (see Polymorphic Dispatch Message for Handling) when dispatchMsg() is invoked. | |
template<typename TMsg , typename THandler > | |
constexpr bool | comms::dispatchMsgIsDirect (TMsg &&msg, THandler &&handler) |
Similar to other dispatchMsgIsDirect(), but can help in deducing template arguments. | |
template<typename TAllMessages , typename TMsg , typename THandler > | |
constexpr bool | comms::dispatchMsgIsPolymorphic () |
Compile time check whether the dispatchMsg() will use "polymorphic" (including "direct") dispatch for provided tuple of messages and handler. | |
template<typename TAllMessages , typename TMsg , typename THandler > | |
constexpr bool | comms::dispatchMsgIsPolymorphic (TMsg &&msg, THandler &&handler) |
Similar to other dispatchMsgIsPolymorphic(), but can help in deducing template arguments. | |
template<typename TAllMessages , typename TMsg , typename THandler > | |
constexpr bool | comms::dispatchMsgIsStaticBinSearch () |
Compile time check whether the dispatchMsg() will use "static binary search" dispatch for provided tuple of messages and handler. | |
template<typename TAllMessages , typename TMsg , typename THandler > | |
constexpr bool | comms::dispatchMsgIsStaticBinSearch (TMsg &&msg, THandler &&handler) |
Similar to other dispatchMsgIsStaticBinSearch(), but can help in deducing template arguments. | |
template<typename TAllMessages , typename TId , typename TMsg , typename THandler > | |
auto | comms::dispatchMsgLinearSwitch (TId &&id, std::size_t index, TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using linear switch behavior. | |
template<typename TAllMessages , typename TId , typename TMsg , typename THandler > | |
auto | comms::dispatchMsgLinearSwitch (TId &&id, TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using linear switch behavior. | |
template<typename TAllMessages , typename TMsg , typename THandler > | |
auto | comms::dispatchMsgLinearSwitch (TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using linear switch behavior. | |
template<typename TAllMessages , typename TId , typename TMsg , typename THandler > | |
auto | comms::dispatchMsgPolymorphic (TId &&id, std::size_t index, TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using polymorphic behavior. | |
template<typename TAllMessages , typename TId , typename TMsg , typename THandler > | |
auto | comms::dispatchMsgPolymorphic (TId &&id, TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using polymorphic behavior. | |
template<typename TAllMessages , typename TMsg , typename THandler > | |
auto | comms::dispatchMsgPolymorphic (TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using polymorphic behavior. | |
template<typename TAllMessages , typename TId , typename TMsg , typename THandler > | |
auto | comms::dispatchMsgStaticBinSearch (TId &&id, std::size_t index, TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using static binary search behavior. | |
template<typename TAllMessages , typename TId , typename TMsg , typename THandler > | |
auto | comms::dispatchMsgStaticBinSearch (TId &&id, TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using static binary search behavior. | |
template<typename TAllMessages , typename TMsg , typename THandler > | |
auto | comms::dispatchMsgStaticBinSearch (TMsg &msg, THandler &handler) -> details::MessageInterfaceDispatchRetType< typename std::decay< decltype(handler)>::type > |
Dispatch message object into appropriate handle() function in the provided handler using static binary search behavior. | |
template<typename TAllMessages , typename TId , typename THandler > | |
bool | comms::dispatchMsgType (TId &&id, std::size_t index, THandler &handler) |
Dispatch message id into appropriate handle() function in the provided handler using either "polymorphic" or "static binary search" behavior. | |
template<typename TAllMessages , typename TId , typename THandler > | |
bool | comms::dispatchMsgType (TId &&id, THandler &handler) |
Dispatch message id into appropriate handle() function in the provided handler using either "polymorphic" or "static binary search" behavior. | |
template<typename TAllMessages , typename TId > | |
std::size_t | comms::dispatchMsgTypeCountStaticBinSearch (TId &&id) |
Count number of message types in the provided tuple that have the requested numeric ID. | |
template<typename TAllMessages > | |
constexpr bool | comms::dispatchMsgTypeIsPolymorphic () |
Compile time check whether the dispatchMsgType() will use "polymorphic" dispatch for provided tuple of messages. | |
template<typename TAllMessages > | |
constexpr bool | comms::dispatchMsgTypeIsStaticBinSearch () |
Compile time check whether the dispatchMsgType() or dispatchMsgType() will use "static binary search" dispatch for provided tuple of messages. | |
template<typename TAllMessages , typename TId , typename THandler > | |
bool | comms::dispatchMsgTypeLinearSwitch (TId &&id, std::size_t index, THandler &handler) |
Dispatch message id into appropriate handle() function in the provided handler using linear switch behavior. | |
template<typename TAllMessages , typename TId , typename THandler > | |
bool | comms::dispatchMsgTypeLinearSwitch (TId &&id, THandler &handler) |
Dispatch message id into appropriate handle() function in the provided handler using linear switch behavior. | |
template<typename TAllMessages , typename TId , typename THandler > | |
bool | comms::dispatchMsgTypePolymorphic (TId &&id, std::size_t index, THandler &handler) |
Dispatch message id into appropriate handle() function in the provided handler using polymorphic behavior. | |
template<typename TAllMessages , typename TId , typename THandler > | |
bool | comms::dispatchMsgTypePolymorphic (TId &&id, THandler &handler) |
Dispatch message id into appropriate handle() function in the provided handler using polymorphic behavior. | |
template<typename TAllMessages , typename TId , typename THandler > | |
bool | comms::dispatchMsgTypeStaticBinSearch (TId &&id, std::size_t index, THandler &handler) |
Dispatch message id into appropriate handle() function in the provided handler using static binary search behavior. | |
template<typename TAllMessages , typename TId , typename THandler > | |
bool | comms::dispatchMsgTypeStaticBinSearch (TId &&id, THandler &handler) |
Dispatch message id into appropriate handle() function in the provided handler using static binary search behavior. | |
Contains extra logic to help with dispatching message types and objects.