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
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:
- include/mw/api/ExtendedEventChannel.h