Menu

famouso::mw::afp::defrag::MultiSourceDemux< DCP > Class Template Reference

Policy: Event demultiplexer that can handle events from multiple sources, but only one event per source simultaneuosly. More...

#include <MultiSourceDemux.h>

Data Structures

class  Event
 Internal event representation.

Public Types

typedef
NoEventSeqHeaderSupport< DCP > 
EventSeqHeaderPolicy

Public Member Functions

 MultiSourceDemux (flen_t mtu)
 Constructor.
 ~MultiSourceDemux ()
 Destructor.
void * get_defragmenter_handle (const Headers< DCP > &header, const KeyType &event_key)
 Return defragmenter handle of fragment.
Defragmenter< DCP > * get_defragmenter (void *handle)
 Return Defragmenter from handle.
void free_defragmenter (void *handle)
 Frees defragmenter.

Detailed Description

template<class DCP>
class famouso::mw::afp::defrag::MultiSourceDemux< DCP >

Policy: Event demultiplexer that can handle events from multiple sources, but only one event per source simultaneuosly.

IMPORTANT: This demux policy cannot handle multiple arriving events at one time. Thus multithreading will cause problems if threads share one DefragmentationProcessor! You also have to ensure that a received event's data is not needed anymore when next event's fragments are going to be processed!

Use this policy for channels without packet loss, reordering and late duplicates or if you are sure that fragments of only one event per source will be received during defragmentation. This policy is a little robust concerning packet loss, but may lead to erroneous events if first fragment is lost.

This policy does not use event sequence numbers.

Alternatives: SingleEventDemux, EventSeqDemux


Member Typedef Documentation


Constructor & Destructor Documentation

template<class DCP >
famouso::mw::afp::defrag::MultiSourceDemux< DCP >::MultiSourceDemux ( flen_t  mtu  )  [inline]

Constructor.


Member Function Documentation

template<class DCP >
void famouso::mw::afp::defrag::MultiSourceDemux< DCP >::free_defragmenter ( void *  handle  )  [inline]
template<class DCP >
Defragmenter<DCP>* famouso::mw::afp::defrag::MultiSourceDemux< DCP >::get_defragmenter ( void *  handle  )  [inline]

Return Defragmenter from handle.


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