maliput
Event< T > Class Template Referenceabstract

Detailed Description

template<typename T>
class maliput::drake::systems::Event< T >

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>

Inheritance diagram for Event< T >:
[legend]

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< EventClone () 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 EventDataget_event_data () const
 Returns a const pointer to the event data. More...
 
EventDataget_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 EventDoClone () const =0
 Derived classes must implement this method to clone themselves. More...
 

Member Typedef Documentation

◆ TriggerType

Constructor & Destructor Documentation

◆ Event() [1/2]

Event ( )

◆ ~Event()

virtual ~Event ( )
virtual

◆ Event() [2/2]

Event ( const TriggerType trigger)
explicitprotected

Member Function Documentation

◆ AddToComposite() [1/2]

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.

◆ AddToComposite() [2/2]

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.

Precondition
trigger_type must match the current trigger type unless that is unknown.
events must not be null.

◆ Clone()

std::unique_ptr<Event> Clone ( ) const

Clones this instance.

◆ DoAddToComposite()

virtual void DoAddToComposite ( TriggerType  trigger_type,
CompositeEventCollection< T > *  events 
) const
protectedpure virtual

Derived classes must implement this to add a clone of this Event to the event collection and unconditionally set its trigger type.

◆ DoClone()

virtual Event* DoClone ( ) const
protectedpure virtual

Derived classes must implement this method to clone themselves.

Any Event-specific data is cloned using the Clone() method. Data specific to the class derived from Event must be cloned by the implementation.

◆ DRAKE_DEFAULT_COPY_AND_MOVE_AND_ASSIGN()

DRAKE_DEFAULT_COPY_AND_MOVE_AND_ASSIGN ( Event< T >  )
protected

◆ get_event_data()

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.

◆ get_mutable_event_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.

◆ get_trigger_type()

TriggerType get_trigger_type ( ) const

Returns the trigger type.

◆ has_event_data()

bool has_event_data ( ) const

Returns true if this event has associated data.

◆ is_discrete_update()

virtual bool is_discrete_update ( ) const
pure virtual

◆ set_event_data()

void set_event_data ( std::unique_ptr< EventData data)

◆ set_trigger_type()

void set_trigger_type ( const TriggerType  trigger_type)

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