COMMS
Template library intended to help with implementation of communication protocols.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
ProtocolLayerBase.h File Reference

Contains definition of comms::protocol::ProtocolLayerBase. More...

#include <tuple>
#include <utility>
#include <algorithm>
#include <iterator>
#include "comms/CompileControl.h"
#include "comms/ErrorStatus.h"
#include "comms/util/Tuple.h"
#include "comms/util/type_traits.h"
#include "comms/Assert.h"
#include "comms/options.h"
#include "comms/protocol/details/ProtocolLayerBaseOptionsParser.h"
#include "comms/protocol/details/ProtocolLayerDetails.h"
#include "comms/details/protocol_layers_access.h"
#include "comms/details/detect.h"
#include "comms/details/tag.h"

Go to the source code of this file.

Classes

class  comms::protocol::ProtocolLayerBase< TField, TNextLayer, TDerived, TOptions >
 Base class for all the middle (non MsgDataLayer) protocol transport layers. More...
 

Namespaces

namespace  comms
 Main namespace for all classes / functions of COMMS library.
 
namespace  comms::protocol
 Namespace that contains definition of layers that can be used to wrap message data with transport data.
 

Functions

details::MissingSizeRetriever comms::protocol::missingSize (std::size_t &val)
 Add "missing size" output parameter to protocol stack's (frame's) "read" operation.
 
template<typename TId >
details::MsgIdRetriever< TId > comms::protocol::msgId (TId &val)
 Add "message ID" output parameter to protocol stack's (frame's) "read" operation.
 
details::MsgIndexRetriever comms::protocol::msgIndex (std::size_t &val)
 Add "message index" output parameter to protocol stack's (frame's) "read" operation.
 
template<typename TIter >
details::MsgPayloadRetriever< TIter > comms::protocol::msgPayload (TIter &iter, std::size_t &len)
 Add "payload start" and "payload size" output parameters to protocol stack's (frame's) "read" operation.
 
template<typename TField , typename TNextLayer , typename TDerived , typename... TOptions>
constexpr const ProtocolLayerBase< TField, TNextLayer, TDerived, TOptions... > & comms::protocol::toProtocolLayerBase (const ProtocolLayerBase< TField, TNextLayer, TDerived, TOptions... > &layer)
 Upcast protocol layer in order to have access to its internal types.
 
template<typename TField , typename TNextLayer , typename TDerived , typename... TOptions>
ProtocolLayerBase< TField, TNextLayer, TDerived, TOptions... > & comms::protocol::toProtocolLayerBase (ProtocolLayerBase< TField, TNextLayer, TDerived, TOptions... > &layer)
 Upcast protocol layer in order to have access to its internal types.
 

Detailed Description

Contains definition of comms::protocol::ProtocolLayerBase.