Workspace 6.21.5
Public Member Functions | List of all members
PauseUpdateEvent Class Reference

Event issued during execution whenever it is safe to perform non-connectivity changing actions on a workspace. More...

#include <Workspace/DataExecution/Execution/updaterevents.h>

Inheritance diagram for PauseUpdateEvent:
[legend]

Public Member Functions

 PauseUpdateEvent (bool queueDataChanges=false)
 
bool shouldQueueDataChanges () const
 
- Public Member Functions inherited from ObservableEventType< T >
CSIRO_WORKSPACE_API const EventIDSingleton< CSIRO::DataExecution::AllObservableEvents > & eventID ()
 
CSIRO_WORKSPACE_API const EventIDSingleton< CSIRO::DataExecution::ProgressEvent > & eventID ()
 
const EventIDSingleton< T > & getEventID () const override
 
- Public Member Functions inherited from ObservableEvent
virtual ~ObservableEvent ()=default
 
virtual const EventIDgetEventID () const =0
 

Additional Inherited Members

- Static Public Member Functions inherited from ObservableEventType< T >
static const EventIDSingleton< T > & eventID ()
 
- Protected Member Functions inherited from ObservableEventType< T >
 ObservableEventType ()=default
 

Detailed Description

Parameters
queueDataChangesSpecifies if an Updatable that is currently being updated wants all data changes to the workspace hierarchy to be queued during this PauseUpdateEvent. If this is the case then observers of this event should not make any data changes.

PauseUpdateEvent notifications will be issued whenever an Operation is successfully brought up to date. It may also be issued by operations during their execution if they so choose (see the Operation class details for more information). The main purpose of the event is to allow clients in other threads to stay in sync with data objects held by inputs or outputs without having to disruptively halt workspace execution.

When responding to a notification, observers of this event are explicitly not permitted to do any of the following:

Clients who need to do anything in the above list (ie pretty much anything which changes the connectivity of the workspace) must stop the execution thread first.

Observers are allowed to do the following in response to a notification:

They are permitted to do the following only from the same thread as the notification (ie within Observer::updateInNotificationThread() or in a subclass re-implementation of Observer::update()):

See also
StartedUpdateEvent, FinishedUpdateEvent, AbortedUpdateEvent

Constructor & Destructor Documentation

◆ PauseUpdateEvent()

PauseUpdateEvent ( bool  queueDataChanges = false)
inline

Member Function Documentation

◆ shouldQueueDataChanges()

bool shouldQueueDataChanges ( ) const
inline