25#ifndef ETL_FRAME_CHECK_SEQUENCE_INCLUDED
26#define ETL_FRAME_CHECK_SEQUENCE_INCLUDED
29#include "static_assert.h"
36ETL_STATIC_ASSERT(ETL_USING_8BIT_TYPES,
"This file does not currently support targets with no 8bit type");
43 namespace private_frame_check_sequence
49 template <
typename TFrame_Check_Sequence>
50 class add_insert_iterator :
public etl::iterator<ETL_OR_STD::output_iterator_tag, typename TFrame_Check_Sequence::value_type>
55 explicit add_insert_iterator(TFrame_Check_Sequence& fcs) ETL_NOEXCEPT
61 add_insert_iterator& operator*() ETL_NOEXCEPT
67 add_insert_iterator& operator++() ETL_NOEXCEPT
73 add_insert_iterator& operator++(
int) ETL_NOEXCEPT
79 add_insert_iterator& operator =(uint8_t value)
87 TFrame_Check_Sequence* p_fcs;
96 template <
typename TPolicy>
101 typedef TPolicy policy_type;
102 typedef typename policy_type::value_type value_type;
121 template<
typename TIterator>
124 ETL_STATIC_ASSERT(
sizeof(
typename etl::iterator_traits<TIterator>::value_type) == 1,
"Type not supported");
135 frame_check = policy.initial();
143 template<
typename TIterator>
146 ETL_STATIC_ASSERT(
sizeof(
typename etl::iterator_traits<TIterator>::value_type) == 1,
"Type not supported");
150 frame_check = policy.add(frame_check, *
begin);
158 ETL_CONSTEXPR14
void add(uint8_t value_)
160 frame_check = policy.add(frame_check, value_);
166 ETL_CONSTEXPR14 value_type
value()
const
168 return policy.final(frame_check);
174 ETL_CONSTEXPR14
operator value_type ()
const
176 return policy.final(frame_check);
182 ETL_CONSTEXPR14 add_insert_iterator
input()
184 return add_insert_iterator(*
this);
Definition frame_check_sequence.h:51
ETL_CONSTEXPR14 void add(uint8_t value_)
Definition frame_check_sequence.h:158
ETL_CONSTEXPR14 void add(TIterator begin, const TIterator end)
Definition frame_check_sequence.h:144
ETL_CONSTEXPR14 void reset()
Resets the FCS to the initial state.
Definition frame_check_sequence.h:133
ETL_CONSTEXPR14 frame_check_sequence(TIterator begin, const TIterator end)
Definition frame_check_sequence.h:122
ETL_CONSTEXPR14 frame_check_sequence()
Default constructor.
Definition frame_check_sequence.h:110
ETL_CONSTEXPR14 add_insert_iterator input()
Gets an add_insert_iterator for input.
Definition frame_check_sequence.h:182
ETL_CONSTEXPR14 value_type value() const
Gets the FCS value.
Definition frame_check_sequence.h:166
is_unsigned
Definition type_traits_generator.h:1084
bitset_ext
Definition absolute.h:39
ETL_CONSTEXPR TContainer::iterator begin(TContainer &container)
Definition iterator.h:962
ETL_CONSTEXPR TContainer::iterator end(TContainer &container)
Definition iterator.h:992
iterator
Definition iterator.h:399