![]() |
Workspace 7.0.2
|
Each instance of an ObservableEvent subclass can be used as a unique event designator. More...
#include <Workspace/DataExecution/Events/observableevent.h>
Public Member Functions | |
virtual | ~ObservableEvent ()=default |
virtual const EventID & | getEventID () const =0 |
Observable events are categorised according to the address of EventID instances. This is much more robust than using integer ID's which could clash between different modules, especially when those modules are written by different groups of people. Subclasses of ObservableEvent can also have state, meaning that events can also supply their own data and functionality.
Note that the only way to create an ObservableEvent is to derive from ObservableEventType, which takes a single template parameter which is the final concrete type of the event. This pattern, while perhaps appearing a bit complicated at first, neatly and automatically enables a variety of automatic type deduction to be performed by the compiler in scenarios like calls to the templated ObserverSet::add() member functions.
For a detailed example of how to define your own event, see the ProgressEvent class.
|
virtualdefault |
|
pure virtual |
The ObservableEventType subclass implements this function to return an EventID object that is unique to the subclass, but which remains constant for the lifetime of the application.
Implemented in ObservableEventType< T >, ObservableEventType< ForcedShutdownEvent >, ObservableEventType< ShutdownEvent >, ObservableEventType< AbortedUpdateEvent >, ObservableEventType< AddConnectionEvent >, ObservableEventType< AddOperationEvent >, ObservableEventType< AllObservableEvents >, ObservableEventType< AttachObserverEvent >, ObservableEventType< CausedExecutionErrorEvent >, ObservableEventType< ChangeConnectionEnabledEvent >, ObservableEventType< ComesFromExternalEvent >, ObservableEventType< DeletingIOBaseEvent >, ObservableEventType< ExtrasUpdatedEvent >, ObservableEventType< FinishedExecutionEvent >, ObservableEventType< FinishedUpdateEvent >, ObservableEventType< GlobalNameChangedEvent >, ObservableEventType< GlobalNameDuplicatedEvent >, ObservableEventType< IOBaseDataObjectChangedEvent >, ObservableEventType< IOBaseRenamedEvent >, ObservableEventType< IOBaseVisiblityToggledEvent >, ObservableEventType< InputAddedEvent >, ObservableEventType< InputElementAddedEvent >, ObservableEventType< InputElementRemovalEvent >, ObservableEventType< InputRebuiltEvent >, ObservableEventType< InputRemovalEvent >, ObservableEventType< LogEvent >, ObservableEventType< OperationBreakpointSetEvent >, ObservableEventType< OperationColorChangeEvent >, ObservableEventType< OperationEditableChangeEvent >, ObservableEventType< OperationIconPathChangeEvent >, ObservableEventType< OperationIdChangeEvent >, ObservableEventType< OperationIdPathChangeEvent >, ObservableEventType< OperationLabelChangeEvent >, ObservableEventType< OperationUiPathChangeEvent >, ObservableEventType< OperationUpdateEvent >, ObservableEventType< OutputAddedEvent >, ObservableEventType< OutputRemovalEvent >, ObservableEventType< PauseUpdateEvent >, ObservableEventType< PolymorphicOperationDataNameChangeEvent >, ObservableEventType< ProgressContributionChangeEvent >, ObservableEventType< ProgressEvent >, ObservableEventType< PromptToAddWorkspaceOutput >, ObservableEventType< RemoveConnectionEvent >, ObservableEventType< RemoveOperationEvent >, ObservableEventType< ResyncExtrasEvent >, ObservableEventType< SerializingInputEvent >, ObservableEventType< StartedExecutionEvent >, ObservableEventType< StartedUpdateEvent >, ObservableEventType< StringSelectionUpdatedEvent >, ObservableEventType< UpdateEvent >, ObservableEventType< WorkspaceAtomicToggleEvent >, ObservableEventType< WorkspaceDeletedEvent >, ObservableEventType< WorkspaceExecutionFailedEvent >, ObservableEventType< WorkspaceExecutionSucceededEvent >, ObservableEventType< WorkspaceNamespaceEvent >, ObservableEventType< WorkspaceNotesEvent >, ObservableEventType< WorkspaceOutOfDateEvent >, ObservableEventType< WorkspaceUseCountReachedZeroEvent >, ObservableEventType< MeshModelBeingDestroyedEvent >, ObservableEventType< AddAnchorEvent >, ObservableEventType< AddMiniOperationRackEvent >, ObservableEventType< AddNoteItemEvent >, ObservableEventType< AddToAnchorEvent >, ObservableEventType< ChildSelectedEvent >, ObservableEventType< ClearSelectionEvent >, ObservableEventType< DeselectAnchorEvent >, ObservableEventType< DeselectConnectionEvent >, ObservableEventType< DeselectNoteItemEvent >, ObservableEventType< EditNoteItemEvent >, ObservableEventType< MergeMiniOperationRackEvent >, ObservableEventType< MiniOperationRackIdChangedEvent >, ObservableEventType< MiniOperationRackLabelChangedEvent >, ObservableEventType< MoveAllEvent >, ObservableEventType< MoveAnchorEvent >, ObservableEventType< MoveEvent >, ObservableEventType< MoveMiniOperationRackEvent >, ObservableEventType< MoveNoteItemEvent >, ObservableEventType< PathUpdateRequiredEvent >, ObservableEventType< RemoveAnchorEvent >, ObservableEventType< RemoveFromAnchorEvent >, ObservableEventType< RemoveMiniOperationRackEvent >, ObservableEventType< RemoveNoteItemEvent >, ObservableEventType< ResizeNoteItemEvent >, ObservableEventType< RotateAnchorEvent >, ObservableEventType< SaveWorkspaceViewEvent >, ObservableEventType< SelectAnchorEvent >, ObservableEventType< SelectConnectionEvent >, ObservableEventType< SelectNoteItemEvent >, ObservableEventType< SelectedEvent >, ObservableEventType< SplitMiniOperationRackEvent >, ObservableEventType< UndoMergeMiniOperationRackEvent >, ObservableEventType< WidgetGeometryEvent >, ObservableEventType< CameraInteractionEvent >, ObservableEventType< CameraObserverStateChangedEvent >, ObservableEventType< CameraUpdateEvent >, ObservableEventType< GlobalMatrixModifiedEvent >, ObservableEventType< SceneItemManipulationEvent >, ObservableEventType< CommonConnectorsUpdateWidgetsEvent >, and ObservableEventType< ConnectorsRespondToUpdatesEvent >.