COMMS
Template library intended to help with implementation of communication protocols.
Loading...
Searching...
No Matches
ChecksumPrefixLayerBase.h
1//
2// Copyright 2025 - 2025 (C). Alex Robenko. All rights reserved.
3//
4// This Source Code Form is subject to the terms of the Mozilla Public
5// License, v. 2.0. If a copy of the MPL was not distributed with this
6// file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
8#pragma once
9
10#include "comms/frame/details/ChecksumLayerOptionsParser.h"
12
13#include <cstddef>
14
15namespace comms
16{
17
18namespace frame
19{
20
21// Forward declaration
22template <typename TField, typename TCalc, typename TNextLayer, typename... TOptions>
24
25namespace details
26{
27
28template <typename TField, typename TCalc, typename TNextLayer, typename... TOptions>
29class ChecksumPrefixLayerBaseHelper
30{
31 using ParsedOptionsInternal = comms::frame::details::ChecksumLayerOptionsParser<TOptions...>;
32 using ActualLayer =
33 typename ParsedOptionsInternal::template DefineExtendingClass<
34 ChecksumPrefixLayer<TField, TCalc, TNextLayer, TOptions...>
35 >;
36
37 using TopBase =
39 TField,
40 TNextLayer,
41 ActualLayer,
42 typename ParsedOptionsInternal::template SuppressForVerifyBeforeRead<comms::option::def::FrameLayerDisallowReadUntilDataSplit>
43 >;
44
45public:
46 using Base = TopBase;
47};
48
49template <typename TField, typename TCalc, typename TNextLayer, typename... TOptions>
50using ChecksumPrefixLayerBase = typename ChecksumPrefixLayerBaseHelper<TField, TCalc, TNextLayer, TOptions...>::Base;
51
52} // namespace details
53
54} // namespace frame
55
56} // namespace comms
Contains definition of comms::frame::FrameLayerBase.
Base class for all the middle (non MsgDataLayer) protocol transport layers.
Definition FrameLayerBase.h:60
comms::frame::ChecksumPrefixLayer< TField, TCalc, TNextLayer, TOptions... > ChecksumPrefixLayer
Alias to the comms::frame::ChecksumPrefixLayer.
Definition ChecksumPrefixLayer.h:25
Main namespace for all classes / functions of COMMS library.