COMMS
Template library intended to help with implementation of communication protocols.
|
Contains definition of Message object interface and various base classes for custom messages. More...
#include <cstdint>
#include <memory>
#include <type_traits>
#include "comms/ErrorStatus.h"
#include "comms/Assert.h"
#include "comms/Field.h"
#include "comms/util/type_traits.h"
#include "comms/details/MessageInterfaceBuilder.h"
#include "comms/details/transport_fields_access.h"
#include "comms/details/detect.h"
#include "comms/details/MessageIdTypeRetriever.h"
#include "comms/details/field_alias.h"
Go to the source code of this file.
Classes | |
class | comms::Message< TOptions > |
Main interface class for all the messages. More... | |
Namespaces | |
namespace | comms |
Main namespace for all classes / functions of COMMS library. | |
Macros | |
#define | COMMS_MSG_TRANSPORT_FIELD_ALIAS_ACCESS_NOTEMPLATE(f_, ...) COMMS_EXPAND(COMMS_DO_ALIAS_NOTEMPLATE(transportField_, f_, __VA_ARGS__)) |
Generate convinience alias access member functions for extra member transport fields in non template interface classes. | |
#define | COMMS_MSG_TRANSPORT_FIELD_ALIAS_NOTEMPLATE(f_, ...) |
Generate convinience alias access member functions and type for extra member transport fields in non template interface classes. | |
Typedefs | |
template<typename TMsg , typename TDefaultType = std::intmax_t> | |
using | comms::MessageIdType = typename comms::util::LazyDeepConditional< TMsg::InterfaceOptions::HasMsgIdType >::template Type< comms::details::MessageIdTypeRetriever, comms::util::AliasType, TDefaultType, TMsg > |
Get type of message ID used by interface class. | |
Functions | |
template<typename T > | |
constexpr bool | comms::isMessage () |
Compile time check of of whether the type is a message. | |
template<typename... TOptions> | |
const Message< TOptions... > & | comms::toMessage (const Message< TOptions... > &msg) |
Upcast type of the message object to comms::Message in order to have access to its internal types. | |
template<typename... TOptions> | |
Message< TOptions... > & | comms::toMessage (Message< TOptions... > &msg) |
Upcast type of the message object to comms::Message in order to have access to its internal types. | |
Contains definition of Message object interface and various base classes for custom messages.
#define COMMS_MSG_TRANSPORT_FIELD_ALIAS_ACCESS_NOTEMPLATE | ( | f_, | |
... | |||
) | COMMS_EXPAND(COMMS_DO_ALIAS_NOTEMPLATE(transportField_, f_, __VA_ARGS__)) |
Generate convinience alias access member functions for extra member transport fields in non template interface classes.
Similar to COMMS_MSG_TRANSPORT_FIELD_ALIAS, but needs to be used in non-template interface class to allow compilation with gcc-4.8
#define COMMS_MSG_TRANSPORT_FIELD_ALIAS_NOTEMPLATE | ( | f_, | |
... | |||
) |
Generate convinience alias access member functions and type for extra member transport fields in non template interface classes.
Similar to COMMS_MSG_TRANSPORT_FIELD_ALIAS(), but needs to be used in non-template interface class to allow compilation with gcc-4.8