Menu

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

Policy: Event demultiplexer supporting event sequence numbers. More...

#include <EventSeqDemux.h>

Data Structures

class  Event
 Internal event representation.

Public Types

enum  { support_late_delivery }
typedef EventSeqHeaderSupport
< DCP > 
EventSeqHeaderPolicy

Public Member Functions

 EventSeqDemux (flen_t mtu)
 Constructor.
 ~EventSeqDemux ()
 Destructor.
void * get_defragmenter_handle (const Headers< DCP > &header, const KeyType &event_key)
Defragmenter< DCP > * get_defragmenter (void *handle)
 Return Defragmenter from handle.
void free_defragmenter (void *handle)
 Frees defragmenter.
void * keep_defragmenter (void *handle)
 Keep defragmenter for later event delivery and return its new handle.
Defragmenter< DCP > * get_kept_defragmenter (void *handle)
 Get defragmenter from kept defragmenter's handle.
void free_kept_defragmenter (void *handle)
 Frees kept defragmenter.

Detailed Description

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

Policy: Event demultiplexer supporting event sequence numbers.

Alternatives: SingleEventDemux, MultiSourceDemux


Member Typedef Documentation


Member Enumeration Documentation

template<class DCP >
anonymous enum

Marks this policy to support late delivery of defragmented events (defragmenter not freed immediately after event is complete)

Enumerator:
support_late_delivery 

Constructor & Destructor Documentation

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

Constructor.


Member Function Documentation

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

Frees defragmenter.

Parameters:
handle Defragmenter's handle

After calling keep_defragmenter(handle) use free_kept_defragmenter() instead of this.

template<class DCP >
void famouso::mw::afp::defrag::EventSeqDemux< DCP >::free_kept_defragmenter ( void *  handle  )  [inline]

Frees kept defragmenter.

Parameters:
handle Defragmenter's handle

After calling keep_defragmenter(handle) use this function instead of free_defragmenter().

References famouso::mw::afp::defrag::EventSeqDemux< DCP >::get_kept_defragmenter().

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

Return Defragmenter from handle.

template<class DCP >
Defragmenter<DCP>* famouso::mw::afp::defrag::EventSeqDemux< DCP >::get_kept_defragmenter ( void *  handle  )  [inline]

Get defragmenter from kept defragmenter's handle.

Parameters:
handle Handle returned by keep_defragmenter.
Returns:
Defragmenter

Referenced by famouso::mw::afp::defrag::EventSeqDemux< DCP >::free_kept_defragmenter().

template<class DCP >
void* famouso::mw::afp::defrag::EventSeqDemux< DCP >::keep_defragmenter ( void *  handle  )  [inline]

Keep defragmenter for later event delivery and return its new handle.

Parameters:
handle Defragmenter's handle
Returns:
New handle you must pass to free_kep_defragmenter
Precondition:
Event must be complete.

After using this function use free_kept_defragmenter() instead of free_defragmenter().

References FAMOUSO_ASSERT, and famouso::mw::afp::defrag::Defragmenter< DCP >::is_event_complete().


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