rad 6.2.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
rad::EventT< EventTrait > Class Template Referencefinal

#include <anyEvent.hpp>

Inheritance diagram for rad::EventT< EventTrait >:
rad::AnyEvent

Public Types

using payload_t = typename EventTrait::payload_t
 

Public Member Functions

template<typename... Args, typename = typename std::enable_if< std::is_constructible<payload_t, Args...>::value>::type>
 EventT (Args &&... args)
 
 EventT (EventT const &)=default
 
 EventT (EventT &&)=default
 
EventToperator= (EventT const &e)=default
 
payload_t const & GetPayload () const
 
payload_tGetPayload ()
 
AnyEventClone () const override
 
- Public Member Functions inherited from rad::AnyEvent
virtual ~AnyEvent ()
 
char const * GetId () const
 

Static Public Attributes

static constexpr char const * ID = EventTrait::ID
 

Additional Inherited Members

- Protected Member Functions inherited from rad::AnyEvent
 AnyEvent (char const *id)
 
 AnyEvent (AnyEvent const &e)=default
 
 AnyEvent (AnyEvent &&e)=default
 
AnyEventoperator= (AnyEvent const &e)=default
 

Detailed Description

template<typename EventTrait>
class rad::EventT< EventTrait >

Until a codegenerator is in place this can be used to create event classes based on traits.

struct MyEventTrait { static constexpr char const* id = "MyEvent"; using payload_t = rad::PbReq<Server::ReqInit>; };

using MyEvent = EventT<MyEventTrait>;

Member Typedef Documentation

◆ payload_t

template<typename EventTrait >
using rad::EventT< EventTrait >::payload_t = typename EventTrait::payload_t

Constructor & Destructor Documentation

◆ EventT() [1/3]

template<typename EventTrait >
template<typename... Args, typename = typename std::enable_if< std::is_constructible<payload_t, Args...>::value>::type>
rad::EventT< EventTrait >::EventT ( Args &&... args)
inlineexplicit

◆ EventT() [2/3]

template<typename EventTrait >
rad::EventT< EventTrait >::EventT ( EventT< EventTrait > const & )
default

◆ EventT() [3/3]

template<typename EventTrait >
rad::EventT< EventTrait >::EventT ( EventT< EventTrait > && )
default

Member Function Documentation

◆ Clone()

template<typename EventTrait >
AnyEvent * rad::EventT< EventTrait >::Clone ( ) const
inlineoverridevirtual

Clone the event

Implements rad::AnyEvent.

◆ GetPayload() [1/2]

template<typename EventTrait >
payload_t & rad::EventT< EventTrait >::GetPayload ( )
inline

◆ GetPayload() [2/2]

template<typename EventTrait >
payload_t const & rad::EventT< EventTrait >::GetPayload ( ) const
inline

◆ operator=()

template<typename EventTrait >
EventT & rad::EventT< EventTrait >::operator= ( EventT< EventTrait > const & e)
default

Member Data Documentation

◆ ID

template<typename EventTrait >
constexpr char const* rad::EventT< EventTrait >::ID = EventTrait::ID
staticconstexpr

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