Menu

famouso::mw::afp::frag::NoFECFragmenter< FCP > Class Template Reference

Fragmentation not supporting FEC. More...

#include <NoFECFragmenter.h>

Inheritance diagram for famouso::mw::afp::frag::NoFECFragmenter< FCP >:
famouso::mw::afp::frag::FECFragmenter< FCP >

Public Types

enum  { min_header_length = 1 + EventSeqPolicy::header_length }
 

Minimum header length.

More...
enum  { extension_header_length = EventSeqPolicy::header_length }
 

Extension header's length.

More...

Public Member Functions

void init (const uint8_t *event_data, elen_t event_length, flen_t mtu)
 Init a new fragmenter for an event.
bool error ()
 Returns whether an error occured.
flen_t get_fragment (uint8_t *fragment_data)
 Write next fragment to fragment_data buffer.

Protected Member Functions

fcount_t get_next_header_shorten_fseq (fcount_t fseq)
 Returns next fseq number for which header length decrements.
flen_t get_header (uint8_t *data, bool more_ext_hdr=false)
 Write current fragment's header into buffer.

Protected Attributes

flen_t basic_header_length
 Current length of the AFP basic header.
flen_t payload_length
 Current length of the payload.
const uint8_t * remaining_data
 Data remaining to be fragmented.
elen_t remaining_length
 Length of the data remaining to be fragmented (without FEC data fragments).
fcount_t remaining_fragments
 Number of fragments still to be fetched via get_fragment().
fcount_t next_header_shorten_fseq
 Next fragement sequence number for decrementing header length.
bool first_fragment
 Is next fragment is the first fragment?
EventSeqPolicy event_seq
 Event sequence number generator (may do nothing).
bool err
 Error indication.

Detailed Description

template<class FCP>
class famouso::mw::afp::frag::NoFECFragmenter< FCP >

Fragmentation not supporting FEC.

All fragments will be of equal size (MTU), the last fragment may be smaller. Due to variable header length the payload is variable too.


Member Enumeration Documentation

template<class FCP >
anonymous enum

Minimum header length.

Enumerator:
min_header_length 
template<class FCP >
anonymous enum

Extension header's length.

Enumerator:
extension_header_length 

Member Function Documentation

template<class FCP >
bool famouso::mw::afp::frag::NoFECFragmenter< FCP >::error (  )  [inline]

Returns whether an error occured.

Check this after construction.

References famouso::mw::afp::frag::NoFECFragmenter< FCP >::err.

template<class FCP >
flen_t famouso::mw::afp::frag::NoFECFragmenter< FCP >::get_header ( uint8_t *  data,
bool  more_ext_hdr = false 
) [inline, protected]
template<class FCP >
fcount_t famouso::mw::afp::frag::NoFECFragmenter< FCP >::get_next_header_shorten_fseq ( fcount_t  fseq  )  [inline, protected]

Field Documentation

template<class FCP >
EventSeqPolicy famouso::mw::afp::frag::NoFECFragmenter< FCP >::event_seq [protected]

Event sequence number generator (may do nothing).

Referenced by famouso::mw::afp::frag::NoFECFragmenter< FCP >::get_header().


The documentation for this class was generated from the following file: