9 #ifndef RAD_ANYEVENT_HPP
10 #define RAD_ANYEVENT_HPP
14 #include <type_traits>
20 using std::runtime_error::runtime_error;
60 inline char const*
GetId()
const {
return m_id; }
92 template <
typename EventTrait>
95 static constexpr
char const*
ID = EventTrait::ID;
98 template <
typename... Args,
typename =
typename std::enable_if<
99 std::is_constructible<
payload_t, Args...>::value>::type>
Definition: anyEvent.hpp:52
AnyEvent(AnyEvent &&e)=default
AnyEvent & operator=(AnyEvent const &e)=default
AnyEvent(AnyEvent const &e)=default
virtual ~AnyEvent()
Definition: anyEvent.cpp:15
char const * GetId() const
Definition: anyEvent.hpp:60
AnyEvent(char const *id)
Definition: anyEvent.cpp:13
virtual AnyEvent * Clone() const =0
Definition: anyEvent.hpp:93
EventT(EventT const &)=default
static constexpr char const * ID
Definition: anyEvent.hpp:95
EventT & operator=(EventT const &e)=default
EventT(Args &&... args)
Definition: anyEvent.hpp:100
payload_t & GetPayload()
Definition: anyEvent.hpp:108
EventT(EventT &&)=default
AnyEvent * Clone() const override
Definition: anyEvent.hpp:110
payload_t const & GetPayload() const
Definition: anyEvent.hpp:106
typename EventTrait::payload_t payload_t
Definition: anyEvent.hpp:96
args
Definition: hellorad.py:185
Definition: actionsApp.cpp:20
std::unique_ptr< AnyEvent > UniqueEvent
Definition: anyEvent.hpp:45
std::shared_ptr< const AnyEvent > SharedEvent
Definition: anyEvent.hpp:44
Definition: errors.hpp:58
Definition: testCoroActivity.cpp:16
Definition: anyEvent.hpp:26
std::string id
Definition: anyEvent.hpp:32
std::type_index payload
Definition: anyEvent.hpp:37
Context context
Definition: anyEvent.hpp:40
Definition: anyEvent.hpp:19