10 #define RAD_EVENT_HPP_
12 #include "rad/detail/Holder.hpp"
13 #include "rad/AnyEvent.hpp"
20 template<
typename EVENT,
33 template<
typename EVENT>
35 typename std::enable_if<!std::is_void<typename EVENT::payload_t>::value>::type> {
36 using payload_t =
typename EVENT::payload_t;
51 template<
class...
Args>
54 m_ptr{
new detail::HolderTImpl<EVENT>{std::forward<Args>(args)...}}
58 char const*
getId()
const {
63 return static_cast<detail::HolderTImpl<EVENT>*
>(m_ptr.get())->m_payload;
77 std::shared_ptr<detail::Holder> m_ptr;
81 #endif // #ifndef EVENT_EVENT_HPP_
EVENT::payload_t & getPayload(AnyEvent &ev)
Definition: GetPayload.hpp:29
string id
Definition: requests.proto:15
tuple Args
Definition: test_command.py:17
Definition: AnyEvent.hpp:55
char const * getId() const
Definition: Event.hpp:24
Event(Args &&...args)
Definition: Event.hpp:53