27 #ifndef ETL_FRAME_CHECK_SEQUENCE_INCLUDED
28 #define ETL_FRAME_CHECK_SEQUENCE_INCLUDED
33 #include "static_assert.h"
39 ETL_STATIC_ASSERT(ETL_8BIT_SUPPORT,
"This file does not currently support targets with no 8bit type");
46 namespace private_frame_check_sequence
52 template <
typename TFCS>
99 template <
typename TPolicy>
104 typedef TPolicy policy_type;
105 typedef typename policy_type::value_type value_type;
123 template<
typename TIterator>
126 ETL_STATIC_ASSERT(
sizeof(
typename etl::iterator_traits<TIterator>::value_type) == 1,
"Type not supported");
137 frame_check = policy.initial();
145 template<
typename TIterator>
148 ETL_STATIC_ASSERT(
sizeof(
typename etl::iterator_traits<TIterator>::value_type) == 1,
"Type not supported");
152 frame_check = policy.add(frame_check, *
begin++);
161 frame_check = policy.add(frame_check, value_);
169 return policy.final(frame_check);
175 operator value_type ()
const
177 return policy.final(frame_check);
190 value_type frame_check;
Definition: frame_check_sequence.h:54
ETL_CONSTEXPR TContainer::iterator begin(TContainer &container)
Definition: container.h:49
ETL_CONSTEXPR TContainer::iterator end(TContainer &container)
Definition: container.h:99
void reset()
Resets the FCS to the initial state.
Definition: frame_check_sequence.h:135
add_insert_iterator input()
Gets an add_insert_iterator for input.
Definition: frame_check_sequence.h:183
void add(uint8_t value_)
Definition: frame_check_sequence.h:159
frame_check_sequence(TIterator begin, const TIterator end)
Definition: frame_check_sequence.h:124
void add(TIterator begin, const TIterator end)
Definition: frame_check_sequence.h:146
frame_check_sequence()
Default constructor.
Definition: frame_check_sequence.h:113
value_type value() const
Gets the FCS value.
Definition: frame_check_sequence.h:167
Definition: frame_check_sequence.h:101
is_unsigned
Definition: type_traits_generator.h:961
Definition: absolute.h:37
iterator
Definition: iterator.h:422