Menu

famouso::mw::api::ExtendedEventChannel< EC, Requirement, compileError > Class Template Reference

Provides meta functionality for adding an attribute requirement to a given event channel implementation. More...

#include <ExtendedEventChannel.h>

Data Structures

struct  EmptyProvisionProvider

Public Member Functions

 ExtendedEventChannel (const Subject &subject)
 Chained event channel constructor, simply calls the constructor of the given event channel base class.

Detailed Description

template<typename EC, typename Requirement, bool compileError = true>
class famouso::mw::api::ExtendedEventChannel< EC, Requirement, compileError >

Provides meta functionality for adding an attribute requirement to a given event channel implementation.

The given event channel is assumed to define its handler type which itself can define its appropriate attribute provision. If no provision is defined, an empty provision is used instead and a warning is issued.

The requirement is expected to be an AttributeSet at the moment. All attributes contained in that set are checked against an appropriate attribute of the provision determined as described above.

The checking mechanism could fail either because a required attribute is not defined in the provision or the attribute values do not fit. By the compileError flag it is configurable whether a warning or an error is issued by the compiler.

Template Parameters:
EC The base event channel
Requirement The attribute requirement as an AttributeSet
compileError True, if an compiler error should be issued in case of a failure, false for a compiler warning

Constructor & Destructor Documentation

template<typename EC , typename Requirement , bool compileError = true>
famouso::mw::api::ExtendedEventChannel< EC, Requirement, compileError >::ExtendedEventChannel ( const Subject subject  )  [inline]

Chained event channel constructor, simply calls the constructor of the given event channel base class.

Parameters:
subject The channel's subject which is simply delivered to the base event channel

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