Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::UserEvent Class Reference

#include <event.h>

Inheritance diagram for Realm::UserEvent:
Collaboration diagram for Realm::UserEvent:

Public Member Functions

 UserEvent ()=default
 
constexpr UserEvent (id_t id)
 
void trigger (Event wait_on=Event::NO_EVENT, bool ignore_faults=false) const
 
void cancel (void) const
 
- Public Member Functions inherited from Realm::Event
 Event ()=default
 
constexpr Event (id_t id)
 
constexpr operator id_t () const
 
bool operator< (const Event &rhs) const
 
bool operator== (const Event &rhs) const
 
bool operator!= (const Event &rhs) const
 
bool exists (void) const
 
bool has_triggered (void) const
 
void wait (void) const
 
void external_wait (void) const
 
bool external_timedwait (long long max_ns) const
 
bool has_triggered_faultaware (bool &poisoned) const
 
void wait_faultaware (bool &poisoned) const
 
void external_wait_faultaware (bool &poisoned) const
 
bool external_timedwait_faultaware (bool &poisoned, long long max_ns) const
 
void subscribe (void) const
 
void cancel_operation (const void *reason_data, size_t reason_size) const
 
void set_operation_priority (int new_priority) const
 

Static Public Member Functions

static UserEvent create_user_event (void)
 
- Static Public Member Functions inherited from Realm::Event
static Event merge_events_ignorefaults (const Event *wait_for, size_t num_events)
 
static Event merge_events_ignorefaults (const span< const Event > &wait_for)
 
static Event merge_events_ignorefaults (const std::set< Event > &wait_for)
 
static Event ignorefaults (Event wait_for)
 
static void advise_event_ordering (Event happens_before, Event happens_after)
 
static void advise_event_ordering (const Event *happens_before, size_t num_events, Event happens_after, bool all_must_trigger=true)
 
static void advise_event_ordering (const span< Event > &happens_before, Event happens_after, bool all_must_trigger=true)
 
static Event merge_events (const Event *wait_for, size_t num_events)
 
static Event merge_events (Event ev1, Event ev2, Event ev3=NO_EVENT, Event ev4=NO_EVENT, Event ev5=NO_EVENT, Event ev6=NO_EVENT)
 
static Event merge_events (const std::set< Event > &wait_for)
 
static Event merge_events (const span< const Event > &wait_for)
 

Static Public Attributes

static const UserEvent NO_USER_EVENT
 
- Static Public Attributes inherited from Realm::Event
static const Event NO_EVENT
 The value should be usued to initialize an event handle. NO_EVENT is always in has triggered state .
 

Additional Inherited Members

- Public Types inherited from Realm::Event
typedef ::realm_id_t id_t
 
- Public Attributes inherited from Realm::Event
id_t id {REALM_NO_EVENT}
 

Detailed Description

UserEvents are events that can be scheduled to trigger at a future point in an application and can be waited upon dynamically. This is in contrast to a Realm::Event, which must be a direct consequence of the completion of a specific operation.

Constructor & Destructor Documentation

◆ UserEvent() [1/2]

Realm::UserEvent::UserEvent ( )
default

◆ UserEvent() [2/2]

constexpr Realm::UserEvent::UserEvent ( id_t  id)
inlineconstexpr

Member Function Documentation

◆ cancel()

void Realm::UserEvent::cancel ( void  ) const

◆ create_user_event()

static UserEvent Realm::UserEvent::create_user_event ( void  )
static

Create a new user event.

Returns
the new user event

◆ trigger()

void Realm::UserEvent::trigger ( Event  wait_on = Event::NO_EVENT,
bool  ignore_faults = false 
) const

Trigger the user event.

Parameters
wait_onan event that must trigger before this user event can.
ignore_faultsif true, the user event will be triggered even if the event it is waiting on is poisoned.

Member Data Documentation

◆ NO_USER_EVENT

const UserEvent Realm::UserEvent::NO_USER_EVENT
static

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