From 75fffa53a557ea4e867b0f6774e168c22da43a98 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 28 Sep 2024 11:34:55 +1000 Subject: [PATCH 01/17] Updating next release version to be v5.2.8 --- include/comms/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/comms/version.h b/include/comms/version.h index 349a56a..a1c6478 100644 --- a/include/comms/version.h +++ b/include/comms/version.h @@ -17,7 +17,7 @@ #define COMMS_MINOR_VERSION 2U /// @brief Patch level of the library -#define COMMS_PATCH_VERSION 7U +#define COMMS_PATCH_VERSION 8U /// @brief Macro to create numeric version as single unsigned number #define COMMS_MAKE_VERSION(major_, minor_, patch_) \ From bf6e1e051e0a49c179595d4f2ae421f2373f1d21 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sun, 27 Oct 2024 13:55:24 +1000 Subject: [PATCH 02/17] Added support for comms::option::def::FixedValue option. --- include/comms/Field.h | 7 +++ include/comms/field/adapter/FixedValue.h | 53 +++++++++++++++++++ include/comms/field/details/AdaptBasicField.h | 5 +- include/comms/field/details/OptionsParser.h | 16 ++++++ include/comms/field/details/adapters.h | 1 + include/comms/options.h | 3 ++ test/Fields2.th | 35 ++++++------ 7 files changed, 102 insertions(+), 18 deletions(-) create mode 100644 include/comms/field/adapter/FixedValue.h diff --git a/include/comms/Field.h b/include/comms/Field.h index 77f5348..3777c81 100644 --- a/include/comms/Field.h +++ b/include/comms/Field.h @@ -111,6 +111,13 @@ class Field : public details::FieldBase return false; } + /// @brief Default indication of whether the application is prevented to updated the field's value + /// @return Always @b false + static constexpr bool fixedValue() + { + return false; + } + protected: /// @brief Write data into the output buffer. /// @details Use this function to write data to the the buffer diff --git a/include/comms/field/adapter/FixedValue.h b/include/comms/field/adapter/FixedValue.h new file mode 100644 index 0000000..5573144 --- /dev/null +++ b/include/comms/field/adapter/FixedValue.h @@ -0,0 +1,53 @@ +// +// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#pragma once + + +namespace comms +{ + +namespace field +{ + +namespace adapter +{ + + +template +class FixedValue : public TBase +{ + using BaseImpl = TBase; +public: + using ValueType = typename BaseImpl::ValueType; + + using BaseImpl::value; + + ValueType& value() = delete; + + template + void setValue(U&& val) = delete; + + static constexpr bool fixedValue() + { + return true; + } + +private: + using BaseImpl::setValue; + +}; + +} // namespace adapter + +} // namespace field + +} // namespace comms + + + + diff --git a/include/comms/field/details/AdaptBasicField.h b/include/comms/field/details/AdaptBasicField.h index e4d8f2f..2ffb5d5 100644 --- a/include/comms/field/details/AdaptBasicField.h +++ b/include/comms/field/details/AdaptBasicField.h @@ -223,8 +223,11 @@ class AdaptBasicField using VariantResetOnDestructAdapted = typename ParsedOptions::template AdaptVariantResetOnDestruct; + using FixedValueAdapted = + typename ParsedOptions::template AdaptFixedValue; + public: - using Type = VariantResetOnDestructAdapted; + using Type = FixedValueAdapted; }; template diff --git a/include/comms/field/details/OptionsParser.h b/include/comms/field/details/OptionsParser.h index f3042a4..a0755d3 100644 --- a/include/comms/field/details/OptionsParser.h +++ b/include/comms/field/details/OptionsParser.h @@ -74,6 +74,7 @@ class OptionsParser<> static constexpr bool HasMissingOnInvalid = false; static constexpr bool HasVariantCustomResetOnDestruct = false; static constexpr bool HasVersionDependentMembersForced = false; + static constexpr bool HasFixedValue = false; using UnitsType = void; using ScalingRatio = std::ratio<1, 1>; @@ -190,6 +191,9 @@ class OptionsParser<> comms::field::adapter::VariantResetOnDestruct, TField >; + + template + using AdaptFixedValue = TField; }; template @@ -792,6 +796,18 @@ class OptionsParser< TVersionDependent ? MembersVersionDependency_Dependent : MembersVersionDependency_Independent; }; +template +class OptionsParser< + comms::option::def::FixedValue, + TOptions...> : public OptionsParser +{ +public: + static constexpr bool HasFixedValue = true; + + template + using AdaptFixedValue = comms::field::adapter::FixedValue; +}; + template class OptionsParser< diff --git a/include/comms/field/details/adapters.h b/include/comms/field/details/adapters.h index 9ef3ffa..0c94fd6 100644 --- a/include/comms/field/details/adapters.h +++ b/include/comms/field/details/adapters.h @@ -19,6 +19,7 @@ #include "comms/field/adapter/FieldType.h" #include "comms/field/adapter/FixedBitLength.h" #include "comms/field/adapter/FixedLength.h" +#include "comms/field/adapter/FixedValue.h" #include "comms/field/adapter/IgnoreInvalid.h" #include "comms/field/adapter/InvalidByDefault.h" #include "comms/field/adapter/MissingOnInvalid.h" diff --git a/include/comms/options.h b/include/comms/options.h index 90bf38f..f71faf8 100644 --- a/include/comms/options.h +++ b/include/comms/options.h @@ -1240,6 +1240,9 @@ struct VariantHasCustomResetOnDestruct {}; template struct HasVersionDependentMembers {}; +/// @brief Remove an ability to update field's value by the client code +struct FixedValue {}; + } // namespace def namespace app diff --git a/test/Fields2.th b/test/Fields2.th index 645264e..474da64 100644 --- a/test/Fields2.th +++ b/test/Fields2.th @@ -98,9 +98,10 @@ using Test1_IntKeyField = comms::field::IntValue< Test1_FieldBase, std::uint8_t, - comms::option::DefaultNumValue, - comms::option::ValidNumValueRange, - comms::option::FailOnInvalid<> + comms::option::def::DefaultNumValue, + comms::option::def::ValidNumValueRange, + comms::option::def::FailOnInvalid<>, + comms::option::def::FixedValue >; void FieldsTestSuite2::test1() @@ -153,8 +154,8 @@ void FieldsTestSuite2::test1() TS_ASSERT_EQUALS(es, comms::ErrorStatus::Success); TS_ASSERT_EQUALS(field.currentField(), 1U); auto& m = field.accessField<1>(); - TS_ASSERT_EQUALS(std::get<0>(m.value()).value(), 2U); - TS_ASSERT_EQUALS(std::get<1>(m.value()).value(), 0x01020304); + TS_ASSERT_EQUALS(std::get<0>(m.value()).getValue(), 2U); + TS_ASSERT_EQUALS(std::get<1>(m.value()).getValue(), 0x01020304); TS_ASSERT(std::get<2>(m.value()).doesExist()); TS_ASSERT_EQUALS(std::get<2>(m.value()).field().value(), 0x05); TS_ASSERT_EQUALS(field.length(), Buf1Size); @@ -172,8 +173,8 @@ void FieldsTestSuite2::test1() TS_ASSERT_EQUALS(es, comms::ErrorStatus::Success); TS_ASSERT_EQUALS(field.currentField(), 1U); auto& m = field.accessField<1>(); - TS_ASSERT_EQUALS(std::get<0>(m.value()).value(), 2U); - TS_ASSERT_EQUALS(std::get<1>(m.value()).value(), 0x01020304); + TS_ASSERT_EQUALS(std::get<0>(m.value()).getValue(), 2U); + TS_ASSERT_EQUALS(std::get<1>(m.value()).getValue(), 0x01020304); TS_ASSERT(std::get<2>(m.value()).isMissing()); TS_ASSERT_EQUALS(field.length(), Buf1Size - 1U); } while (false); @@ -276,10 +277,10 @@ void FieldsTestSuite2::test2() TS_ASSERT_EQUALS(es, comms::ErrorStatus::Success); TS_ASSERT_EQUALS(field.currentField(), 1U); auto& m = field.accessField<1>(); - TS_ASSERT_EQUALS(m.field_key().value(), 2U); - TS_ASSERT_EQUALS(std::get<0>(m.field_value().value()).value(), 0x01020304); - TS_ASSERT(std::get<1>(m.field_value().value()).doesExist()); - TS_ASSERT_EQUALS(std::get<1>(m.field_value().value()).field().value(), 0x05); + TS_ASSERT_EQUALS(m.field_key().getValue(), 2U); + TS_ASSERT_EQUALS(std::get<0>(m.field_value().getValue()).getValue(), 0x01020304); + TS_ASSERT(std::get<1>(m.field_value().getValue()).doesExist()); + TS_ASSERT_EQUALS(std::get<1>(m.field_value().getValue()).field().getValue(), 0x05); TS_ASSERT_EQUALS(field.length(), Buf1Size); } while (false); @@ -295,8 +296,8 @@ void FieldsTestSuite2::test2() TS_ASSERT_EQUALS(es, comms::ErrorStatus::Success); TS_ASSERT_EQUALS(field.currentField(), 1U); auto& m = field.accessField<1>(); - TS_ASSERT_EQUALS(m.field_key().value(), 2U); - TS_ASSERT_EQUALS(std::get<0>(m.field_value().value()).value(), 0x01020304); + TS_ASSERT_EQUALS(m.field_key().getValue(), 2U); + TS_ASSERT_EQUALS(std::get<0>(m.field_value().getValue()).getValue(), 0x01020304); TS_ASSERT(std::get<1>(m.field_value().value()).isMissing()); TS_ASSERT_EQUALS(field.length(), Buf1Size - 1U); } while (false); @@ -885,8 +886,8 @@ void FieldsTestSuite2::test10() auto es = field.read(readIter, Buf1Size); TS_ASSERT_EQUALS(es, comms::ErrorStatus::Success); TS_ASSERT_EQUALS(field.currentField(), 0U); - TS_ASSERT_EQUALS(field.accessField_mem1().field_key().value(), 1U); - TS_ASSERT_EQUALS(field.accessField_mem1().field_val().value(), 0x0203); + TS_ASSERT_EQUALS(field.accessField_mem1().field_key().getValue(), 1U); + TS_ASSERT_EQUALS(field.accessField_mem1().field_val().getValue(), 0x0203); TS_ASSERT_EQUALS(field.length(), 3U); } while (false); } @@ -2029,8 +2030,8 @@ void FieldsTestSuite2::test30() auto es = field.read(readIter, Buf1Size); TS_ASSERT_EQUALS(es, comms::ErrorStatus::Success); TS_ASSERT_EQUALS(field.currentField(), 0U); - TS_ASSERT_EQUALS(field.accessField_mem1().field_key().value(), 1U); - TS_ASSERT_EQUALS(field.accessField_mem1().field_val().value(), 0x0203); + TS_ASSERT_EQUALS(field.accessField_mem1().field_key().getValue(), 1U); + TS_ASSERT_EQUALS(field.accessField_mem1().field_val().getValue(), 0x0203); TS_ASSERT_EQUALS(field.length(), 3U); } while (false); } From 559f6a530db68d1f82edfcd4c76505dd03da72d4 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sun, 27 Oct 2024 13:56:19 +1000 Subject: [PATCH 03/17] Updating next version to be v5.3 --- include/comms/version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/comms/version.h b/include/comms/version.h index a1c6478..9f07d23 100644 --- a/include/comms/version.h +++ b/include/comms/version.h @@ -14,10 +14,10 @@ #define COMMS_MAJOR_VERSION 5U /// @brief Minor verion of the library -#define COMMS_MINOR_VERSION 2U +#define COMMS_MINOR_VERSION 3U /// @brief Patch level of the library -#define COMMS_PATCH_VERSION 8U +#define COMMS_PATCH_VERSION 0U /// @brief Macro to create numeric version as single unsigned number #define COMMS_MAKE_VERSION(major_, minor_, patch_) \ From e32f175f80c0e6bf9589c33cb62b559fba38ef7f Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sun, 27 Oct 2024 14:25:05 +1000 Subject: [PATCH 04/17] Updated documentation regarding usage of the comms::option::def::FixedValue. --- include/comms/Field.h | 7 ---- include/comms/field/ArrayList.h | 41 +++++++++++++++--------- include/comms/field/Bitfield.h | 15 +++++++-- include/comms/field/BitmaskValue.h | 22 +++++++++---- include/comms/field/Bundle.h | 16 ++++++--- include/comms/field/EnumValue.h | 30 ++++++++++------- include/comms/field/FloatValue.h | 24 +++++++++----- include/comms/field/IntValue.h | 34 ++++++++++++-------- include/comms/field/Optional.h | 14 ++++++-- include/comms/field/String.h | 34 ++++++++++++-------- include/comms/field/Variant.h | 18 ++++++++--- include/comms/field/adapter/FixedValue.h | 5 --- 12 files changed, 165 insertions(+), 95 deletions(-) diff --git a/include/comms/Field.h b/include/comms/Field.h index 3777c81..77f5348 100644 --- a/include/comms/Field.h +++ b/include/comms/Field.h @@ -111,13 +111,6 @@ class Field : public details::FieldBase return false; } - /// @brief Default indication of whether the application is prevented to updated the field's value - /// @return Always @b false - static constexpr bool fixedValue() - { - return false; - } - protected: /// @brief Write data into the output buffer. /// @details Use this function to write data to the the buffer diff --git a/include/comms/field/ArrayList.h b/include/comms/field/ArrayList.h index 8a4cdd8..5b593fd 100644 --- a/include/comms/field/ArrayList.h +++ b/include/comms/field/ArrayList.h @@ -164,27 +164,29 @@ using ArrayListBase = /// @tparam TOptions Zero or more options that modify/refine default behaviour /// of the field.@n /// Supported options are: -/// @li @ref comms::option::app::FixedSizeStorage -/// @li @ref comms::option::app::CustomStorageType -/// @li @ref comms::option::app::OrigDataView (valid only if TElement is integral type -/// of 1 byte size. -/// @li @ref comms::option::def::SequenceSizeFieldPrefix -/// @li @ref comms::option::def::SequenceSerLengthFieldPrefix -/// @li @ref comms::option::def::SequenceElemSerLengthFieldPrefix -/// @li @ref comms::option::def::SequenceElemFixedSerLengthFieldPrefix -/// @li @ref comms::option::def::SequenceSizeForcingEnabled -/// @li @ref comms::option::def::SequenceLengthForcingEnabled -/// @li @ref comms::option::def::SequenceFixedSize -/// @li @ref comms::option::def::SequenceTerminationFieldSuffix -/// @li @ref comms::option::def::SequenceTrailingFieldSuffix /// @li @ref comms::option::def::DefaultValueInitialiser +/// @li @ref comms::option::def::EmptySerialization +/// @li @ref comms::option::def::FailOnInvalid +/// @li @ref comms::option::def::FieldType +/// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh -/// @li @ref comms::option::def::FailOnInvalid /// @li @ref comms::option::def::IgnoreInvalid -/// @li @ref comms::option::def::EmptySerialization +/// @li @ref comms::option::def::SequenceElemFixedSerLengthFieldPrefix +/// @li @ref comms::option::def::SequenceElemSerLengthFieldPrefix +/// @li @ref comms::option::def::SequenceFixedSize +/// @li @ref comms::option::def::SequenceLengthForcingEnabled +/// @li @ref comms::option::def::SequenceSerLengthFieldPrefix +/// @li @ref comms::option::def::SequenceSizeFieldPrefix +/// @li @ref comms::option::def::SequenceSizeForcingEnabled +/// @li @ref comms::option::def::SequenceTerminationFieldSuffix +/// @li @ref comms::option::def::SequenceTrailingFieldSuffix /// @li @ref comms::option::def::VersionStorage -/// @li @ref comms::option::def::FieldType +/// @li @ref comms::option::app::CustomStorageType +/// @li @ref comms::option::app::FixedSizeStorage +/// @li @ref comms::option::app::OrigDataView (valid only if TElement is integral type +/// of 1 byte size. + /// @extends comms::Field /// @headerfile comms/field/ArrayList.h template @@ -353,6 +355,13 @@ class ArrayList : public details::ArrayListBasestd::numeric_limits<std::size_t>\::max() is returned. diff --git a/include/comms/field/Bitfield.h b/include/comms/field/Bitfield.h index 22c58aa..a43969f 100644 --- a/include/comms/field/Bitfield.h +++ b/include/comms/field/Bitfield.h @@ -70,12 +70,14 @@ namespace field /// @tparam TOptions Zero or more options that modify/refine default behaviour /// of the field.@n /// Supported options are: -/// @li @ref comms::option::def::HasCustomRead -/// @li @ref comms::option::def::HasCustomRefresh /// @li @ref comms::option::def::EmptySerialization -/// @li @ref comms::option::def::VersionStorage /// @li @ref comms::option::def::FieldType +/// @li @ref comms::option::def::FixedValue +/// @li @ref comms::option::def::HasCustomRead +/// @li @ref comms::option::def::HasCustomRefresh /// @li @ref comms::option::def::HasVersionDependentMembers +/// @li @ref comms::option::def::VersionStorage + /// @pre TMember is a variant of std::tuple, that contains other fields. /// @pre Every field member specifies its length in bits using /// @ref comms::option::def::FixedBitLength option. @@ -178,6 +180,13 @@ class Bitfield : public return ParsedOptions::HasFieldType; } + /// @brief Compile time inquiry of whether @ref comms::option::def::FixedValue option + /// has been used. + static constexpr bool hasFixedValue() + { + return ParsedOptions::HasFixedValue; + } + /// @brief Retrieve number of bits specified member field consumes. /// @tparam TIdx Index of the member field. /// @return Number of bits, specified with @ref comms::option::def::FixedBitLength option diff --git a/include/comms/field/BitmaskValue.h b/include/comms/field/BitmaskValue.h index c5ab695..f2eb25d 100644 --- a/include/comms/field/BitmaskValue.h +++ b/include/comms/field/BitmaskValue.h @@ -79,18 +79,19 @@ using BitmaskUndertlyingTypeT = /// using MyField =comms::field::EnumValue >; /// @endcode /// Supported options are: -/// @li @ref comms::option::def::FixedLength -/// @li @ref comms::option::def::FixedBitLength -/// @li @ref comms::option::def::DefaultValueInitialiser or comms::option::def::DefaultNumValue. +/// @li @ref comms::option::def::AvailableLengthLimit /// @li @ref comms::option::def::BitmaskReservedBits. +/// @li @ref comms::option::def::DefaultValueInitialiser or comms::option::def::DefaultNumValue. +/// @li @ref comms::option::def::EmptySerialization +/// @li @ref comms::option::def::FailOnInvalid +/// @li @ref comms::option::def::FieldType +/// @li @ref comms::option::def::FixedBitLength +/// @li @ref comms::option::def::FixedLength +/// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh -/// @li @ref comms::option::def::FailOnInvalid /// @li @ref comms::option::def::IgnoreInvalid -/// @li @ref comms::option::def::EmptySerialization /// @li @ref comms::option::def::VersionStorage -/// @li @ref comms::option::def::AvailableLengthLimit -/// @li @ref comms::option::def::FieldType /// @extends comms::Field /// @headerfile comms/field/BitmaskValue.h /// @see COMMS_BITMASK_BITS() @@ -188,6 +189,13 @@ class BitmaskValue : public TFieldBase return ParsedOptions::HasFieldType; } + /// @brief Compile time inquiry of whether @ref comms::option::def::FixedValue option + /// has been used. + static constexpr bool hasFixedValue() + { + return ParsedOptions::HasFixedValue; + } + /// @brief Get access to underlying mask value storage. /// @return Const reference to the underlying stored value. const ValueType& value() const diff --git a/include/comms/field/Bundle.h b/include/comms/field/Bundle.h index 18246ab..8109973 100644 --- a/include/comms/field/Bundle.h +++ b/include/comms/field/Bundle.h @@ -36,13 +36,14 @@ namespace field /// of the field.@n /// Supported options are: /// @li @ref comms::option::def::DefaultValueInitialiser -/// @li @ref comms::option::def::RemLengthMemberField -/// @li @ref comms::option::def::HasCustomRead -/// @li @ref comms::option::def::HasCustomRefresh /// @li @ref comms::option::def::EmptySerialization -/// @li @ref comms::option::def::VersionStorage /// @li @ref comms::option::def::FieldType +/// @li @ref comms::option::def::FixedValue +/// @li @ref comms::option::def::HasCustomRead +/// @li @ref comms::option::def::HasCustomRefresh /// @li @ref comms::option::def::HasVersionDependentMembers +/// @li @ref comms::option::def::RemLengthMemberField +/// @li @ref comms::option::def::VersionStorage /// @extends comms::Field /// @headerfile comms/field/Bundle.h /// @see @ref COMMS_FIELD_MEMBERS_NAMES() @@ -144,6 +145,13 @@ class Bundle : public return ParsedOptions::HasFieldType; } + /// @brief Compile time inquiry of whether @ref comms::option::def::FixedValue option + /// has been used. + static constexpr bool hasFixedValue() + { + return ParsedOptions::HasFixedValue; + } + /// @brief Get access to the stored tuple of fields. ValueType& value() { diff --git a/include/comms/field/EnumValue.h b/include/comms/field/EnumValue.h index 007f580..2234a47 100644 --- a/include/comms/field/EnumValue.h +++ b/include/comms/field/EnumValue.h @@ -49,23 +49,24 @@ namespace field /// defined to be std::uint16_t. The value is serialised using big endian /// notation because base field class receives comms::option::def::BigEndian option.@n /// Supported options are: -/// @li @ref comms::option::def::FixedLength -/// @li @ref comms::option::def::FixedBitLength -/// @li @ref comms::option::def::VarLength -/// @li @ref comms::option::def::NumValueSerOffset +/// @li @ref comms::option::def::AvailableLengthLimit /// @li @ref comms::option::def::DefaultValueInitialiser or @ref comms::option::def::DefaultNumValue. -/// @li @ref comms::option::def::ValidNumValueRange, @ref comms::option::def::ValidNumValue, -/// @ref comms::option::def::ValidBigUnsignedNumValueRange, @ref comms::option::def::ValidBigUnsignedNumValue -/// @li @ref comms::option::def::ValidRangesClear +/// @li @ref comms::option::def::EmptySerialization +/// @li @ref comms::option::def::FailOnInvalid +/// @li @ref comms::option::def::FieldType +/// @li @ref comms::option::def::FixedBitLength +/// @li @ref comms::option::def::FixedLength +/// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh -/// @li @ref comms::option::def::FailOnInvalid /// @li @ref comms::option::def::IgnoreInvalid -/// @li @ref comms::option::def::EmptySerialization /// @li @ref comms::option::def::InvalidByDefault +/// @li @ref comms::option::def::NumValueSerOffset +/// @li @ref comms::option::def::ValidNumValueRange, @ref comms::option::def::ValidNumValue, +/// @ref comms::option::def::ValidBigUnsignedNumValueRange, @ref comms::option::def::ValidBigUnsignedNumValue +/// @li @ref comms::option::def::ValidRangesClear +/// @li @ref comms::option::def::VarLength /// @li @ref comms::option::def::VersionStorage -/// @li @ref comms::option::def::AvailableLengthLimit -/// @li @ref comms::option::def::FieldType /// @extends comms::Field /// @headerfile comms/field/Bundle.h template @@ -145,6 +146,13 @@ class EnumValue : public details::AdaptBasicFieldT @@ -135,7 +136,14 @@ class FloatValue : public details::AdaptBasicFieldT @@ -175,7 +176,14 @@ class IntValue : public details::AdaptBasicFieldT static constexpr bool hasVarLength() { return ParsedOptions::HasVarLengthLimits; - } + } + + /// @brief Compile time inquiry of whether @ref comms::option::def::FixedValue option + /// has been used. + static constexpr bool hasFixedValue() + { + return ParsedOptions::HasFixedValue; + } /// @brief Scales value according to ratio specified in provided /// @ref comms::option::def::ScalingRatio option. diff --git a/include/comms/field/Optional.h b/include/comms/field/Optional.h index 21f8dcf..f140050 100644 --- a/include/comms/field/Optional.h +++ b/include/comms/field/Optional.h @@ -32,12 +32,13 @@ namespace field /// Supported options are: /// @li @ref comms::option::def::DefaultValueInitialiser, @ref comms::option::def::DefaultOptionalMode, /// @ref comms::option::def::OptionalMissingByDefault, or @ref comms::option::def::OptionalExistsByDefault. +/// @li @ref comms::option::def::FieldType +/// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh -/// @li @ref comms::option::def::VersionStorage -/// @li @ref comms::option::def::FieldType -/// @li @ref comms::option::def::MissingOnReadFail /// @li @ref comms::option::def::MissingOnInvalid +/// @li @ref comms::option::def::MissingOnReadFail +/// @li @ref comms::option::def::VersionStorage /// @extends comms::Field /// @headerfile comms/field/Optional.h template @@ -131,6 +132,13 @@ class Optional : public details::AdaptBasicFieldT, TOpti static constexpr bool hasFieldType() { return ParsedOptions::HasFieldType; + } + + /// @brief Compile time inquiry of whether @ref comms::option::def::FixedValue option + /// has been used. + static constexpr bool hasFixedValue() + { + return ParsedOptions::HasFixedValue; } /// @brief Check whether mode is equivalent to Mode::Tentative diff --git a/include/comms/field/String.h b/include/comms/field/String.h index 5817113..525de65 100644 --- a/include/comms/field/String.h +++ b/include/comms/field/String.h @@ -133,25 +133,26 @@ using StringBase = /// @tparam TOptions Zero or more options that modify/refine default behaviour /// of the field.@n /// Supported options are: -/// @li @ref comms::option::app::FixedSizeStorage -/// @li @ref comms::option::app::CustomStorageType -/// @li @ref comms::option::app::OrigDataView -/// @li @ref comms::option::def::SequenceSizeFieldPrefix -/// @li @ref comms::option::def::SequenceSerLengthFieldPrefix -/// @li @ref comms::option::def::SequenceSizeForcingEnabled -/// @li @ref comms::option::def::SequenceLengthForcingEnabled -/// @li @ref comms::option::def::SequenceFixedSize -/// @li @ref comms::option::def::SequenceTerminationFieldSuffix -/// @li @ref comms::option::def::SequenceTrailingFieldSuffix /// @li @ref comms::option::def::DefaultValueInitialiser +/// @li @ref comms::option::def::EmptySerialization +/// @li @ref comms::option::def::FailOnInvalid +/// @li @ref comms::option::def::FieldType +/// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh -/// @li @ref comms::option::def::FailOnInvalid /// @li @ref comms::option::def::IgnoreInvalid -/// @li @ref comms::option::def::EmptySerialization /// @li @ref comms::option::def::InvalidByDefault +/// @li @ref comms::option::def::SequenceFixedSize +/// @li @ref comms::option::def::SequenceLengthForcingEnabled +/// @li @ref comms::option::def::SequenceSerLengthFieldPrefix +/// @li @ref comms::option::def::SequenceSizeFieldPrefix +/// @li @ref comms::option::def::SequenceSizeForcingEnabled +/// @li @ref comms::option::def::SequenceTerminationFieldSuffix +/// @li @ref comms::option::def::SequenceTrailingFieldSuffix /// @li @ref comms::option::def::VersionStorage -/// @li @ref comms::option::def::FieldType +/// @li @ref comms::option::app::CustomStorageType +/// @li @ref comms::option::app::FixedSizeStorage +/// @li @ref comms::option::app::OrigDataView /// @extends comms::Field /// @headerfile comms/field/String.h template @@ -301,6 +302,13 @@ class String : public details::StringBase return ParsedOptions::HasSequenceFixedSize; } + /// @brief Compile time inquiry of whether @ref comms::option::def::FixedValue option + /// has been used. + static constexpr bool hasFixedValue() + { + return ParsedOptions::HasFixedValue; + } + /// @brief Compile time inquiry of fixed size provided via @ref comms::option::def::SequenceFixedSize option. /// @details If the @ref comms::option::def::SequenceFixedSize option hasn't been used /// std::numeric_limits<std::size_t>\::max() is returned. diff --git a/include/comms/field/Variant.h b/include/comms/field/Variant.h index c6c08c2..f00986f 100644 --- a/include/comms/field/Variant.h +++ b/include/comms/field/Variant.h @@ -51,17 +51,18 @@ namespace field /// @li @ref comms::option::def::DefaultVariantIndex - By default the Variant field /// doesn't have any valid contents. This option may be used to specify /// the index of the default member field. +/// @li @ref comms::option::def::EmptySerialization - Force empty serialization. +/// @li @ref comms::option::def::FieldType - Set actual field type +/// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead - Mark field to have custom read /// functionality /// @li @ref comms::option::def::HasCustomRefresh - Mark field to have custom /// refresh functionality. -/// @li @ref comms::option::def::EmptySerialization - Force empty serialization. -/// @li @ref comms::option::def::VersionStorage - Add version storage. -/// @li @ref comms::option::def::FieldType - Set actual field type +/// @li @ref comms::option::def::HasVersionDependentMembers /// @li @ref comms::option::def::VariantHasCustomResetOnDestruct - avoid calling /// default @ref comms::field::Variant::reset() "reset()" on destruction, assume /// it is called by the extending class destructor. -/// @li @ref comms::option::def::HasVersionDependentMembers +/// @li @ref comms::option::def::VersionStorage - Add version storage. /// @extends comms::Field /// @headerfile comms/field/Variant.h /// @see COMMS_VARIANT_MEMBERS_NAMES() @@ -166,7 +167,14 @@ class Variant : public static constexpr bool hasFieldType() { return ParsedOptions::HasFieldType; - } + } + + /// @brief Compile time inquiry of whether @ref comms::option::def::FixedValue option + /// has been used. + static constexpr bool hasFixedValue() + { + return ParsedOptions::HasFixedValue; + } /// @brief Get access to the internal storage buffer. /// @details Should not be used in normal operation. diff --git a/include/comms/field/adapter/FixedValue.h b/include/comms/field/adapter/FixedValue.h index 5573144..34cd70f 100644 --- a/include/comms/field/adapter/FixedValue.h +++ b/include/comms/field/adapter/FixedValue.h @@ -32,11 +32,6 @@ class FixedValue : public TBase template void setValue(U&& val) = delete; - static constexpr bool fixedValue() - { - return true; - } - private: using BaseImpl::setValue; From 65d38eed30fbfceecf2cd987422dc3889a78229b Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sun, 27 Oct 2024 14:55:29 +1000 Subject: [PATCH 05/17] Added support for the comms::option::def::DisplayOffset option. --- include/comms/field/IntValue.h | 27 +++++++++++- include/comms/field/adapter/DisplayOffset.h | 44 +++++++++++++++++++ include/comms/field/basic/IntValue.h | 6 +++ include/comms/field/details/AdaptBasicField.h | 5 ++- include/comms/field/details/OptionsParser.h | 16 +++++++ include/comms/field/details/adapters.h | 1 + include/comms/options.h | 6 +++ test/Fields2.th | 18 ++++++++ 8 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 include/comms/field/adapter/DisplayOffset.h diff --git a/include/comms/field/IntValue.h b/include/comms/field/IntValue.h index 8c98388..999d846 100644 --- a/include/comms/field/IntValue.h +++ b/include/comms/field/IntValue.h @@ -48,6 +48,7 @@ namespace field /// @li @ref comms::option::def::AvailableLengthLimit /// @li @ref comms::option::def::DefaultValueInitialiser or @ref comms::option::def::DefaultNumValue. /// @li comms::option::def::EmptySerialization +/// @li @ref comms::option::def::DisplayOffset /// @li @ref comms::option::def::FailOnInvalid /// @li @ref comms::option::def::FieldType /// @li @ref comms::option::def::FixedBitLength @@ -183,7 +184,14 @@ class IntValue : public details::AdaptBasicFieldT static constexpr bool hasFixedValue() { return ParsedOptions::HasFixedValue; - } + } + + /// @brief Compile time inquiry of whether @ref comms::option::def::DisplayOffset option + /// has been used. + static constexpr bool hasDisplayOffset() + { + return ParsedOptions::HasDisplayOffset; + } /// @brief Scales value according to ratio specified in provided /// @ref comms::option::def::ScalingRatio option. @@ -258,6 +266,23 @@ class IntValue : public details::AdaptBasicFieldT BaseImpl::setValue(std::forward(val)); } + /// @brief Get display value + /// @details Retrieving value by taking into account the display offset provided by the @ref comms::option::def::DisplayOffset option + /// if such was used. + ValueType getDisplayValue() const + { + return static_cast(getValue() + BaseImpl::displayOffset()); + } + + /// @brief Set display value + /// @details Updating inner value by taking into account the display offset provided by the @ref comms::option::def::DisplayOffset option + /// if such was used. + template + void setDisplayValue(U&& val) + { + setValue(val - BaseImpl::displayOffset()); + } + /// @brief Get maximal numeric value the field can hold. static constexpr ValueType maxValue() { diff --git a/include/comms/field/adapter/DisplayOffset.h b/include/comms/field/adapter/DisplayOffset.h new file mode 100644 index 0000000..e7cf3fe --- /dev/null +++ b/include/comms/field/adapter/DisplayOffset.h @@ -0,0 +1,44 @@ +// +// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#pragma once + +#include +#include + +namespace comms +{ + +namespace field +{ + +namespace adapter +{ + + +template +class DisplayOffset : public TBase +{ + using BaseImpl = TBase; +public: + using DisplayOffsetType = typename TBase::DisplayOffsetType; + + static constexpr DisplayOffsetType displayOffset() + { + return static_cast(TOffset); + } +}; + +} // namespace adapter + +} // namespace field + +} // namespace comms + + + + diff --git a/include/comms/field/basic/IntValue.h b/include/comms/field/basic/IntValue.h index f8c14ab..1ba418b 100644 --- a/include/comms/field/basic/IntValue.h +++ b/include/comms/field/basic/IntValue.h @@ -33,6 +33,7 @@ class IntValue : public TFieldBase using SerialisedType = ValueType; using ScalingRatio = std::ratio<1, 1>; using CommsTag = comms::field::tag::Int; + using DisplayOffsetType = typename std::make_signed::type; IntValue() = default; @@ -130,6 +131,11 @@ class IntValue : public TFieldBase BaseImpl::writeData(toSerialised(value_), iter); } + static constexpr DisplayOffsetType displayOffset() + { + return static_cast(0); + } + private: ValueType value_ = static_cast(0); }; diff --git a/include/comms/field/details/AdaptBasicField.h b/include/comms/field/details/AdaptBasicField.h index 2ffb5d5..9874491 100644 --- a/include/comms/field/details/AdaptBasicField.h +++ b/include/comms/field/details/AdaptBasicField.h @@ -139,8 +139,11 @@ class AdaptBasicField using SerOffsetAdapted = typename ParsedOptions::template AdaptSerOffset; + using DisplayOffsetAdapted = + typename ParsedOptions::template AdaptDisplayOffset; + using VersionsRangeAdapted = - typename ParsedOptions::template AdaptVersionsRange; + typename ParsedOptions::template AdaptVersionsRange; using FixedLengthLimitAdapted = typename ParsedOptions::template AdaptFixedLengthLimit; diff --git a/include/comms/field/details/OptionsParser.h b/include/comms/field/details/OptionsParser.h index a0755d3..a580180 100644 --- a/include/comms/field/details/OptionsParser.h +++ b/include/comms/field/details/OptionsParser.h @@ -75,6 +75,7 @@ class OptionsParser<> static constexpr bool HasVariantCustomResetOnDestruct = false; static constexpr bool HasVersionDependentMembersForced = false; static constexpr bool HasFixedValue = false; + static constexpr bool HasDisplayOffset = false; using UnitsType = void; using ScalingRatio = std::ratio<1, 1>; @@ -194,6 +195,9 @@ class OptionsParser<> template using AdaptFixedValue = TField; + + template + using AdaptDisplayOffset = TField; }; template @@ -808,6 +812,18 @@ class OptionsParser< using AdaptFixedValue = comms::field::adapter::FixedValue; }; +template +class OptionsParser< + comms::option::def::DisplayOffset, + TOptions...> : public OptionsParser +{ +public: + static constexpr bool HasDisplayOffset = true; + static constexpr std::intmax_t DisplayOffset = TOffset; + + template + using AdaptDisplayOffset = comms::field::adapter::DisplayOffset; +}; template class OptionsParser< diff --git a/include/comms/field/details/adapters.h b/include/comms/field/details/adapters.h index 0c94fd6..fa9f09c 100644 --- a/include/comms/field/details/adapters.h +++ b/include/comms/field/details/adapters.h @@ -13,6 +13,7 @@ #include "comms/field/adapter/CustomRefreshWrap.h" #include "comms/field/adapter/CustomWriteWrap.h" #include "comms/field/adapter/DefaultValueInitialiser.h" +#include "comms/field/adapter/DisplayOffset.h" #include "comms/field/adapter/EmptySerialization.h" #include "comms/field/adapter/ExistsBetweenVersions.h" #include "comms/field/adapter/FailOnInvalid.h" diff --git a/include/comms/options.h b/include/comms/options.h index f71faf8..fbe7e3f 100644 --- a/include/comms/options.h +++ b/include/comms/options.h @@ -1243,6 +1243,12 @@ struct HasVersionDependentMembers {}; /// @brief Remove an ability to update field's value by the client code struct FixedValue {}; +/// @brief Option used to specify display offset for the @ref comms::field::IntValue field. +/// @tparam TOffset Display offset. +/// @headerfile comms/options.h +template +struct DisplayOffset {}; + } // namespace def namespace app diff --git a/test/Fields2.th b/test/Fields2.th index 474da64..68d3c4f 100644 --- a/test/Fields2.th +++ b/test/Fields2.th @@ -62,6 +62,7 @@ public: void test34(); void test35(); void test36(); + void test37(); private: template @@ -2220,6 +2221,23 @@ void FieldsTestSuite2::test36() TS_ASSERT_EQUALS(static_cast(std::distance(&Buf[0], readIter)), BufSize) } +void FieldsTestSuite2::test37() +{ + using Field = + comms::field::IntValue< + comms::Field, + std::uint16_t, + comms::option::def::DisplayOffset<2> + >; + + Field field; + + TS_ASSERT_EQUALS(field.getDisplayValue(), 2U); + field.setDisplayValue(10U); + TS_ASSERT_EQUALS(field.getDisplayValue(), 10U); + TS_ASSERT_EQUALS(field.getValue(), 8U); +} + template void FieldsTestSuite2::writeField( const TField& field, From ca2d43d4f15d78a948e2930bd1dded934cad3325 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Tue, 29 Oct 2024 08:24:05 +1000 Subject: [PATCH 06/17] Testing applying of the comms::option::def::FixedValue option to comms::field::BitmaskValue. --- test/Fields2.th | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/Fields2.th b/test/Fields2.th index 68d3c4f..84e6e7e 100644 --- a/test/Fields2.th +++ b/test/Fields2.th @@ -63,6 +63,7 @@ public: void test35(); void test36(); void test37(); + void test38(); private: template @@ -2238,6 +2239,22 @@ void FieldsTestSuite2::test37() TS_ASSERT_EQUALS(field.getValue(), 8U); } +void FieldsTestSuite2::test38() +{ + using Field = + comms::field::BitmaskValue< + comms::Field, + comms::option::def::FixedLength<1>, + comms::option::def::BitmaskReservedBits<0xff, 0x1>, + comms::option::def::DefaultNumValue<0x1> + >; + + Field field; + TS_ASSERT(field.valid()); + TS_ASSERT_EQUALS(field.getBitValue(0), true); + TS_ASSERT_EQUALS(field.getBitValue(1), false); +} + template void FieldsTestSuite2::writeField( const TField& field, From c93bad48c0e6d4da042927eca4b73c4a6bafef34 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Tue, 29 Oct 2024 09:15:05 +1000 Subject: [PATCH 07/17] Testing applying of the comms::option::def::FixedValue option to comms::field::BitmaskValue. --- test/Fields2.th | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/Fields2.th b/test/Fields2.th index 84e6e7e..e2ccf65 100644 --- a/test/Fields2.th +++ b/test/Fields2.th @@ -2245,6 +2245,7 @@ void FieldsTestSuite2::test38() comms::field::BitmaskValue< comms::Field, comms::option::def::FixedLength<1>, + comms::option::def::FixedValue, comms::option::def::BitmaskReservedBits<0xff, 0x1>, comms::option::def::DefaultNumValue<0x1> >; @@ -2253,6 +2254,8 @@ void FieldsTestSuite2::test38() TS_ASSERT(field.valid()); TS_ASSERT_EQUALS(field.getBitValue(0), true); TS_ASSERT_EQUALS(field.getBitValue(1), false); + + // field.setBitValue(1, true); // Must fail compilation } template From d8601fa7a25d6697a1aca2c58aa59f366ed3e260 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Fri, 22 Nov 2024 08:09:28 +1000 Subject: [PATCH 08/17] Added support for comms::option::def::HasName option. --- include/comms/Field.h | 7 +++++++ include/comms/field/ArrayList.h | 8 ++++++++ include/comms/field/Bitfield.h | 8 ++++++++ include/comms/field/BitmaskValue.h | 10 +++++++++- include/comms/field/Bundle.h | 8 ++++++++ include/comms/field/EnumValue.h | 10 +++++++++- include/comms/field/FloatValue.h | 8 ++++++++ include/comms/field/IntValue.h | 10 +++++++++- include/comms/field/Optional.h | 8 ++++++++ include/comms/field/String.h | 8 ++++++++ include/comms/field/Variant.h | 10 +++++++++- include/comms/field/details/OptionsParser.h | 10 ++++++++++ 12 files changed, 101 insertions(+), 4 deletions(-) diff --git a/include/comms/Field.h b/include/comms/Field.h index 77f5348..545b129 100644 --- a/include/comms/Field.h +++ b/include/comms/Field.h @@ -111,6 +111,13 @@ class Field : public details::FieldBase return false; } + /// @brief Check of whether the field class defines @b name() function + /// @return Always @b false + static constexpr bool hasName() + { + return false; + } + protected: /// @brief Write data into the output buffer. /// @details Use this function to write data to the the buffer diff --git a/include/comms/field/ArrayList.h b/include/comms/field/ArrayList.h index 5b593fd..d7ab5bc 100644 --- a/include/comms/field/ArrayList.h +++ b/include/comms/field/ArrayList.h @@ -171,6 +171,7 @@ using ArrayListBase = /// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh +/// @li @ref comms::option::def::HasName /// @li @ref comms::option::def::IgnoreInvalid /// @li @ref comms::option::def::SequenceElemFixedSerLengthFieldPrefix /// @li @ref comms::option::def::SequenceElemSerLengthFieldPrefix @@ -362,6 +363,13 @@ class ArrayList : public details::ArrayListBasestd::numeric_limits<std::size_t>\::max() is returned. diff --git a/include/comms/field/Bitfield.h b/include/comms/field/Bitfield.h index a43969f..6d50876 100644 --- a/include/comms/field/Bitfield.h +++ b/include/comms/field/Bitfield.h @@ -75,6 +75,7 @@ namespace field /// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh +/// @li @ref comms::option::def::HasName /// @li @ref comms::option::def::HasVersionDependentMembers /// @li @ref comms::option::def::VersionStorage @@ -187,6 +188,13 @@ class Bitfield : public return ParsedOptions::HasFixedValue; } + /// @brief Compile time inquiry of whether @ref comms::option::def::HasName option + /// has been used. + static constexpr bool hasName() + { + return ParsedOptions::HasName; + } + /// @brief Retrieve number of bits specified member field consumes. /// @tparam TIdx Index of the member field. /// @return Number of bits, specified with @ref comms::option::def::FixedBitLength option diff --git a/include/comms/field/BitmaskValue.h b/include/comms/field/BitmaskValue.h index f2eb25d..7c263bc 100644 --- a/include/comms/field/BitmaskValue.h +++ b/include/comms/field/BitmaskValue.h @@ -90,6 +90,7 @@ using BitmaskUndertlyingTypeT = /// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh +/// @li @ref comms::option::def::HasName /// @li @ref comms::option::def::IgnoreInvalid /// @li @ref comms::option::def::VersionStorage /// @extends comms::Field @@ -194,7 +195,14 @@ class BitmaskValue : public TFieldBase static constexpr bool hasFixedValue() { return ParsedOptions::HasFixedValue; - } + } + + /// @brief Compile time inquiry of whether @ref comms::option::def::HasName option + /// has been used. + static constexpr bool hasName() + { + return ParsedOptions::HasName; + } /// @brief Get access to underlying mask value storage. /// @return Const reference to the underlying stored value. diff --git a/include/comms/field/Bundle.h b/include/comms/field/Bundle.h index 8109973..4d74987 100644 --- a/include/comms/field/Bundle.h +++ b/include/comms/field/Bundle.h @@ -41,6 +41,7 @@ namespace field /// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh +/// @li @ref comms::option::def::HasName /// @li @ref comms::option::def::HasVersionDependentMembers /// @li @ref comms::option::def::RemLengthMemberField /// @li @ref comms::option::def::VersionStorage @@ -152,6 +153,13 @@ class Bundle : public return ParsedOptions::HasFixedValue; } + /// @brief Compile time inquiry of whether @ref comms::option::def::HasName option + /// has been used. + static constexpr bool hasName() + { + return ParsedOptions::HasName; + } + /// @brief Get access to the stored tuple of fields. ValueType& value() { diff --git a/include/comms/field/EnumValue.h b/include/comms/field/EnumValue.h index 2234a47..0b4b768 100644 --- a/include/comms/field/EnumValue.h +++ b/include/comms/field/EnumValue.h @@ -59,6 +59,7 @@ namespace field /// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh +/// @li @ref comms::option::def::HasName /// @li @ref comms::option::def::IgnoreInvalid /// @li @ref comms::option::def::InvalidByDefault /// @li @ref comms::option::def::NumValueSerOffset @@ -151,7 +152,14 @@ class EnumValue : public details::AdaptBasicFieldT static constexpr bool hasDisplayOffset() { return ParsedOptions::HasDisplayOffset; - } + } + + /// @brief Compile time inquiry of whether @ref comms::option::def::HasName option + /// has been used. + static constexpr bool hasName() + { + return ParsedOptions::HasName; + } /// @brief Scales value according to ratio specified in provided /// @ref comms::option::def::ScalingRatio option. diff --git a/include/comms/field/Optional.h b/include/comms/field/Optional.h index f140050..41ad3a0 100644 --- a/include/comms/field/Optional.h +++ b/include/comms/field/Optional.h @@ -36,6 +36,7 @@ namespace field /// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh +/// @li @ref comms::option::def::HasName /// @li @ref comms::option::def::MissingOnInvalid /// @li @ref comms::option::def::MissingOnReadFail /// @li @ref comms::option::def::VersionStorage @@ -141,6 +142,13 @@ class Optional : public details::AdaptBasicFieldT, TOpti return ParsedOptions::HasFixedValue; } + /// @brief Compile time inquiry of whether @ref comms::option::def::HasName option + /// has been used. + static constexpr bool hasName() + { + return ParsedOptions::HasName; + } + /// @brief Check whether mode is equivalent to Mode::Tentative /// @details Convenience wrapper for getMode(), equivalent to /// @code return getMode() == Mode::Tentative; @endcode diff --git a/include/comms/field/String.h b/include/comms/field/String.h index 525de65..9d62bb2 100644 --- a/include/comms/field/String.h +++ b/include/comms/field/String.h @@ -140,6 +140,7 @@ using StringBase = /// @li @ref comms::option::def::FixedValue /// @li @ref comms::option::def::HasCustomRead /// @li @ref comms::option::def::HasCustomRefresh +/// @li @ref comms::option::def::HasName /// @li @ref comms::option::def::IgnoreInvalid /// @li @ref comms::option::def::InvalidByDefault /// @li @ref comms::option::def::SequenceFixedSize @@ -309,6 +310,13 @@ class String : public details::StringBase return ParsedOptions::HasFixedValue; } + /// @brief Compile time inquiry of whether @ref comms::option::def::HasName option + /// has been used. + static constexpr bool hasName() + { + return ParsedOptions::HasName; + } + /// @brief Compile time inquiry of fixed size provided via @ref comms::option::def::SequenceFixedSize option. /// @details If the @ref comms::option::def::SequenceFixedSize option hasn't been used /// std::numeric_limits<std::size_t>\::max() is returned. diff --git a/include/comms/field/Variant.h b/include/comms/field/Variant.h index f00986f..3d94972 100644 --- a/include/comms/field/Variant.h +++ b/include/comms/field/Variant.h @@ -58,6 +58,7 @@ namespace field /// functionality /// @li @ref comms::option::def::HasCustomRefresh - Mark field to have custom /// refresh functionality. +/// @li @ref comms::option::def::HasName /// @li @ref comms::option::def::HasVersionDependentMembers /// @li @ref comms::option::def::VariantHasCustomResetOnDestruct - avoid calling /// default @ref comms::field::Variant::reset() "reset()" on destruction, assume @@ -174,7 +175,14 @@ class Variant : public static constexpr bool hasFixedValue() { return ParsedOptions::HasFixedValue; - } + } + + /// @brief Compile time inquiry of whether @ref comms::option::def::HasName option + /// has been used. + static constexpr bool hasName() + { + return ParsedOptions::HasName; + } /// @brief Get access to the internal storage buffer. /// @details Should not be used in normal operation. diff --git a/include/comms/field/details/OptionsParser.h b/include/comms/field/details/OptionsParser.h index a580180..c20b1fe 100644 --- a/include/comms/field/details/OptionsParser.h +++ b/include/comms/field/details/OptionsParser.h @@ -76,6 +76,7 @@ class OptionsParser<> static constexpr bool HasVersionDependentMembersForced = false; static constexpr bool HasFixedValue = false; static constexpr bool HasDisplayOffset = false; + static constexpr bool HasName = false; using UnitsType = void; using ScalingRatio = std::ratio<1, 1>; @@ -825,6 +826,15 @@ class OptionsParser< using AdaptDisplayOffset = comms::field::adapter::DisplayOffset; }; +template +class OptionsParser< + comms::option::def::HasName, + TOptions...> : public OptionsParser +{ +public: + static constexpr bool HasName = true; +}; + template class OptionsParser< comms::option::app::EmptyOption, From 4c3e50be1fdf57029c6c0a5d663e264a1cff3708 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Fri, 22 Nov 2024 09:31:25 +1000 Subject: [PATCH 09/17] Supporting override of the MsgDataLayer field. --- doxygen/page_prot_stack.dox | 110 +++++++----------- doxygen/page_use_prot.dox | 30 ++--- include/comms/protocol/MsgDataLayer.h | 22 ++-- .../details/MsgDataLayerOptionsParser.h | 75 ++++++++++++ 4 files changed, 141 insertions(+), 96 deletions(-) create mode 100644 include/comms/protocol/details/MsgDataLayerOptionsParser.h diff --git a/doxygen/page_prot_stack.dox b/doxygen/page_prot_stack.dox index 05ca34c..7756c87 100644 --- a/doxygen/page_prot_stack.dox +++ b/doxygen/page_prot_stack.dox @@ -64,17 +64,17 @@ /// @code /// using MyMsgData = comms::protocol::MsgDataLayer<>; /// @endcode -/// @b NOTE, that @ref comms::protocol::MsgDataLayer receives a template parameter. +/// @b NOTE, that @ref comms::protocol::MsgDataLayer receives a template parameter of the extending options. /// In the normal operation, when transport frame fields are not stored anywhere, /// it is never used. However, there is way to perform @b read operation while /// caching transport fields (by using @ref comms::protocol::MsgDataLayer::readFieldsCached() "readFieldsCached()") -/// The payload field is defined to be @ref comms::field::ArrayList of raw data -/// (see @ref comms::protocol::MsgDataLayer::Field). It would be wise to provide -/// a way to supply extra options to choose storage type for this field, -/// when defining protocol stack. As the result the definition becomes: +/// The default payload field is defined to be @b comms::field::ArrayList of raw data +/// (see @ref comms::protocol::MsgDataLayer::Field). It is possible to override +/// the default definition of some other variant of the @b comms::field::ArrayList: /// @code -/// template -/// using MyMsgData = comms::protocol::MsgDataLayer; +/// using CustomDataField = comms::field::ArrayList<...>; +/// +/// using MyMsgData = comms::protocol::MsgDataLayer>; /// @endcode /// /// @section page_prot_stack_tutorial_id ID Layer @@ -131,15 +131,14 @@ /// @code /// template < /// typename TMessage, // common interface class defined by the application -/// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TInputMessages = AllMessages // Input messages that need to be recognised /// > /// using MyMsgId = /// comms::protocol::MsgIdLayer< /// MsgIdField, /// TMessage, /// TInputMessages, -/// MyMsgData +/// MyMsgData<> /// >; /// @endcode /// @b NOTE, that all the input messages are passed as a template parameter with @@ -171,15 +170,14 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// using MyMsgId = /// comms::protocol::MsgIdLayer< /// MsgIdField, /// TMessage, /// TInputMessages, -/// MyMsgData, +/// MyMsgData<>, /// TAllocationOptions /// >; /// @endcode @@ -272,13 +270,12 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// using MyMsgSize = /// comms::protocol::MsgSizeLayer< /// RemSizeField, -/// MyMsgId +/// MyMsgId /// >; /// /// } // namespace my_protocol @@ -312,14 +309,13 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// using MyChecksum = /// comms::protocol::ChecksumLayer< /// ChecksumField, /// comms::protocol::checksum::Crc_CCITT -/// MyMsgSize +/// MyMsgSize /// >; /// /// } // my_protocol @@ -351,17 +347,17 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// using MyChecksum = /// comms::protocol::ChecksumLayer< /// ChecksumField, /// comms::protocol::checksum::Crc_CCITT -/// MyMsgSize, +/// MyMsgSize, /// comms::option::def::ChecksumLayerVerifyBeforeRead /// >; /// +/// } // namespace my_protocol /// @endcode /// /// @section page_prot_stack_tutorial_sync SYNC Layer @@ -385,13 +381,12 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// using MySyncPrefix = /// comms::protocol::SyncPrefixLayer< /// SyncField, -/// MyChecksum +/// MyChecksum /// >; /// /// } // namespace my_protocol @@ -435,37 +430,31 @@ /// // Field describing protocol version. /// using MyVersionField = comms::field::IntValue; /// -/// // Payload control layer -/// template < -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage -/// > -/// using MyMsgData = comms::protocol::MsgDataLayer; +/// using MyMsgData = comms::protocol::MsgDataLayer<>; /// /// // Version control layer /// template < -/// typename TMessage, // common interface class defined by the application -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TMessage // common interface class defined by the application /// > /// using MyVersion = /// comms::protocol::TransportValueLayer< /// MyVersionField, /// TMessage::TransportFieldIdx_version, -/// MyMsgData +/// MyMsgData<> /// >; /// /// // Id handling layer /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// using MyMsgId = /// comms::protocol::MsgIdLayer< /// MsgIdField, /// TMessage, /// TInputMessages, -/// MyVersion, +/// MyVersion, /// TAllocationOptions /// >; /// @@ -473,13 +462,12 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// using MyMsgSize = /// comms::protocol::MsgSizeLayer< /// RemSizeField, -/// MyMsgId +/// MyMsgId /// >; /// @endcode /// @b NOTE, that in the example above @b VERSION layer follows @b ID. In this case @@ -518,14 +506,13 @@ /// @code /// // Version control layer /// template < -/// typename TMessage, // common interface class defined by the application -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TMessage // common interface class defined by the application /// > /// using MyVersion = /// comms::protocol::TransportValueLayer< /// MyVersionField, /// TMessage::TransportFieldIdx_version, -/// MyMsgData, +/// MyMsgData<>, /// comms::option::def::PseudoValue /// >; /// @endcode @@ -541,10 +528,9 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > -/// using ProtocolStack = MySyncPrefix ; +/// using ProtocolStack = MySyncPrefix ; /// @endcode /// Every protocol layer provides an ability to access the next one using /// @ref comms::protocol::ProtocolLayerBase::nextLayer() "nextLayer()" member function. @@ -554,11 +540,10 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// struct ProtocolStack : public -/// MySyncPrefix +/// MySyncPrefix /// { /// COMMS_PROTOCOL_LAYERS_ACCESS(payload, id, size, checksum, sync); /// }; @@ -568,11 +553,10 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// struct ProtocolStack : public -/// MySyncPrefix +/// MySyncPrefix /// { /// // Access to PAYLOAD layer /// decltype(auto) layer_payload(); @@ -622,13 +606,12 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// class ProtocolStack : public -/// MySyncPrefix +/// MySyncPrefix /// { -/// using Base = MySyncPrefix; +/// using Base = MySyncPrefix; /// public: /// COMMS_PROTOCOL_LAYERS_ACCESS(payload, id, size, checksum, sync); /// }; @@ -642,11 +625,10 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// class ProtocolStack : public -/// MySyncPrefix +/// MySyncPrefix /// { /// #ifdef COMMS_MUST_DEFINE_BASE /// using Base = ... @@ -664,14 +646,13 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// class ProtocolStack : public -/// MySyncPrefix +/// MySyncPrefix /// { /// // Base type definition is a requirement -/// using Base = MySyncPrefix +/// using Base = MySyncPrefix /// public: /// COMMS_PROTOCOL_LAYERS_NAMES(payload, id, size, checksum, sync); /// }; @@ -681,11 +662,10 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// struct ProtocolStack : public -/// MySyncPrefix +/// MySyncPrefix /// { /// using Layer_payload = ...; /// decltype(auto) layer_payload(); diff --git a/doxygen/page_use_prot.dox b/doxygen/page_use_prot.dox index d5f5ca3..7c315e7 100644 --- a/doxygen/page_use_prot.dox +++ b/doxygen/page_use_prot.dox @@ -84,6 +84,7 @@ /// { /// /// class Message : public comms::Message +/// { /// // comms::Field class with the same endian option. /// // Can (and should) be provided as a base class to all the /// // fields. @@ -2232,11 +2233,10 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for comms::protocol::MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for comms::protocol::MsgIdLayer /// > /// struct ProtocolStack : public -/// MySyncPrefix +/// MySyncPrefix /// { /// COMMS_PROTOCOL_LAYERS_ACCESS(...); /// }; @@ -2259,16 +2259,12 @@ /// possible to modify such behaviour by using @ref comms::option::app::InPlaceAllocation /// option. It will be explained in more details further below. /// -/// The fourth template parameter (@b TPayloadOptions) is irrelevant in -/// most cases. It has a meaning only when transport wrapping values are cached -/// for further analysis. It will also be explained in more details further below. -/// /// @b NOTE, that @b ProtocolStack definition is actually an alias to one /// of the classes from @ref comms::protocol namespace. To get a detailed /// information on available public API please reference to one of them, for /// example @ref comms::protocol::SyncPrefixLayer. /// -/// It may also happen, that the extra options (@b TAllocationOptions and @b TPayloadOptions) +/// It may also happen, that the extra options (@b TAllocationOptions) /// are defined inside the recommended @b DefaultOptions structure and be /// passed to the layers definitions themselves. Such approach is undertaken by /// the **commsdsl2comms** code generator application from the @@ -2565,8 +2561,7 @@ /// The layer class that is responsible to read/write payload data /// (see @ref comms::protocol::MsgDataLayer) uses @ref comms::field::ArrayList /// to define a field that will store the payload when "caching" operations are -/// performed. That's where the fourth template parameter (@b TPayloadOptions) -/// to @b ProtocolStack definition comes in play. +/// performed. /// In case the the input / output buffer outlives the @b AllFields /// object, consider passing @ref comms::option::app::OrigDataView option as the /// fourth template parameter to @b ProtocolStack definition, which will pass it to @@ -2588,11 +2583,10 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// struct ProtocolStack : public -/// MySyncPrefix +/// MySyncPrefix /// { /// COMMS_PROTOCOL_LAYERS_ACCESS(payload, id, size, checksum, sync); /// }; @@ -2606,11 +2600,10 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// struct ProtocolStack : public -/// MySyncPrefix +/// MySyncPrefix /// { /// // Access to PAYLOAD layer /// decltype(auto) layer_payload(); @@ -3131,11 +3124,10 @@ /// template < /// typename TMessage, // common interface class defined by the application /// typename TInputMessages = AllMessages, // Input messages that need to be recognised -/// typename TAllocationOptions = comms::option::app::EmptyOption, // Extra options for MsgIdLayer -/// typename TPayloadOptions = comms::option::app::EmptyOption // Extra options for payload storage +/// typename TAllocationOptions = comms::option::app::EmptyOption // Extra options for MsgIdLayer /// > /// struct ProtocolStack : public -/// MySizePrefix +/// MySizePrefix /// { /// COMMS_PROTOCOL_LAYERS_ACCESS(payload, version, id, size); /// }; diff --git a/include/comms/protocol/MsgDataLayer.h b/include/comms/protocol/MsgDataLayer.h index 7f04bfc..0a8e53e 100644 --- a/include/comms/protocol/MsgDataLayer.h +++ b/include/comms/protocol/MsgDataLayer.h @@ -19,8 +19,8 @@ #include "comms/MessageBase.h" #include "comms/details/detect.h" #include "comms/details/tag.h" -#include "comms/field/ArrayList.h" #include "comms/field/IntValue.h" +#include "comms/protocol/details/MsgDataLayerOptionsParser.h" #include "comms/util/Tuple.h" #include "comms/util/type_traits.h" #include "ProtocolLayerBase.h" @@ -33,16 +33,17 @@ namespace protocol /// @brief Message data layer. /// @details Must always be the last layer in protocol stack. -/// @tparam TExtraOpts Extra options to inner @ref Field type which is defined -/// to be @ref comms::field::ArrayList. This field is used only in @ref -/// AllFields type and @ref readFieldsCached() member function. +/// @tparam TOptions Default functionality extension options. Supported options are: +/// @li @ref comms::option::def::FieldType - Use this option to override default field type. /// @headerfile comms/protocol/MsgDataLayer.h -template +template class MsgDataLayer { + using ParsedOptionsInternal = details::MsgDataLayerOptionsParser; + public: /// @brief Type of this layer - using ThisLayer = MsgDataLayer; + using ThisLayer = MsgDataLayer; /// @brief Get access to this layer object. ThisLayer& thisLayer() @@ -59,12 +60,9 @@ class MsgDataLayer /// @brief Raw data field type. /// @details This field is used only in @ref AllFields field and @ref /// readFieldsCached() member function. - using Field = - comms::field::ArrayList< - comms::Field, - std::uint8_t, - TExtraOpts... - >; + /// If not specified using @ref comms::option::def::FieldType option then + /// a variant of @b comms::field::ArrayList for @b std::uint8_t is used. + using Field = ParsedOptionsInternal::FieldType; /// @brief All fields of the remaining transport layers, contains only @ref Field. using AllFields = std::tuple; diff --git a/include/comms/protocol/details/MsgDataLayerOptionsParser.h b/include/comms/protocol/details/MsgDataLayerOptionsParser.h new file mode 100644 index 0000000..786ef96 --- /dev/null +++ b/include/comms/protocol/details/MsgDataLayerOptionsParser.h @@ -0,0 +1,75 @@ +// +// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#pragma once + +#include "comms/Field.h" +#include "comms/field/ArrayList.h" +#include "comms/options.h" + +namespace comms +{ + +namespace protocol +{ + +namespace details +{ + +class MsgDataLayerField : public + comms::field::ArrayList< + comms::Field, + std::uint8_t, + comms::option::HasName + > +{ +public: + static const char* name() + { + return "Data"; + } +}; + +template +class MsgDataLayerOptionsParser; + +template <> +class MsgDataLayerOptionsParser<> +{ +public: + static constexpr bool HasFieldType = false; + using FieldType = MsgDataLayerField; +}; + +template +class MsgDataLayerOptionsParser, TOptions...> : + public MsgDataLayerOptionsParser +{ +public: + static constexpr bool HasFieldType = true; + using FieldType = TField; +}; + +template +class MsgDataLayerOptionsParser< + comms::option::app::EmptyOption, + TOptions...> : public MsgDataLayerOptionsParser +{ +}; + +template +class MsgDataLayerOptionsParser< + std::tuple, + TOptions...> : public MsgDataLayerOptionsParser +{ +}; + +} // namespace details + +} // namespace protocol + +} // namespace comms From 9d9cd7fbab99acf8bc1d313180a543857d9869fe Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 23 Nov 2024 11:19:53 +1000 Subject: [PATCH 10/17] Fixing some builds. --- include/comms/protocol/MsgDataLayer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/comms/protocol/MsgDataLayer.h b/include/comms/protocol/MsgDataLayer.h index 0a8e53e..189e643 100644 --- a/include/comms/protocol/MsgDataLayer.h +++ b/include/comms/protocol/MsgDataLayer.h @@ -62,7 +62,7 @@ class MsgDataLayer /// readFieldsCached() member function. /// If not specified using @ref comms::option::def::FieldType option then /// a variant of @b comms::field::ArrayList for @b std::uint8_t is used. - using Field = ParsedOptionsInternal::FieldType; + using Field = typename ParsedOptionsInternal::FieldType; /// @brief All fields of the remaining transport layers, contains only @ref Field. using AllFields = std::tuple; From cdd08830b4c6e2805d3d6b8f2256c41e6548480f Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Wed, 4 Dec 2024 09:15:44 +1000 Subject: [PATCH 11/17] Added iterators constructor to std::util::ArrayView. --- include/comms/util/ArrayView.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/comms/util/ArrayView.h b/include/comms/util/ArrayView.h index 6dacda3..b8cc7c6 100644 --- a/include/comms/util/ArrayView.h +++ b/include/comms/util/ArrayView.h @@ -128,6 +128,15 @@ class ArrayView { } + /// @brief Construct out of iterators rande + template + ArrayView(TIter first, TIter last) noexcept + : data_(reinterpret_cast(&(*first))), + len_(static_cast(std::distance(first, last))) + { + COMMS_ASSERT(0 <= std::distance(first, last)); + } + /// @brief Destructor ~ArrayView() noexcept = default; From 9a32cc1680d4e112cf04269f6f219733a2884cae Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Thu, 5 Dec 2024 09:06:17 +1000 Subject: [PATCH 12/17] Added comms::util::construct() functions. --- include/comms/comms.h | 3 +- include/comms/util/StringView.h | 2 +- include/comms/util/assign.h | 2 +- include/comms/util/construct.h | 34 +++++++++++ include/comms/util/details/AssignHelper.h | 15 ++--- include/comms/util/details/ConstructHelper.h | 59 ++++++++++++++++++++ test/Util.th | 16 ++++++ 7 files changed, 119 insertions(+), 12 deletions(-) create mode 100644 include/comms/util/construct.h create mode 100644 include/comms/util/details/ConstructHelper.h diff --git a/include/comms/comms.h b/include/comms/comms.h index 095c153..9f7b58a 100644 --- a/include/comms/comms.h +++ b/include/comms/comms.h @@ -28,6 +28,7 @@ #include "comms/MsgDispatcher.h" #include "comms/GenericMessage.h" -#include "comms/util/detect.h" #include "comms/util/assign.h" +#include "comms/util/construct.h" +#include "comms/util/detect.h" #include "comms/util/type_traits.h" diff --git a/include/comms/util/StringView.h b/include/comms/util/StringView.h index 50f9180..6d01d1f 100644 --- a/include/comms/util/StringView.h +++ b/include/comms/util/StringView.h @@ -241,7 +241,7 @@ class StringView : public ArrayView return Base::operator[](pos); } - /// @brief Similar to std::string::at() + /// @brief Similar to std::string_view::at() /// @details Checks the range with @ref COMMS_ASSERT() macro without throwing exception. const_reference at(size_type pos) const { diff --git a/include/comms/util/assign.h b/include/comms/util/assign.h index 891739e..312194c 100644 --- a/include/comms/util/assign.h +++ b/include/comms/util/assign.h @@ -10,7 +10,7 @@ #pragma once -#include "details/AssignHelper.h" +#include "comms/util/details/AssignHelper.h" namespace comms { diff --git a/include/comms/util/construct.h b/include/comms/util/construct.h new file mode 100644 index 0000000..bf15fc4 --- /dev/null +++ b/include/comms/util/construct.h @@ -0,0 +1,34 @@ +// +// Copyright 2024 - 2024 (C). Alex Robenko. All rights reserved. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +/// @file +/// @brief Provides helper construct() function to allow easy construction of various collection types. + +#pragma once + +#include "comms/util/details/ConstructHelper.h" + +namespace comms +{ + +namespace util +{ + +/// @brief Construct collection objects given two range iterators +/// @details The function selects proper constructor of the selected type +/// @param[in] from Iterator to the first element of the range +/// @param[in] to Iterator to one behind the last element of the range. +template +T construct(TIter from, TIter to) +{ + return details::ConstructHelper::construct(from, to); +} + +} // namespace util + +} // namespace comms + diff --git a/include/comms/util/details/AssignHelper.h b/include/comms/util/details/AssignHelper.h index 183fb6b..7623512 100644 --- a/include/comms/util/details/AssignHelper.h +++ b/include/comms/util/details/AssignHelper.h @@ -5,9 +5,6 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -/// @file -/// Various compile-time detection functions of whether specific member functions and/or types exist - #pragma once #include @@ -110,12 +107,12 @@ class AssignHelper template static void assignInternal(T& obj, TIter from, TIter to, StdSpanTag) { - using ObjType = typename std::decay::type; - using ConstPointerType = typename ObjType::const_pointer; - using PointerType = typename ObjType::pointer; - auto fromPtr = const_cast(reinterpret_cast(&(*from))); - auto toPtr = const_cast(reinterpret_cast(&(*to))); - assignInternal(obj, fromPtr, toPtr, UsePtrSizeConstructorTag()); + // using ObjType = typename std::decay::type; + // using ConstPointerType = typename ObjType::const_pointer; + // using PointerType = typename ObjType::pointer; + // auto fromPtr = const_cast(reinterpret_cast(&(*from))); + // auto toPtr = const_cast(reinterpret_cast(&(*to))); + assignInternal(obj, from, to, UsePtrSizeConstructorTag()); } }; diff --git a/include/comms/util/details/ConstructHelper.h b/include/comms/util/details/ConstructHelper.h new file mode 100644 index 0000000..d66199b --- /dev/null +++ b/include/comms/util/details/ConstructHelper.h @@ -0,0 +1,59 @@ +// +// Copyright 2024 - 2024 (C). Alex Robenko. All rights reserved. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#pragma once + +#include "comms/CompileControl.h" + +#include + +#if COMMS_HAS_CPP20_SPAN +#include +#endif // #if COMMS_HAS_CPP20_SPAN + +namespace comms +{ + +namespace util +{ + +namespace details +{ + +template +class ConstructHelper +{ +public: + using RetType = T; + + template + static RetType construct(TIter from, TIter to) + { + return RetType(from, to); + } +}; + +#if COMMS_HAS_CPP20_SPAN +template +class ConstructHelper> +{ +public: + using RetType = std::span; + + template + static RetType construct(TIter from, TIter to) + { + return RetType(&(*from), static_cast(std::distance(from, to))); + } +}; +#endif // #if COMMS_HAS_CPP20_SPAN + +} // namespace details + +} // namespace util + +} // namespace comms diff --git a/test/Util.th b/test/Util.th index 51f09fb..6e38ad8 100644 --- a/test/Util.th +++ b/test/Util.th @@ -41,6 +41,7 @@ public: void test25(); void test26(); void test27(); + void test28(); }; void UtilTestSuite::test1() @@ -1065,3 +1066,18 @@ void UtilTestSuite::test27() TS_ASSERT_EQUALS(Str, s3); #endif } + +void UtilTestSuite::test28() +{ + static std::uint8_t Data[] = { + 0x01, 0x02, 0x03, 0x04 + }; + + using Data1 = std::vector; + [[maybe_unused]] auto data1 = comms::util::construct(std::begin(Data), std::end(Data)); + +#if COMMS_HAS_CPP20_SPAN + using Data2 = std::span; + [[maybe_unused]] auto data2 = comms::util::construct(std::begin(Data), std::end(Data)); +#endif // #if COMMS_HAS_CPP20_SPAN +} From 56d2777ee3b1c5f97f1f9ab039f15d9f9cef7887 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Thu, 5 Dec 2024 09:30:41 +1000 Subject: [PATCH 13/17] Restoring original assign behaviour. --- include/comms/util/details/AssignHelper.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/comms/util/details/AssignHelper.h b/include/comms/util/details/AssignHelper.h index 7623512..b74c244 100644 --- a/include/comms/util/details/AssignHelper.h +++ b/include/comms/util/details/AssignHelper.h @@ -107,11 +107,11 @@ class AssignHelper template static void assignInternal(T& obj, TIter from, TIter to, StdSpanTag) { - // using ObjType = typename std::decay::type; - // using ConstPointerType = typename ObjType::const_pointer; - // using PointerType = typename ObjType::pointer; - // auto fromPtr = const_cast(reinterpret_cast(&(*from))); - // auto toPtr = const_cast(reinterpret_cast(&(*to))); + using ObjType = typename std::decay::type; + using ConstPointerType = typename ObjType::const_pointer; + using PointerType = typename ObjType::pointer; + auto fromPtr = const_cast(reinterpret_cast(&(*from))); + auto toPtr = const_cast(reinterpret_cast(&(*to))); assignInternal(obj, from, to, UsePtrSizeConstructorTag()); } }; From 9e2414a9dfa59c6b5cc9ea447c2b15cb173ea498 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Thu, 5 Dec 2024 09:33:33 +1000 Subject: [PATCH 14/17] Restoring original assign behaviour. --- include/comms/util/details/AssignHelper.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/comms/util/details/AssignHelper.h b/include/comms/util/details/AssignHelper.h index b74c244..6ddf459 100644 --- a/include/comms/util/details/AssignHelper.h +++ b/include/comms/util/details/AssignHelper.h @@ -112,7 +112,7 @@ class AssignHelper using PointerType = typename ObjType::pointer; auto fromPtr = const_cast(reinterpret_cast(&(*from))); auto toPtr = const_cast(reinterpret_cast(&(*to))); - assignInternal(obj, from, to, UsePtrSizeConstructorTag()); + assignInternal(obj, fromPtr, toPtr, UsePtrSizeConstructorTag()); } }; From 14660a5a478aad8e97c7a6e9842b7eea816d23cd Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 7 Dec 2024 13:31:18 +1000 Subject: [PATCH 15/17] Fixing build of unit-tests. --- test/Util.th | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/Util.th b/test/Util.th index 6e38ad8..d43219c 100644 --- a/test/Util.th +++ b/test/Util.th @@ -1074,10 +1074,12 @@ void UtilTestSuite::test28() }; using Data1 = std::vector; - [[maybe_unused]] auto data1 = comms::util::construct(std::begin(Data), std::end(Data)); + auto data1 = comms::util::construct(std::begin(Data), std::end(Data)); + static_cast(data1); #if COMMS_HAS_CPP20_SPAN using Data2 = std::span; - [[maybe_unused]] auto data2 = comms::util::construct(std::begin(Data), std::end(Data)); + auto data2 = comms::util::construct(std::begin(Data), std::end(Data)); + static_cast(data2); #endif // #if COMMS_HAS_CPP20_SPAN } From 620a33a15fcec53572dbc32208cfd0a599bc9512 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 11 Jan 2025 15:24:44 +1000 Subject: [PATCH 16/17] Updated copyright years to include 2025. --- include/comms/Assert.h | 2 +- include/comms/CompileControl.h | 2 +- include/comms/EmptyHandler.h | 2 +- include/comms/ErrorStatus.h | 2 +- include/comms/Field.h | 2 +- include/comms/GenericHandler.h | 2 +- include/comms/GenericMessage.h | 2 +- include/comms/Message.h | 2 +- include/comms/MessageBase.h | 2 +- include/comms/MsgDispatcher.h | 2 +- include/comms/MsgFactory.h | 2 +- include/comms/MsgFactoryCreateFailureReason.h | 2 +- include/comms/cast.h | 2 +- include/comms/comms.h | 2 +- include/comms/details/DispatchMsgHelperType.h | 2 +- include/comms/details/DispatchMsgIdRetrieveHelper.h | 2 +- include/comms/details/DispatchMsgLinearSwitchHelper.h | 2 +- include/comms/details/DispatchMsgPolymorphicHelper.h | 2 +- include/comms/details/DispatchMsgStaticBinSearchHelper.h | 2 +- include/comms/details/FieldBase.h | 2 +- include/comms/details/FieldCastHelper.h | 2 +- include/comms/details/MessageIdTypeRetriever.h | 2 +- include/comms/details/MessageImplBases.h | 2 +- include/comms/details/MessageImplBuilder.h | 2 +- include/comms/details/MessageImplOptionsParser.h | 2 +- include/comms/details/MessageInterfaceBases.h | 2 +- include/comms/details/MessageInterfaceBuilder.h | 2 +- include/comms/details/MessageInterfaceOptionsParser.h | 2 +- include/comms/details/MsgDispatcherOptionsParser.h | 2 +- include/comms/details/MsgFactoryBase.h | 2 +- include/comms/details/MsgFactoryOptionsParser.h | 2 +- include/comms/details/ReadIteratorHelper.h | 2 +- include/comms/details/ValueAssignWrapper.h | 2 +- include/comms/details/WriteIteratorHelper.h | 2 +- include/comms/details/base_detection.h | 2 +- include/comms/details/bits_access.h | 2 +- include/comms/details/detect.h | 2 +- include/comms/details/dispatch_impl.h | 2 +- include/comms/details/field_alias.h | 2 +- include/comms/details/fields_access.h | 2 +- include/comms/details/gen_enum.h | 2 +- include/comms/details/macro_common.h | 2 +- include/comms/details/message_check.h | 2 +- include/comms/details/process.h | 2 +- include/comms/details/protocol_layers_access.h | 2 +- include/comms/details/reverse_macro_args.h | 2 +- include/comms/details/tag.h | 2 +- include/comms/details/transport_fields_access.h | 2 +- include/comms/details/variant_access.h | 2 +- include/comms/dispatch.h | 2 +- include/comms/field/ArrayList.h | 2 +- include/comms/field/Bitfield.h | 2 +- include/comms/field/BitmaskValue.h | 2 +- include/comms/field/Bundle.h | 2 +- include/comms/field/EnumValue.h | 2 +- include/comms/field/FloatValue.h | 2 +- include/comms/field/IntValue.h | 2 +- include/comms/field/Optional.h | 2 +- include/comms/field/OptionalMode.h | 2 +- include/comms/field/String.h | 2 +- include/comms/field/Variant.h | 2 +- include/comms/field/adapter/AvailableLength.h | 2 +- include/comms/field/adapter/CustomReadWrap.h | 2 +- include/comms/field/adapter/CustomRefreshWrap.h | 2 +- include/comms/field/adapter/CustomValidator.h | 2 +- include/comms/field/adapter/CustomWriteWrap.h | 2 +- include/comms/field/adapter/DefaultValueInitialiser.h | 2 +- include/comms/field/adapter/DisplayOffset.h | 2 +- include/comms/field/adapter/EmptySerialization.h | 2 +- include/comms/field/adapter/ExistsBetweenVersions.h | 2 +- include/comms/field/adapter/FailOnInvalid.h | 2 +- include/comms/field/adapter/FieldType.h | 2 +- include/comms/field/adapter/FixedBitLength.h | 2 +- include/comms/field/adapter/FixedLength.h | 2 +- include/comms/field/adapter/FixedValue.h | 2 +- include/comms/field/adapter/IgnoreInvalid.h | 2 +- include/comms/field/adapter/InvalidByDefault.h | 2 +- include/comms/field/adapter/MissingOnInvalid.h | 2 +- include/comms/field/adapter/MissingOnReadFail.h | 2 +- include/comms/field/adapter/NumValueMultiRangeValidator.h | 2 +- include/comms/field/adapter/RemLengthMemberField.h | 2 +- .../comms/field/adapter/SequenceElemFixedSerLengthFieldPrefix.h | 2 +- include/comms/field/adapter/SequenceElemLengthForcing.h | 2 +- include/comms/field/adapter/SequenceElemSerLengthFieldPrefix.h | 2 +- include/comms/field/adapter/SequenceFixedSize.h | 2 +- include/comms/field/adapter/SequenceLengthForcing.h | 2 +- include/comms/field/adapter/SequenceSerLengthFieldPrefix.h | 2 +- include/comms/field/adapter/SequenceSizeFieldPrefix.h | 2 +- include/comms/field/adapter/SequenceSizeForcing.h | 2 +- include/comms/field/adapter/SequenceTerminationFieldSuffix.h | 2 +- include/comms/field/adapter/SequenceTrailingFieldSuffix.h | 2 +- include/comms/field/adapter/SerOffset.h | 2 +- include/comms/field/adapter/VarLength.h | 2 +- include/comms/field/adapter/VariantResetOnDestruct.h | 2 +- include/comms/field/adapter/VersionStorage.h | 2 +- include/comms/field/basic/ArrayList.h | 2 +- include/comms/field/basic/Bitfield.h | 2 +- include/comms/field/basic/Bundle.h | 2 +- include/comms/field/basic/CommonFuncs.h | 2 +- include/comms/field/basic/EnumValue.h | 2 +- include/comms/field/basic/FloatValue.h | 2 +- include/comms/field/basic/IntValue.h | 2 +- include/comms/field/basic/Optional.h | 2 +- include/comms/field/basic/String.h | 2 +- include/comms/field/basic/Variant.h | 2 +- include/comms/field/basics.h | 2 +- include/comms/field/details/AdaptBasicField.h | 2 +- include/comms/field/details/FieldOpHelpers.h | 2 +- include/comms/field/details/MembersVersionDependency.h | 2 +- include/comms/field/details/OptionsParser.h | 2 +- include/comms/field/details/VersionStorage.h | 2 +- include/comms/field/details/adapters.h | 2 +- include/comms/field/tag.h | 2 +- include/comms/field_cast.h | 2 +- include/comms/fields.h | 2 +- include/comms/iterator.h | 2 +- include/comms/options.h | 2 +- include/comms/process.h | 2 +- include/comms/protocol/ChecksumLayer.h | 2 +- include/comms/protocol/ChecksumPrefixLayer.h | 2 +- include/comms/protocol/MsgDataLayer.h | 2 +- include/comms/protocol/MsgIdLayer.h | 2 +- include/comms/protocol/MsgSizeLayer.h | 2 +- include/comms/protocol/ProtocolLayerBase.h | 2 +- include/comms/protocol/SyncPrefixLayer.h | 2 +- include/comms/protocol/TransportValueLayer.h | 2 +- include/comms/protocol/checksum/BasicSum.h | 2 +- include/comms/protocol/checksum/BasicXor.h | 2 +- include/comms/protocol/checksum/Crc.h | 2 +- include/comms/protocol/details/ChecksumLayerOptionsParser.h | 2 +- include/comms/protocol/details/MsgDataLayerOptionsParser.h | 2 +- include/comms/protocol/details/MsgIdLayerOptionsParser.h | 2 +- include/comms/protocol/details/MsgSizeLayerOptionsParser.h | 2 +- include/comms/protocol/details/ProtocolLayerBase.h | 2 +- include/comms/protocol/details/ProtocolLayerBaseOptionsParser.h | 2 +- include/comms/protocol/details/ProtocolLayerDetails.h | 2 +- .../comms/protocol/details/ProtocolLayerExtendingClassHelper.h | 2 +- include/comms/protocol/details/SyncPrefixLayerOptionsParser.h | 2 +- include/comms/protocol/details/TransportValueLayerAdapter.h | 2 +- include/comms/protocol/details/TransportValueLayerBases.h | 2 +- .../comms/protocol/details/TransportValueLayerOptionsParser.h | 2 +- include/comms/protocols.h | 2 +- include/comms/traits.h | 2 +- include/comms/units.h | 2 +- include/comms/util/AlignedStorage.h | 2 +- include/comms/util/ArrayView.h | 2 +- include/comms/util/BitSizeToByteSize.h | 2 +- include/comms/util/MaxSizeOf.h | 2 +- include/comms/util/ScopeGuard.h | 2 +- include/comms/util/SizeToType.h | 2 +- include/comms/util/StaticQueue.h | 2 +- include/comms/util/StaticString.h | 2 +- include/comms/util/StaticVector.h | 2 +- include/comms/util/StringView.h | 2 +- include/comms/util/Tuple.h | 2 +- include/comms/util/access.h | 2 +- include/comms/util/alloc.h | 2 +- include/comms/util/assign.h | 2 +- include/comms/util/construct.h | 2 +- include/comms/util/details/AssignHelper.h | 2 +- include/comms/util/details/ConstructHelper.h | 2 +- include/comms/util/details/detect.h | 2 +- include/comms/util/details/type_traits.h | 2 +- include/comms/util/detect.h | 2 +- include/comms/util/type_traits.h | 2 +- include/comms/version.h | 2 +- test/ChecksumLayer.th | 2 +- test/ChecksumPrefixLayer.th | 2 +- test/CommsTestCommon.h | 2 +- test/CustomChecksumLayer.th | 2 +- test/CustomChecksumPrefixLayer.th | 2 +- test/CustomMsgIdLayer.th | 2 +- test/CustomMsgSizeLayer.th | 2 +- test/CustomSyncPrefixLayer.th | 2 +- test/CustomTransportValueLayer.th | 2 +- test/Dispatch.th | 2 +- test/Fields.th | 2 +- test/Fields2.th | 2 +- test/Message.th | 2 +- test/MsgDataLayer.th | 2 +- test/MsgFactory.th | 2 +- test/MsgIdLayer.th | 2 +- test/MsgSizeLayer.th | 2 +- test/SyncPrefixLayer.th | 2 +- test/TransportValueLayer.th | 2 +- test/Util.th | 2 +- 186 files changed, 186 insertions(+), 186 deletions(-) diff --git a/include/comms/Assert.h b/include/comms/Assert.h index 2ed99df..0a689f0 100644 --- a/include/comms/Assert.h +++ b/include/comms/Assert.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/CompileControl.h b/include/comms/CompileControl.h index 09ca574..0e22418 100644 --- a/include/comms/CompileControl.h +++ b/include/comms/CompileControl.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/EmptyHandler.h b/include/comms/EmptyHandler.h index 58eaa8a..b5e22f0 100644 --- a/include/comms/EmptyHandler.h +++ b/include/comms/EmptyHandler.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/ErrorStatus.h b/include/comms/ErrorStatus.h index 1bf84ad..d3c6b6a 100644 --- a/include/comms/ErrorStatus.h +++ b/include/comms/ErrorStatus.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/Field.h b/include/comms/Field.h index 545b129..304a608 100644 --- a/include/comms/Field.h +++ b/include/comms/Field.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/GenericHandler.h b/include/comms/GenericHandler.h index 51644c6..9f841cc 100644 --- a/include/comms/GenericHandler.h +++ b/include/comms/GenericHandler.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/GenericMessage.h b/include/comms/GenericMessage.h index 3c0cbae..7a2753c 100644 --- a/include/comms/GenericMessage.h +++ b/include/comms/GenericMessage.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/Message.h b/include/comms/Message.h index cab06c1..5311112 100644 --- a/include/comms/Message.h +++ b/include/comms/Message.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/MessageBase.h b/include/comms/MessageBase.h index b8351b1..4bfcbbb 100644 --- a/include/comms/MessageBase.h +++ b/include/comms/MessageBase.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/MsgDispatcher.h b/include/comms/MsgDispatcher.h index 9fa154b..f645838 100644 --- a/include/comms/MsgDispatcher.h +++ b/include/comms/MsgDispatcher.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/MsgFactory.h b/include/comms/MsgFactory.h index 8239341..557d311 100644 --- a/include/comms/MsgFactory.h +++ b/include/comms/MsgFactory.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/MsgFactoryCreateFailureReason.h b/include/comms/MsgFactoryCreateFailureReason.h index 38f9253..32c3873 100644 --- a/include/comms/MsgFactoryCreateFailureReason.h +++ b/include/comms/MsgFactoryCreateFailureReason.h @@ -1,5 +1,5 @@ // -// Copyright 2022 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2022 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/cast.h b/include/comms/cast.h index b5a7aee..2d84e5c 100644 --- a/include/comms/cast.h +++ b/include/comms/cast.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/comms.h b/include/comms/comms.h index 9f7b58a..b673ec8 100644 --- a/include/comms/comms.h +++ b/include/comms/comms.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/DispatchMsgHelperType.h b/include/comms/details/DispatchMsgHelperType.h index 153a609..d292c79 100644 --- a/include/comms/details/DispatchMsgHelperType.h +++ b/include/comms/details/DispatchMsgHelperType.h @@ -1,5 +1,5 @@ // -// Copyright 2020 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2020 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/DispatchMsgIdRetrieveHelper.h b/include/comms/details/DispatchMsgIdRetrieveHelper.h index 82c5be8..064450d 100644 --- a/include/comms/details/DispatchMsgIdRetrieveHelper.h +++ b/include/comms/details/DispatchMsgIdRetrieveHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/DispatchMsgLinearSwitchHelper.h b/include/comms/details/DispatchMsgLinearSwitchHelper.h index 7f7d266..1081e66 100644 --- a/include/comms/details/DispatchMsgLinearSwitchHelper.h +++ b/include/comms/details/DispatchMsgLinearSwitchHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/DispatchMsgPolymorphicHelper.h b/include/comms/details/DispatchMsgPolymorphicHelper.h index 19a2316..1278526 100644 --- a/include/comms/details/DispatchMsgPolymorphicHelper.h +++ b/include/comms/details/DispatchMsgPolymorphicHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/DispatchMsgStaticBinSearchHelper.h b/include/comms/details/DispatchMsgStaticBinSearchHelper.h index 3ecf4c7..928d3e2 100644 --- a/include/comms/details/DispatchMsgStaticBinSearchHelper.h +++ b/include/comms/details/DispatchMsgStaticBinSearchHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/FieldBase.h b/include/comms/details/FieldBase.h index 2c3708f..18eb000 100644 --- a/include/comms/details/FieldBase.h +++ b/include/comms/details/FieldBase.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/FieldCastHelper.h b/include/comms/details/FieldCastHelper.h index 04174a1..bfceeed 100644 --- a/include/comms/details/FieldCastHelper.h +++ b/include/comms/details/FieldCastHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MessageIdTypeRetriever.h b/include/comms/details/MessageIdTypeRetriever.h index 02f1a80..e595f92 100644 --- a/include/comms/details/MessageIdTypeRetriever.h +++ b/include/comms/details/MessageIdTypeRetriever.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MessageImplBases.h b/include/comms/details/MessageImplBases.h index 96507b2..f9fbc9e 100644 --- a/include/comms/details/MessageImplBases.h +++ b/include/comms/details/MessageImplBases.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MessageImplBuilder.h b/include/comms/details/MessageImplBuilder.h index f48f278..df83e2a 100644 --- a/include/comms/details/MessageImplBuilder.h +++ b/include/comms/details/MessageImplBuilder.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MessageImplOptionsParser.h b/include/comms/details/MessageImplOptionsParser.h index 05b502c..24ef704 100644 --- a/include/comms/details/MessageImplOptionsParser.h +++ b/include/comms/details/MessageImplOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MessageInterfaceBases.h b/include/comms/details/MessageInterfaceBases.h index 082bcc5..9734388 100644 --- a/include/comms/details/MessageInterfaceBases.h +++ b/include/comms/details/MessageInterfaceBases.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MessageInterfaceBuilder.h b/include/comms/details/MessageInterfaceBuilder.h index 7df3ef1..e528032 100644 --- a/include/comms/details/MessageInterfaceBuilder.h +++ b/include/comms/details/MessageInterfaceBuilder.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MessageInterfaceOptionsParser.h b/include/comms/details/MessageInterfaceOptionsParser.h index 9a5aa7f..ddcabbc 100644 --- a/include/comms/details/MessageInterfaceOptionsParser.h +++ b/include/comms/details/MessageInterfaceOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MsgDispatcherOptionsParser.h b/include/comms/details/MsgDispatcherOptionsParser.h index 533d063..0aba1f6 100644 --- a/include/comms/details/MsgDispatcherOptionsParser.h +++ b/include/comms/details/MsgDispatcherOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MsgFactoryBase.h b/include/comms/details/MsgFactoryBase.h index 0eeaba0..612e4bb 100644 --- a/include/comms/details/MsgFactoryBase.h +++ b/include/comms/details/MsgFactoryBase.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/MsgFactoryOptionsParser.h b/include/comms/details/MsgFactoryOptionsParser.h index 517a732..5281cf8 100644 --- a/include/comms/details/MsgFactoryOptionsParser.h +++ b/include/comms/details/MsgFactoryOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/ReadIteratorHelper.h b/include/comms/details/ReadIteratorHelper.h index dc68dd6..f12ccc9 100644 --- a/include/comms/details/ReadIteratorHelper.h +++ b/include/comms/details/ReadIteratorHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/ValueAssignWrapper.h b/include/comms/details/ValueAssignWrapper.h index 39a463a..94b0dc8 100644 --- a/include/comms/details/ValueAssignWrapper.h +++ b/include/comms/details/ValueAssignWrapper.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/WriteIteratorHelper.h b/include/comms/details/WriteIteratorHelper.h index 68be060..dc98dff 100644 --- a/include/comms/details/WriteIteratorHelper.h +++ b/include/comms/details/WriteIteratorHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/base_detection.h b/include/comms/details/base_detection.h index e6e03df..cdc56c2 100644 --- a/include/comms/details/base_detection.h +++ b/include/comms/details/base_detection.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/bits_access.h b/include/comms/details/bits_access.h index 9258c3d..13749d3 100644 --- a/include/comms/details/bits_access.h +++ b/include/comms/details/bits_access.h @@ -1,5 +1,5 @@ // -// Copyright 2016 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2016 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/detect.h b/include/comms/details/detect.h index 935ffc4..9f5edde 100644 --- a/include/comms/details/detect.h +++ b/include/comms/details/detect.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/dispatch_impl.h b/include/comms/details/dispatch_impl.h index 9895cee..fbc1076 100644 --- a/include/comms/details/dispatch_impl.h +++ b/include/comms/details/dispatch_impl.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/field_alias.h b/include/comms/details/field_alias.h index 83a0ee0..b2a65f1 100644 --- a/include/comms/details/field_alias.h +++ b/include/comms/details/field_alias.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/fields_access.h b/include/comms/details/fields_access.h index 41a6f94..ae45a53 100644 --- a/include/comms/details/fields_access.h +++ b/include/comms/details/fields_access.h @@ -1,5 +1,5 @@ // -// Copyright 2016 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2016 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/gen_enum.h b/include/comms/details/gen_enum.h index 163e077..2c2ba5d 100644 --- a/include/comms/details/gen_enum.h +++ b/include/comms/details/gen_enum.h @@ -1,5 +1,5 @@ // -// Copyright 2016 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2016 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/macro_common.h b/include/comms/details/macro_common.h index 2230e6b..0666aae 100644 --- a/include/comms/details/macro_common.h +++ b/include/comms/details/macro_common.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/message_check.h b/include/comms/details/message_check.h index 2a5ad82..e4e82bf 100644 --- a/include/comms/details/message_check.h +++ b/include/comms/details/message_check.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/process.h b/include/comms/details/process.h index 25cc86f..5ac260e 100644 --- a/include/comms/details/process.h +++ b/include/comms/details/process.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/protocol_layers_access.h b/include/comms/details/protocol_layers_access.h index 48fc206..c5de86b 100644 --- a/include/comms/details/protocol_layers_access.h +++ b/include/comms/details/protocol_layers_access.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/reverse_macro_args.h b/include/comms/details/reverse_macro_args.h index 60393f5..54adec0 100644 --- a/include/comms/details/reverse_macro_args.h +++ b/include/comms/details/reverse_macro_args.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/tag.h b/include/comms/details/tag.h index 8c23993..906ce36 100644 --- a/include/comms/details/tag.h +++ b/include/comms/details/tag.h @@ -1,5 +1,5 @@ // -// Copyright 2020 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2020 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/transport_fields_access.h b/include/comms/details/transport_fields_access.h index 43d5997..dcf6eff 100644 --- a/include/comms/details/transport_fields_access.h +++ b/include/comms/details/transport_fields_access.h @@ -1,5 +1,5 @@ // -// Copyright 2016 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2016 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/details/variant_access.h b/include/comms/details/variant_access.h index 8a60df0..8f6fc2d 100644 --- a/include/comms/details/variant_access.h +++ b/include/comms/details/variant_access.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/dispatch.h b/include/comms/dispatch.h index 421cca7..f67f3f0 100644 --- a/include/comms/dispatch.h +++ b/include/comms/dispatch.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // /// @file diff --git a/include/comms/field/ArrayList.h b/include/comms/field/ArrayList.h index d7ab5bc..e34d233 100644 --- a/include/comms/field/ArrayList.h +++ b/include/comms/field/ArrayList.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/Bitfield.h b/include/comms/field/Bitfield.h index 6d50876..a582384 100644 --- a/include/comms/field/Bitfield.h +++ b/include/comms/field/Bitfield.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/BitmaskValue.h b/include/comms/field/BitmaskValue.h index 7c263bc..421d5f6 100644 --- a/include/comms/field/BitmaskValue.h +++ b/include/comms/field/BitmaskValue.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/Bundle.h b/include/comms/field/Bundle.h index 4d74987..7bb423f 100644 --- a/include/comms/field/Bundle.h +++ b/include/comms/field/Bundle.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/EnumValue.h b/include/comms/field/EnumValue.h index 0b4b768..52ae3b4 100644 --- a/include/comms/field/EnumValue.h +++ b/include/comms/field/EnumValue.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/FloatValue.h b/include/comms/field/FloatValue.h index cea5eec..4382eab 100644 --- a/include/comms/field/FloatValue.h +++ b/include/comms/field/FloatValue.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/IntValue.h b/include/comms/field/IntValue.h index 71252e3..78c5187 100644 --- a/include/comms/field/IntValue.h +++ b/include/comms/field/IntValue.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/Optional.h b/include/comms/field/Optional.h index 41ad3a0..a1cedc4 100644 --- a/include/comms/field/Optional.h +++ b/include/comms/field/Optional.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/OptionalMode.h b/include/comms/field/OptionalMode.h index d047f31..84e30e4 100644 --- a/include/comms/field/OptionalMode.h +++ b/include/comms/field/OptionalMode.h @@ -1,5 +1,5 @@ // -// Copyright 2016 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2016 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/String.h b/include/comms/field/String.h index 9d62bb2..df2d1b5 100644 --- a/include/comms/field/String.h +++ b/include/comms/field/String.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/Variant.h b/include/comms/field/Variant.h index 3d94972..173c379 100644 --- a/include/comms/field/Variant.h +++ b/include/comms/field/Variant.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/AvailableLength.h b/include/comms/field/adapter/AvailableLength.h index d3a8596..7d66740 100644 --- a/include/comms/field/adapter/AvailableLength.h +++ b/include/comms/field/adapter/AvailableLength.h @@ -1,5 +1,5 @@ // -// Copyright 2021 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2021 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/CustomReadWrap.h b/include/comms/field/adapter/CustomReadWrap.h index e80286a..5e07707 100644 --- a/include/comms/field/adapter/CustomReadWrap.h +++ b/include/comms/field/adapter/CustomReadWrap.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/CustomRefreshWrap.h b/include/comms/field/adapter/CustomRefreshWrap.h index 31a7e2f..3030a42 100644 --- a/include/comms/field/adapter/CustomRefreshWrap.h +++ b/include/comms/field/adapter/CustomRefreshWrap.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/CustomValidator.h b/include/comms/field/adapter/CustomValidator.h index e4be329..fc178c0 100644 --- a/include/comms/field/adapter/CustomValidator.h +++ b/include/comms/field/adapter/CustomValidator.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/CustomWriteWrap.h b/include/comms/field/adapter/CustomWriteWrap.h index 245c7a2..97ef7a4 100644 --- a/include/comms/field/adapter/CustomWriteWrap.h +++ b/include/comms/field/adapter/CustomWriteWrap.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/DefaultValueInitialiser.h b/include/comms/field/adapter/DefaultValueInitialiser.h index 700efac..2e39db8 100644 --- a/include/comms/field/adapter/DefaultValueInitialiser.h +++ b/include/comms/field/adapter/DefaultValueInitialiser.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/DisplayOffset.h b/include/comms/field/adapter/DisplayOffset.h index e7cf3fe..bc859a0 100644 --- a/include/comms/field/adapter/DisplayOffset.h +++ b/include/comms/field/adapter/DisplayOffset.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/EmptySerialization.h b/include/comms/field/adapter/EmptySerialization.h index 9d1ee2f..701d8c4 100644 --- a/include/comms/field/adapter/EmptySerialization.h +++ b/include/comms/field/adapter/EmptySerialization.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/ExistsBetweenVersions.h b/include/comms/field/adapter/ExistsBetweenVersions.h index b92568c..c0efdd4 100644 --- a/include/comms/field/adapter/ExistsBetweenVersions.h +++ b/include/comms/field/adapter/ExistsBetweenVersions.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/FailOnInvalid.h b/include/comms/field/adapter/FailOnInvalid.h index d3cef51..6d9bbb8 100644 --- a/include/comms/field/adapter/FailOnInvalid.h +++ b/include/comms/field/adapter/FailOnInvalid.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/FieldType.h b/include/comms/field/adapter/FieldType.h index 09ccefd..0651496 100644 --- a/include/comms/field/adapter/FieldType.h +++ b/include/comms/field/adapter/FieldType.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/FixedBitLength.h b/include/comms/field/adapter/FixedBitLength.h index 7ae09da..85834b6 100644 --- a/include/comms/field/adapter/FixedBitLength.h +++ b/include/comms/field/adapter/FixedBitLength.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/FixedLength.h b/include/comms/field/adapter/FixedLength.h index b2f3b8d..b4234d9 100644 --- a/include/comms/field/adapter/FixedLength.h +++ b/include/comms/field/adapter/FixedLength.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/FixedValue.h b/include/comms/field/adapter/FixedValue.h index 34cd70f..7e1a319 100644 --- a/include/comms/field/adapter/FixedValue.h +++ b/include/comms/field/adapter/FixedValue.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/IgnoreInvalid.h b/include/comms/field/adapter/IgnoreInvalid.h index e61b2bf..c252126 100644 --- a/include/comms/field/adapter/IgnoreInvalid.h +++ b/include/comms/field/adapter/IgnoreInvalid.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/InvalidByDefault.h b/include/comms/field/adapter/InvalidByDefault.h index 1726685..bd74d5d 100644 --- a/include/comms/field/adapter/InvalidByDefault.h +++ b/include/comms/field/adapter/InvalidByDefault.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/MissingOnInvalid.h b/include/comms/field/adapter/MissingOnInvalid.h index f2f8629..002b5c0 100644 --- a/include/comms/field/adapter/MissingOnInvalid.h +++ b/include/comms/field/adapter/MissingOnInvalid.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/MissingOnReadFail.h b/include/comms/field/adapter/MissingOnReadFail.h index 9d5fd2e..6d83ef3 100644 --- a/include/comms/field/adapter/MissingOnReadFail.h +++ b/include/comms/field/adapter/MissingOnReadFail.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/NumValueMultiRangeValidator.h b/include/comms/field/adapter/NumValueMultiRangeValidator.h index 6f0213a..4555966 100644 --- a/include/comms/field/adapter/NumValueMultiRangeValidator.h +++ b/include/comms/field/adapter/NumValueMultiRangeValidator.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/RemLengthMemberField.h b/include/comms/field/adapter/RemLengthMemberField.h index 7880d8a..5191193 100644 --- a/include/comms/field/adapter/RemLengthMemberField.h +++ b/include/comms/field/adapter/RemLengthMemberField.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceElemFixedSerLengthFieldPrefix.h b/include/comms/field/adapter/SequenceElemFixedSerLengthFieldPrefix.h index 39537bd..47b4437 100644 --- a/include/comms/field/adapter/SequenceElemFixedSerLengthFieldPrefix.h +++ b/include/comms/field/adapter/SequenceElemFixedSerLengthFieldPrefix.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceElemLengthForcing.h b/include/comms/field/adapter/SequenceElemLengthForcing.h index 98b952c..d183309 100644 --- a/include/comms/field/adapter/SequenceElemLengthForcing.h +++ b/include/comms/field/adapter/SequenceElemLengthForcing.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceElemSerLengthFieldPrefix.h b/include/comms/field/adapter/SequenceElemSerLengthFieldPrefix.h index 767fe79..606c388 100644 --- a/include/comms/field/adapter/SequenceElemSerLengthFieldPrefix.h +++ b/include/comms/field/adapter/SequenceElemSerLengthFieldPrefix.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceFixedSize.h b/include/comms/field/adapter/SequenceFixedSize.h index 4f76f5c..b773334 100644 --- a/include/comms/field/adapter/SequenceFixedSize.h +++ b/include/comms/field/adapter/SequenceFixedSize.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceLengthForcing.h b/include/comms/field/adapter/SequenceLengthForcing.h index 880d459..a830b56 100644 --- a/include/comms/field/adapter/SequenceLengthForcing.h +++ b/include/comms/field/adapter/SequenceLengthForcing.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceSerLengthFieldPrefix.h b/include/comms/field/adapter/SequenceSerLengthFieldPrefix.h index c30e659..921089e 100644 --- a/include/comms/field/adapter/SequenceSerLengthFieldPrefix.h +++ b/include/comms/field/adapter/SequenceSerLengthFieldPrefix.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceSizeFieldPrefix.h b/include/comms/field/adapter/SequenceSizeFieldPrefix.h index 0bbed14..cf4885e 100644 --- a/include/comms/field/adapter/SequenceSizeFieldPrefix.h +++ b/include/comms/field/adapter/SequenceSizeFieldPrefix.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceSizeForcing.h b/include/comms/field/adapter/SequenceSizeForcing.h index 97faf9d..664ab20 100644 --- a/include/comms/field/adapter/SequenceSizeForcing.h +++ b/include/comms/field/adapter/SequenceSizeForcing.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceTerminationFieldSuffix.h b/include/comms/field/adapter/SequenceTerminationFieldSuffix.h index c657893..ebeb6e9 100644 --- a/include/comms/field/adapter/SequenceTerminationFieldSuffix.h +++ b/include/comms/field/adapter/SequenceTerminationFieldSuffix.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SequenceTrailingFieldSuffix.h b/include/comms/field/adapter/SequenceTrailingFieldSuffix.h index 6a44d4f..c6b0efa 100644 --- a/include/comms/field/adapter/SequenceTrailingFieldSuffix.h +++ b/include/comms/field/adapter/SequenceTrailingFieldSuffix.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/SerOffset.h b/include/comms/field/adapter/SerOffset.h index bd7882a..ae61845 100644 --- a/include/comms/field/adapter/SerOffset.h +++ b/include/comms/field/adapter/SerOffset.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/VarLength.h b/include/comms/field/adapter/VarLength.h index 136e026..8df7c45 100644 --- a/include/comms/field/adapter/VarLength.h +++ b/include/comms/field/adapter/VarLength.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/VariantResetOnDestruct.h b/include/comms/field/adapter/VariantResetOnDestruct.h index e455915..358fbd6 100644 --- a/include/comms/field/adapter/VariantResetOnDestruct.h +++ b/include/comms/field/adapter/VariantResetOnDestruct.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/adapter/VersionStorage.h b/include/comms/field/adapter/VersionStorage.h index c985345..66a1ec7 100644 --- a/include/comms/field/adapter/VersionStorage.h +++ b/include/comms/field/adapter/VersionStorage.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/ArrayList.h b/include/comms/field/basic/ArrayList.h index b332049..81accdf 100644 --- a/include/comms/field/basic/ArrayList.h +++ b/include/comms/field/basic/ArrayList.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/Bitfield.h b/include/comms/field/basic/Bitfield.h index de49e58..554cd49 100644 --- a/include/comms/field/basic/Bitfield.h +++ b/include/comms/field/basic/Bitfield.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/Bundle.h b/include/comms/field/basic/Bundle.h index ab9d1a0..abf369f 100644 --- a/include/comms/field/basic/Bundle.h +++ b/include/comms/field/basic/Bundle.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/CommonFuncs.h b/include/comms/field/basic/CommonFuncs.h index 0b933c7..1780e00 100644 --- a/include/comms/field/basic/CommonFuncs.h +++ b/include/comms/field/basic/CommonFuncs.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/EnumValue.h b/include/comms/field/basic/EnumValue.h index fca887d..1b4682d 100644 --- a/include/comms/field/basic/EnumValue.h +++ b/include/comms/field/basic/EnumValue.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/FloatValue.h b/include/comms/field/basic/FloatValue.h index c4681d1..3ba756e 100644 --- a/include/comms/field/basic/FloatValue.h +++ b/include/comms/field/basic/FloatValue.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/IntValue.h b/include/comms/field/basic/IntValue.h index 1ba418b..22a4d0c 100644 --- a/include/comms/field/basic/IntValue.h +++ b/include/comms/field/basic/IntValue.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/Optional.h b/include/comms/field/basic/Optional.h index 86ab635..5156379 100644 --- a/include/comms/field/basic/Optional.h +++ b/include/comms/field/basic/Optional.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/String.h b/include/comms/field/basic/String.h index 8500ee0..5b9ba79 100644 --- a/include/comms/field/basic/String.h +++ b/include/comms/field/basic/String.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basic/Variant.h b/include/comms/field/basic/Variant.h index dbe0e5e..d9c09c4 100644 --- a/include/comms/field/basic/Variant.h +++ b/include/comms/field/basic/Variant.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/basics.h b/include/comms/field/basics.h index 6fb396e..519f6d6 100644 --- a/include/comms/field/basics.h +++ b/include/comms/field/basics.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/details/AdaptBasicField.h b/include/comms/field/details/AdaptBasicField.h index 9874491..5d1398f 100644 --- a/include/comms/field/details/AdaptBasicField.h +++ b/include/comms/field/details/AdaptBasicField.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/details/FieldOpHelpers.h b/include/comms/field/details/FieldOpHelpers.h index 5c47dfc..196c23f 100644 --- a/include/comms/field/details/FieldOpHelpers.h +++ b/include/comms/field/details/FieldOpHelpers.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/details/MembersVersionDependency.h b/include/comms/field/details/MembersVersionDependency.h index 7e267d0..2371d5e 100644 --- a/include/comms/field/details/MembersVersionDependency.h +++ b/include/comms/field/details/MembersVersionDependency.h @@ -1,5 +1,5 @@ // -// Copyright 2022 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2022 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/details/OptionsParser.h b/include/comms/field/details/OptionsParser.h index c20b1fe..d0b0e14 100644 --- a/include/comms/field/details/OptionsParser.h +++ b/include/comms/field/details/OptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/details/VersionStorage.h b/include/comms/field/details/VersionStorage.h index 59dbc51..c82855d 100644 --- a/include/comms/field/details/VersionStorage.h +++ b/include/comms/field/details/VersionStorage.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/details/adapters.h b/include/comms/field/details/adapters.h index fa9f09c..4716168 100644 --- a/include/comms/field/details/adapters.h +++ b/include/comms/field/details/adapters.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field/tag.h b/include/comms/field/tag.h index b385563..7e41187 100644 --- a/include/comms/field/tag.h +++ b/include/comms/field/tag.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/field_cast.h b/include/comms/field_cast.h index 677951a..de0d35b 100644 --- a/include/comms/field_cast.h +++ b/include/comms/field_cast.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/fields.h b/include/comms/fields.h index 0e9cb8c..78302d5 100644 --- a/include/comms/fields.h +++ b/include/comms/fields.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/iterator.h b/include/comms/iterator.h index 29c68c7..5b94d63 100644 --- a/include/comms/iterator.h +++ b/include/comms/iterator.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/options.h b/include/comms/options.h index fbe7e3f..5fbc904 100644 --- a/include/comms/options.h +++ b/include/comms/options.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/process.h b/include/comms/process.h index 54960b8..50e027a 100644 --- a/include/comms/process.h +++ b/include/comms/process.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/ChecksumLayer.h b/include/comms/protocol/ChecksumLayer.h index 2284c0c..f738f63 100644 --- a/include/comms/protocol/ChecksumLayer.h +++ b/include/comms/protocol/ChecksumLayer.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/ChecksumPrefixLayer.h b/include/comms/protocol/ChecksumPrefixLayer.h index 7edef35..b7f6697 100644 --- a/include/comms/protocol/ChecksumPrefixLayer.h +++ b/include/comms/protocol/ChecksumPrefixLayer.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/MsgDataLayer.h b/include/comms/protocol/MsgDataLayer.h index 189e643..7d7e5dc 100644 --- a/include/comms/protocol/MsgDataLayer.h +++ b/include/comms/protocol/MsgDataLayer.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/MsgIdLayer.h b/include/comms/protocol/MsgIdLayer.h index 67d6e4b..8979f9a 100644 --- a/include/comms/protocol/MsgIdLayer.h +++ b/include/comms/protocol/MsgIdLayer.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/MsgSizeLayer.h b/include/comms/protocol/MsgSizeLayer.h index dc1f9af..606ba81 100644 --- a/include/comms/protocol/MsgSizeLayer.h +++ b/include/comms/protocol/MsgSizeLayer.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/ProtocolLayerBase.h b/include/comms/protocol/ProtocolLayerBase.h index 2a45385..f06c213 100644 --- a/include/comms/protocol/ProtocolLayerBase.h +++ b/include/comms/protocol/ProtocolLayerBase.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/SyncPrefixLayer.h b/include/comms/protocol/SyncPrefixLayer.h index a1cd228..60e2583 100644 --- a/include/comms/protocol/SyncPrefixLayer.h +++ b/include/comms/protocol/SyncPrefixLayer.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/TransportValueLayer.h b/include/comms/protocol/TransportValueLayer.h index 5701f37..9805c14 100644 --- a/include/comms/protocol/TransportValueLayer.h +++ b/include/comms/protocol/TransportValueLayer.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/checksum/BasicSum.h b/include/comms/protocol/checksum/BasicSum.h index 8d3f737..b1518e2 100644 --- a/include/comms/protocol/checksum/BasicSum.h +++ b/include/comms/protocol/checksum/BasicSum.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/checksum/BasicXor.h b/include/comms/protocol/checksum/BasicXor.h index c222e45..974da24 100644 --- a/include/comms/protocol/checksum/BasicXor.h +++ b/include/comms/protocol/checksum/BasicXor.h @@ -1,5 +1,5 @@ // -// Copyright 2021 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2021 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/checksum/Crc.h b/include/comms/protocol/checksum/Crc.h index 4d15358..6b49b5f 100644 --- a/include/comms/protocol/checksum/Crc.h +++ b/include/comms/protocol/checksum/Crc.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/ChecksumLayerOptionsParser.h b/include/comms/protocol/details/ChecksumLayerOptionsParser.h index ed61788..e8f4698 100644 --- a/include/comms/protocol/details/ChecksumLayerOptionsParser.h +++ b/include/comms/protocol/details/ChecksumLayerOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/MsgDataLayerOptionsParser.h b/include/comms/protocol/details/MsgDataLayerOptionsParser.h index 786ef96..6894e6d 100644 --- a/include/comms/protocol/details/MsgDataLayerOptionsParser.h +++ b/include/comms/protocol/details/MsgDataLayerOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/MsgIdLayerOptionsParser.h b/include/comms/protocol/details/MsgIdLayerOptionsParser.h index e1933ba..830421f 100644 --- a/include/comms/protocol/details/MsgIdLayerOptionsParser.h +++ b/include/comms/protocol/details/MsgIdLayerOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/MsgSizeLayerOptionsParser.h b/include/comms/protocol/details/MsgSizeLayerOptionsParser.h index 6d03479..c3710b3 100644 --- a/include/comms/protocol/details/MsgSizeLayerOptionsParser.h +++ b/include/comms/protocol/details/MsgSizeLayerOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/ProtocolLayerBase.h b/include/comms/protocol/details/ProtocolLayerBase.h index 1bdcc7a..92fa4c9 100644 --- a/include/comms/protocol/details/ProtocolLayerBase.h +++ b/include/comms/protocol/details/ProtocolLayerBase.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/ProtocolLayerBaseOptionsParser.h b/include/comms/protocol/details/ProtocolLayerBaseOptionsParser.h index 9b51281..376293e 100644 --- a/include/comms/protocol/details/ProtocolLayerBaseOptionsParser.h +++ b/include/comms/protocol/details/ProtocolLayerBaseOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/ProtocolLayerDetails.h b/include/comms/protocol/details/ProtocolLayerDetails.h index fb2d090..59d233e 100644 --- a/include/comms/protocol/details/ProtocolLayerDetails.h +++ b/include/comms/protocol/details/ProtocolLayerDetails.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/ProtocolLayerExtendingClassHelper.h b/include/comms/protocol/details/ProtocolLayerExtendingClassHelper.h index 76015a6..434f514 100644 --- a/include/comms/protocol/details/ProtocolLayerExtendingClassHelper.h +++ b/include/comms/protocol/details/ProtocolLayerExtendingClassHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/SyncPrefixLayerOptionsParser.h b/include/comms/protocol/details/SyncPrefixLayerOptionsParser.h index 42fa9e3..fdf1f25 100644 --- a/include/comms/protocol/details/SyncPrefixLayerOptionsParser.h +++ b/include/comms/protocol/details/SyncPrefixLayerOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2021 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2021 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/TransportValueLayerAdapter.h b/include/comms/protocol/details/TransportValueLayerAdapter.h index 405db6d..dad0cab 100644 --- a/include/comms/protocol/details/TransportValueLayerAdapter.h +++ b/include/comms/protocol/details/TransportValueLayerAdapter.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/TransportValueLayerBases.h b/include/comms/protocol/details/TransportValueLayerBases.h index 8e8c525..889b407 100644 --- a/include/comms/protocol/details/TransportValueLayerBases.h +++ b/include/comms/protocol/details/TransportValueLayerBases.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocol/details/TransportValueLayerOptionsParser.h b/include/comms/protocol/details/TransportValueLayerOptionsParser.h index 015c712..e218915 100644 --- a/include/comms/protocol/details/TransportValueLayerOptionsParser.h +++ b/include/comms/protocol/details/TransportValueLayerOptionsParser.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/protocols.h b/include/comms/protocols.h index 00b9873..a2ff564 100644 --- a/include/comms/protocols.h +++ b/include/comms/protocols.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/traits.h b/include/comms/traits.h index c12f27e..363a46c 100644 --- a/include/comms/traits.h +++ b/include/comms/traits.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/units.h b/include/comms/units.h index 094c77d..221f5ff 100644 --- a/include/comms/units.h +++ b/include/comms/units.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/AlignedStorage.h b/include/comms/util/AlignedStorage.h index 86dbcbf..72855fb 100644 --- a/include/comms/util/AlignedStorage.h +++ b/include/comms/util/AlignedStorage.h @@ -1,5 +1,5 @@ // -// Copyright 2024 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2024 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/ArrayView.h b/include/comms/util/ArrayView.h index b8cc7c6..6c0d000 100644 --- a/include/comms/util/ArrayView.h +++ b/include/comms/util/ArrayView.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/BitSizeToByteSize.h b/include/comms/util/BitSizeToByteSize.h index 51dafd2..3f1505f 100644 --- a/include/comms/util/BitSizeToByteSize.h +++ b/include/comms/util/BitSizeToByteSize.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/MaxSizeOf.h b/include/comms/util/MaxSizeOf.h index 1a6d4f1..be7f8be 100644 --- a/include/comms/util/MaxSizeOf.h +++ b/include/comms/util/MaxSizeOf.h @@ -1,5 +1,5 @@ // -// Copyright 2023 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2023 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/ScopeGuard.h b/include/comms/util/ScopeGuard.h index 345b7de..f1abf45 100644 --- a/include/comms/util/ScopeGuard.h +++ b/include/comms/util/ScopeGuard.h @@ -1,5 +1,5 @@ // -// Copyright 2012 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2012 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/SizeToType.h b/include/comms/util/SizeToType.h index 8037055..232f754 100644 --- a/include/comms/util/SizeToType.h +++ b/include/comms/util/SizeToType.h @@ -1,5 +1,5 @@ // -// Copyright 2013 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2013 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/StaticQueue.h b/include/comms/util/StaticQueue.h index 94f5c34..416c5a4 100644 --- a/include/comms/util/StaticQueue.h +++ b/include/comms/util/StaticQueue.h @@ -1,5 +1,5 @@ // -// Copyright 2012 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2012 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/StaticString.h b/include/comms/util/StaticString.h index 3b88547..3058ea4 100644 --- a/include/comms/util/StaticString.h +++ b/include/comms/util/StaticString.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/StaticVector.h b/include/comms/util/StaticVector.h index 1c7c5a2..e19d4ee 100644 --- a/include/comms/util/StaticVector.h +++ b/include/comms/util/StaticVector.h @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/StringView.h b/include/comms/util/StringView.h index 6d01d1f..ff20315 100644 --- a/include/comms/util/StringView.h +++ b/include/comms/util/StringView.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/Tuple.h b/include/comms/util/Tuple.h index 7791390..dd82ccf 100644 --- a/include/comms/util/Tuple.h +++ b/include/comms/util/Tuple.h @@ -1,5 +1,5 @@ // -// Copyright 2013 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2013 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/access.h b/include/comms/util/access.h index 3e0c18e..47411b9 100644 --- a/include/comms/util/access.h +++ b/include/comms/util/access.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/alloc.h b/include/comms/util/alloc.h index e40c056..712d423 100644 --- a/include/comms/util/alloc.h +++ b/include/comms/util/alloc.h @@ -1,5 +1,5 @@ // -// Copyright 2016 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2016 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/assign.h b/include/comms/util/assign.h index 312194c..359bca7 100644 --- a/include/comms/util/assign.h +++ b/include/comms/util/assign.h @@ -1,5 +1,5 @@ // -// Copyright 2020 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2020 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/construct.h b/include/comms/util/construct.h index bf15fc4..6555a71 100644 --- a/include/comms/util/construct.h +++ b/include/comms/util/construct.h @@ -1,5 +1,5 @@ // -// Copyright 2024 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2024 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/details/AssignHelper.h b/include/comms/util/details/AssignHelper.h index 6ddf459..b1e2425 100644 --- a/include/comms/util/details/AssignHelper.h +++ b/include/comms/util/details/AssignHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2020 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2020 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/details/ConstructHelper.h b/include/comms/util/details/ConstructHelper.h index d66199b..3fdfd38 100644 --- a/include/comms/util/details/ConstructHelper.h +++ b/include/comms/util/details/ConstructHelper.h @@ -1,5 +1,5 @@ // -// Copyright 2024 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2024 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/details/detect.h b/include/comms/util/details/detect.h index c909223..9de9889 100644 --- a/include/comms/util/details/detect.h +++ b/include/comms/util/details/detect.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/details/type_traits.h b/include/comms/util/details/type_traits.h index e4cbb1e..47e77d7 100644 --- a/include/comms/util/details/type_traits.h +++ b/include/comms/util/details/type_traits.h @@ -1,5 +1,5 @@ // -// Copyright 2013 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2013 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/detect.h b/include/comms/util/detect.h index 48fe7f1..e9b90d2 100644 --- a/include/comms/util/detect.h +++ b/include/comms/util/detect.h @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/util/type_traits.h b/include/comms/util/type_traits.h index 3dab4aa..20932ac 100644 --- a/include/comms/util/type_traits.h +++ b/include/comms/util/type_traits.h @@ -1,5 +1,5 @@ // -// Copyright 2013 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2013 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/include/comms/version.h b/include/comms/version.h index 9f07d23..1e8cc35 100644 --- a/include/comms/version.h +++ b/include/comms/version.h @@ -1,5 +1,5 @@ // -// Copyright 2018 - 2024 (C). Alex Robenko. All rights reserved. +// Copyright 2018 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/ChecksumLayer.th b/test/ChecksumLayer.th index 2f4a3e9..aef5d98 100644 --- a/test/ChecksumLayer.th +++ b/test/ChecksumLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/ChecksumPrefixLayer.th b/test/ChecksumPrefixLayer.th index 9b79bb2..69dcea7 100644 --- a/test/ChecksumPrefixLayer.th +++ b/test/ChecksumPrefixLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/CommsTestCommon.h b/test/CommsTestCommon.h index 19c5776..be677ed 100644 --- a/test/CommsTestCommon.h +++ b/test/CommsTestCommon.h @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/CustomChecksumLayer.th b/test/CustomChecksumLayer.th index 34d426e..f2a4ee2 100644 --- a/test/CustomChecksumLayer.th +++ b/test/CustomChecksumLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2021 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/CustomChecksumPrefixLayer.th b/test/CustomChecksumPrefixLayer.th index 546f653..ed4c9bd 100644 --- a/test/CustomChecksumPrefixLayer.th +++ b/test/CustomChecksumPrefixLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2021 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/CustomMsgIdLayer.th b/test/CustomMsgIdLayer.th index 40b3542..a8642e5 100644 --- a/test/CustomMsgIdLayer.th +++ b/test/CustomMsgIdLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/CustomMsgSizeLayer.th b/test/CustomMsgSizeLayer.th index 188371e..bdd7941 100644 --- a/test/CustomMsgSizeLayer.th +++ b/test/CustomMsgSizeLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/CustomSyncPrefixLayer.th b/test/CustomSyncPrefixLayer.th index 5b23838..8fbf5ee 100644 --- a/test/CustomSyncPrefixLayer.th +++ b/test/CustomSyncPrefixLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2021 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/CustomTransportValueLayer.th b/test/CustomTransportValueLayer.th index 97bfd73..cd66f8e 100644 --- a/test/CustomTransportValueLayer.th +++ b/test/CustomTransportValueLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2021 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/Dispatch.th b/test/Dispatch.th index ab1b885..2b47a77 100644 --- a/test/Dispatch.th +++ b/test/Dispatch.th @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/Fields.th b/test/Fields.th index 2ca4eb5..9ec2f50 100755 --- a/test/Fields.th +++ b/test/Fields.th @@ -1,5 +1,5 @@ // -// Copyright 2013 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2013 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/Fields2.th b/test/Fields2.th index e2ccf65..bf74c5e 100644 --- a/test/Fields2.th +++ b/test/Fields2.th @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/Message.th b/test/Message.th index e10384b..a3da617 100644 --- a/test/Message.th +++ b/test/Message.th @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/MsgDataLayer.th b/test/MsgDataLayer.th index cdf1db5..87ec27f 100644 --- a/test/MsgDataLayer.th +++ b/test/MsgDataLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/MsgFactory.th b/test/MsgFactory.th index 7b50c76..3edbdba 100644 --- a/test/MsgFactory.th +++ b/test/MsgFactory.th @@ -1,5 +1,5 @@ // -// Copyright 2019 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2019 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/MsgIdLayer.th b/test/MsgIdLayer.th index 1953e60..bd4a265 100644 --- a/test/MsgIdLayer.th +++ b/test/MsgIdLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/MsgSizeLayer.th b/test/MsgSizeLayer.th index c2f1bf6..9b2fc86 100644 --- a/test/MsgSizeLayer.th +++ b/test/MsgSizeLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/SyncPrefixLayer.th b/test/SyncPrefixLayer.th index cb669de..0518fb6 100644 --- a/test/SyncPrefixLayer.th +++ b/test/SyncPrefixLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2014 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2014 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/TransportValueLayer.th b/test/TransportValueLayer.th index 3e28c24..bb05ca6 100644 --- a/test/TransportValueLayer.th +++ b/test/TransportValueLayer.th @@ -1,5 +1,5 @@ // -// Copyright 2017 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2017 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/test/Util.th b/test/Util.th index d43219c..0c5bfd6 100644 --- a/test/Util.th +++ b/test/Util.th @@ -1,5 +1,5 @@ // -// Copyright 2015 - 2021 (C). Alex Robenko. All rights reserved. +// Copyright 2015 - 2025 (C). Alex Robenko. All rights reserved. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this From c932a1f61b7b487ab2d8960aa6bf8344573bc42b Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 11 Jan 2025 15:25:28 +1000 Subject: [PATCH 17/17] Not building tags on github actions. --- .github/workflows/actions_build.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index e7bec43..c016aa6 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -1,6 +1,11 @@ name: Github Actions Build -on: [push] +on: + push: + branches: + - '**' + tags-ignore: + - '**' jobs: