CppSerdes  1.0
A serialization/deserialization library designed with embedded systems in mind
serdes_byte_iterator.h File Reference

Defines a iterator for scanning through the bytes of a serdes::packet even when that packet is not composed of bytes, but instead based on a uint16_t, uint32_t, or uint64_t array. This is particularly useful when dealing with checksum APIs, where the API may require bytes as an input, but you might not want to deal with flipping bytes due to endianness when dealing with uint32_t[] arrays for example. More...

#include "bitcpy_common.h"

Go to the source code of this file.

Classes

class  serdes::byte_iterator_type
 allows iteration through the bytes of a buffer, even when the buffer's underlying type is not a byte array, but instead something larger like a uin32_t[]. More...
 
struct  serdes::byte_iterator_type::byte_segment
 provides a segment of 1 multiple bytes for packets that abstract an actual byte array, this can refer to the entire packet More...
 
class  serdes::byte_iterator_type::iterator
 iterator that scans through the bytes, either one at a time when dealing with endianness details, or all at once if possible (bug endian machines or when the source data was an actual byte array). More...
 
struct  serdes::starting_byte_index
 explict type for representing a starting byte index (since it's easy to mess up the iterator inputs otherwise) More...
 
struct  serdes::number_of_bytes
 explict type for representing the number of bytes to iterate over (since it's easy to mess up the iterator inputs otherwise) More...
 

Namespaces

 serdes
 CppSerdes library namespace.
 

Detailed Description

Defines a iterator for scanning through the bytes of a serdes::packet even when that packet is not composed of bytes, but instead based on a uint16_t, uint32_t, or uint64_t array. This is particularly useful when dealing with checksum APIs, where the API may require bytes as an input, but you might not want to deal with flipping bytes due to endianness when dealing with uint32_t[] arrays for example.

Author
Darren V Levine (Darre.nosp@m.nVLe.nosp@m.vine@.nosp@m.gmai.nosp@m.l.com)