auto & emplaceExtension(Args &&... args)
void setValid(const bool b=true)
void setSubSlot(const ContextID_t subslot)
const EventIDBase & eventID() const
void set(const ContextEvt_t e=0, const ContextID_t s=INVALID_CONTEXT_ID, const ContextID_t subSlot=INVALID_CONTEXT_ID)
const std::type_info & getExtensionType() const
static constexpr ContextID_t INVALID_CONTEXT_ID
void setEvt(const ContextEvt_t e)
friend std::ostream & operator<<(std::ostream &os, const EventContext &ctx)
const T * tryGetExtension() const noexcept
const auto & getExtension() const
T * tryGetExtension() noexcept
static constexpr ContextEvt_t INVALID_CONTEXT_EVT
bool hasExtension() const
bool hasExtension() const
EventContext(const ContextEvt_t e, const ContextID_t s=INVALID_CONTEXT_ID, const ContextID_t subSlot=INVALID_CONTEXT_ID)
ContextID_t subSlot() const
auto & setExtension(T &&t)
void setSlot(const ContextID_t s)
void setEventID(const EventIDBase &e)
std::any detachExtension()