This class bundles an instance of each EventCollection<EventType> into one object that stores the heterogeneous collection.
This is intended to hold heterogeneous events returned by methods like System::CalcNextUpdateTime.
CompositeEventCollection<T> = { EventCollection<PublishEvent<T>>, EventCollection<DiscreteUpdateEvent<T>>, EventCollection<UnrestrictedUpdate<T>>}
There are two concrete derived classes: LeafCompositeEventCollection and DiagramCompositeEventCollection. Adding new events to the collection is only allowed for LeafCompositeEventCollection.
End users should never need to use or know about this class. It is for internal use only.
T | The scalar type, which must be one of the default scalars. |
#include <drake/systems/framework/event_collection.h>
Public Member Functions | |
virtual | ~CompositeEventCollection () |
void | Clear () |
Clears all the events. More... | |
bool | HasEvents () const |
Returns true if and only if this collection contains any events. More... | |
bool | HasPublishEvents () const |
Returns true if and only if this collection contains one or more publish events. More... | |
bool | HasDiscreteUpdateEvents () const |
Returns true if and only if this collection contains one or more discrete update events. More... | |
bool | HasUnrestrictedUpdateEvents () const |
Returns true if and only if this collection contains one or more unrestricted update events. More... | |
void | AddPublishEvent (PublishEvent< T > event) |
Assuming the internal publish event collection is an instance of LeafEventCollection, adds the publish event event (ownership is also transferred) to it. More... | |
void | AddDiscreteUpdateEvent (DiscreteUpdateEvent< T > event) |
Assuming the internal discrete update event collection is an instance of LeafEventCollection, adds the discrete update event event (ownership is also transferred) to it. More... | |
void | AddUnrestrictedUpdateEvent (UnrestrictedUpdateEvent< T > event) |
Assuming the internal unrestricted update event collection is an instance of LeafEventCollection, adds the unrestricted update event event (ownership is also transferred) to it. More... | |
void | AddToEnd (const CompositeEventCollection< T > &other) |
Adds the contained homogeneous event collections (e.g., EventCollection<PublishEvent<T>>, EventCollection<DiscreteUpdateEvent<T>>, etc.) from other to the end of this . More... | |
void | SetFrom (const CompositeEventCollection< T > &other) |
Copies the collections of homogeneous events from other to this . More... | |
const EventCollection< PublishEvent< T > > & | get_publish_events () const |
Returns a const reference to the collection of publish events. More... | |
const EventCollection< DiscreteUpdateEvent< T > > & | get_discrete_update_events () const |
Returns a const reference to the collection of discrete update events. More... | |
const EventCollection< UnrestrictedUpdateEvent< T > > & | get_unrestricted_update_events () const |
Returns a const reference to the collection of unrestricted update events. More... | |
EventCollection< PublishEvent< T > > & | get_mutable_publish_events () const |
Returns a mutable reference to the collection of publish events. More... | |
EventCollection< DiscreteUpdateEvent< T > > & | get_mutable_discrete_update_events () const |
Returns a mutable reference to the collection of discrete update events. More... | |
EventCollection< UnrestrictedUpdateEvent< T > > & | get_mutable_unrestricted_update_events () const |
Returns a mutable reference to the collection of unrestricted update events. More... | |
Does not allow copy, move, or assignment | |
CompositeEventCollection (const CompositeEventCollection &)=delete | |
CompositeEventCollection & | operator= (const CompositeEventCollection &)=delete |
CompositeEventCollection (CompositeEventCollection &&)=delete | |
CompositeEventCollection & | operator= (CompositeEventCollection &&)=delete |
System compatibility | |
See System Compatibility. | |
internal::SystemId | get_system_id () const |
(Internal use only) Gets the id of the subsystem that created this collection. More... | |
void | set_system_id (internal::SystemId id) |
(Internal use only) Records the id of the subsystem that created this collection. More... | |
Protected Member Functions | |
CompositeEventCollection (std::unique_ptr< EventCollection< PublishEvent< T >>> pub, std::unique_ptr< EventCollection< DiscreteUpdateEvent< T >>> discrete, std::unique_ptr< EventCollection< UnrestrictedUpdateEvent< T >>> unrestricted) | |
Takes ownership of pub , discrete and unrestricted . More... | |
|
delete |
|
delete |
|
virtual |
|
protected |
Takes ownership of pub
, discrete
and unrestricted
.
Aborts if any of these are null.
void AddDiscreteUpdateEvent | ( | DiscreteUpdateEvent< T > | event | ) |
Assuming the internal discrete update event collection is an instance of LeafEventCollection, adds the discrete update event event
(ownership is also transferred) to it.
std::exception | if the assumption is incorrect. |
void AddPublishEvent | ( | PublishEvent< T > | event | ) |
Assuming the internal publish event collection is an instance of LeafEventCollection, adds the publish event event
(ownership is also transferred) to it.
std::exception | if the assumption is incorrect. |
void AddToEnd | ( | const CompositeEventCollection< T > & | other | ) |
Adds the contained homogeneous event collections (e.g., EventCollection<PublishEvent<T>>, EventCollection<DiscreteUpdateEvent<T>>, etc.) from other
to the end of this
.
void AddUnrestrictedUpdateEvent | ( | UnrestrictedUpdateEvent< T > | event | ) |
Assuming the internal unrestricted update event collection is an instance of LeafEventCollection, adds the unrestricted update event event
(ownership is also transferred) to it.
std::exception | if the assumption is incorrect. |
void Clear | ( | ) |
Clears all the events.
const EventCollection<DiscreteUpdateEvent<T> >& get_discrete_update_events | ( | ) | const |
Returns a const reference to the collection of discrete update events.
EventCollection<DiscreteUpdateEvent<T> >& get_mutable_discrete_update_events | ( | ) | const |
Returns a mutable reference to the collection of discrete update events.
EventCollection<PublishEvent<T> >& get_mutable_publish_events | ( | ) | const |
Returns a mutable reference to the collection of publish events.
EventCollection<UnrestrictedUpdateEvent<T> >& get_mutable_unrestricted_update_events | ( | ) | const |
Returns a mutable reference to the collection of unrestricted update events.
const EventCollection<PublishEvent<T> >& get_publish_events | ( | ) | const |
Returns a const reference to the collection of publish events.
internal::SystemId get_system_id | ( | ) | const |
(Internal use only) Gets the id of the subsystem that created this collection.
const EventCollection<UnrestrictedUpdateEvent<T> >& get_unrestricted_update_events | ( | ) | const |
Returns a const reference to the collection of unrestricted update events.
bool HasDiscreteUpdateEvents | ( | ) | const |
Returns true
if and only if this collection contains one or more discrete update events.
bool HasEvents | ( | ) | const |
Returns true
if and only if this collection contains any events.
bool HasPublishEvents | ( | ) | const |
Returns true
if and only if this collection contains one or more publish events.
bool HasUnrestrictedUpdateEvents | ( | ) | const |
Returns true
if and only if this collection contains one or more unrestricted update events.
|
delete |
|
delete |
void set_system_id | ( | internal::SystemId | id | ) |
(Internal use only) Records the id of the subsystem that created this collection.
void SetFrom | ( | const CompositeEventCollection< T > & | other | ) |
Copies the collections of homogeneous events from other
to this
.