maliput
|
Abstract base class that represents an event.
The base event contains two main pieces of information: an enum trigger type and an optional attribute of AbstractValue that can be used to explain why the event is triggered. Derived classes should contain a function pointer to an optional callback function that handles the event. See Event Callbacks for detail. No-op is the default handling behavior. Currently, the System framework only supports three concrete event types: PublishEvent, DiscreteUpdateEvent, and UnrestrictedUpdateEvent distinguished by their callback functions' write access level to the State.
Event handling occurs during a simulation of a system. The logic that describes when particular event types are handled is described in the class documentation for Simulator.
#include <src/maliput/drake/systems/framework/event.h>
Public Types | |
using | TriggerType = systems::TriggerType |
Public Member Functions | |
Event () | |
virtual | ~Event () |
virtual bool | is_discrete_update () const =0 |
Returns true if this is a DiscreteUpdateEvent. More... | |
std::unique_ptr< Event > | Clone () const |
Clones this instance. More... | |
TriggerType | get_trigger_type () const |
Returns the trigger type. More... | |
bool | has_event_data () const |
Returns true if this event has associated data. More... | |
const EventData * | get_event_data () const |
Returns a const pointer to the event data. More... | |
EventData * | get_mutable_event_data () |
Returns a mutable pointer to the event data. More... | |
void | set_trigger_type (const TriggerType trigger_type) |
void | set_event_data (std::unique_ptr< EventData > data) |
void | AddToComposite (TriggerType trigger_type, CompositeEventCollection< T > *events) const |
Adds a clone of this event to the event collection events , with the given trigger type. More... | |
void | AddToComposite (CompositeEventCollection< T > *events) const |
Provides an alternate signature for adding an Event that already has the correct trigger type set. More... | |
Protected Member Functions | |
DRAKE_DEFAULT_COPY_AND_MOVE_AND_ASSIGN (Event) | |
Event (const TriggerType &trigger) | |
virtual void | DoAddToComposite (TriggerType trigger_type, CompositeEventCollection< T > *events) const =0 |
Derived classes must implement this to add a clone of this Event to the event collection and unconditionally set its trigger type. More... | |
virtual Event * | DoClone () const =0 |
Derived classes must implement this method to clone themselves. More... | |
using TriggerType = systems::TriggerType |
Event | ( | ) |
|
virtual |
|
explicitprotected |
void AddToComposite | ( | CompositeEventCollection< T > * | events | ) | const |
Provides an alternate signature for adding an Event that already has the correct trigger type set.
Must not have an unknown trigger type.
void AddToComposite | ( | TriggerType | trigger_type, |
CompositeEventCollection< T > * | events | ||
) | const |
Adds a clone of this
event to the event collection events
, with the given trigger type.
If this
event has an unknown trigger type, then any trigger type is acceptable. Otherwise the given trigger type must match the trigger type stored in this
event.
trigger_type
must match the current trigger type unless that is unknown. events
must not be null. std::unique_ptr<Event> Clone | ( | ) | const |
Clones this instance.
|
protectedpure virtual |
Derived classes must implement this to add a clone of this Event to the event collection and unconditionally set its trigger type.
|
protectedpure virtual |
|
protected |
const EventData* get_event_data | ( | ) | const |
Returns a const pointer to the event data.
The returned value can be nullptr, which means this event does not have any associated data.
EventData* get_mutable_event_data | ( | ) |
Returns a mutable pointer to the event data.
The returned value can be nullptr, which means this event does not have any associated data.
TriggerType get_trigger_type | ( | ) | const |
Returns the trigger type.
bool has_event_data | ( | ) | const |
Returns true if this event has associated data.
|
pure virtual |
Returns true
if this is a DiscreteUpdateEvent.
Implemented in UnrestrictedUpdateEvent< T >, DiscreteUpdateEvent< T >, and PublishEvent< T >.
void set_event_data | ( | std::unique_ptr< EventData > | data | ) |
void set_trigger_type | ( | const TriggerType | trigger_type | ) |