API Documentation

Record and Replay

The Record and Replay API enables the coordination of nodes that participate in log sessions. Easy management of participating (logging) nodes is provided by subclasses of LogSession, namely:

Usage

#include <PolySyncRecordReplay.hpp>

LogNodeStatus

LogNodeStatus will represent the status of a node participating in a log session.

It is used to track the last known status of a logging node, and does not interact with the node directly or effect the behavior of the logging node.

LogNodeStatus::LogNodeStatus ( … )

A constructor that initializes with the known status information of a node participating in a log session.

Parameters
in/out type name description
in ps_logfile_mode_kind mode The current mode of the node.
in ps_logfile_state_kind state The current state of the node.
in bool sync = false Indicator if the node has synchronized and is waiting on other nodes.
in double clockScale = 1.0 The rate at which the session clock is ticking.
in ps_timestamp beginning = 0 The first timestamp of the active log session.
in ps_timestamp current = 0 The current timestamp of the active log session.
in ps_timestamp ending = 0 The last timestamp of the active log session.

LogNodeStatus::LogNodeStatus ( … )

A constructor that will initialize using the known status information of a node participating in a log session.

A logging node status is received in a ps_rnr_msg. It is often convenient to construct a LogNodeStatus using a received ps_rnr_msg.

Parameters
in/out type name description
in const ps_rnr_msg * rnrMsg The message used to instantiate status information.

LogNodeStatus::operator== ( … )

The equality operator.

Usage This will only compare mode, state, and synchronization values.

Parameters
in/out type name description
in const LogNodeStatus & other The LogNodeStatus instance with which to compare.
Returns
  • bool - True if mode, state, and sync are considered equal

LogNodeStatus::operator!= ( … )

LogNodeStatus inequality operator.

Usage This will only compare mode, state, and synchronization values.

Parameters
in/out type name description
in const LogNodeStatus & other The LogNodeStatus instance with which to compare.
Returns
  • bool - False if mode, state, and sync are equal

LogNodeStatus::getMode ( )

This will get the current mode.

This does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Returns

LogNodeStatus::getState ( )

This will get the current state.

This does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Returns

LogNodeStatus::getSync ( )

This will get the current synchronization status.

This does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Returns
  • bool - True if node is synchronized and waiting on other nodes

LogNodeStatus::getClockScale ( )

This will get the current clock scale.

This does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Returns
  • double - The current clock tick scale
    • Greater than 1.0 represents faster than real time
    • Less than 1.0 represents slower than real time

LogNodeStatus::getBeginning ( )

This will get the beginning timestamp.

This does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Returns

LogNodeStatus::getCurrent ( )

This gets the current timestamp.

This does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Returns

LogNodeStatus::getEnding ( )

This will get the ending timestamp.

The value is invalid during a live recording session because it has not yet ended.

This does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Returns

LogNodeStatus::setMode ( … )

This will set the mode.

This does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Parameters
in/out type name description
in ps_logfile_mode_kind newMode The new mode to set.
Returns
  • void

LogNodeStatus::setState ( … )

This will set the state.

This does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Parameters
in/out type name description
in ps_logfile_state_kind newState The new state to set.
Returns
  • void

LogNodeStatus::setSync ( … )

This will set the synchronization flag.

It does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Parameters
in/out type name description
in bool newSync The new synchronization value to apply.
Returns
  • void

LogNodeStatus::setClockScale ( … )

This will set the clock tick rate.

It does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Parameters
in/out type name description
in double newClockScale The new clock tick rate value.
Returns
  • void

LogNodeStatus::setBeginning ( … )

This will set the beginning timestamp reported by the logging node.

It does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Parameters
in/out type name description
in ps_timestamp newBeginning The newly reported beginning time.
Returns
  • void

LogNodeStatus::setCurrent ( … )

This will set the current timestamp reported by the logging node.

It does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Parameters
in/out type name description
in ps_timestamp newCurrent The newly reported current time.
Returns
  • void

LogNodeStatus::setEnding ( … )

This will set the ending timestamp reported by the logging node.

It does not query the node directly for its status, but only returns the internal value of the LogNodeStatus instance.

Parameters
in/out type name description
in ps_timestamp newEnding The newly reported ending time.
Returns
  • void

LogSessionStatus

A collection that represents the status of the log session as a whole.

LogSessionStatus::getLogNodeStatus ( … ) const

This will return the LogNodeStatus of the specified node.

Parameters
in/out type name description
in ps_guid nodeGuid The unique identifier of the logging node.
Returns
  • const LogNodeStatus * - Pointer to associated status
    • If ps_guid is known, returns valid pointer
    • If ps_guid is unknown, returns nullptr

LogSessionStatus::updateLogNodeStatus ( … )

This will update the status information for an individual node being tracked.

Parameters
in/out type name description
in ps_guid nodeGuid The unique identifier of the logging node.
in const LogNodeStatus & statusUpdate The status information used to update the specified logging node.
Returns
  • void

LogSessionStatus::allHaveStatus ( … ) const

This will check if all known logging nodes are reported to have reached the provided target LogNodeStatus.

Parameters
in/out type name description
in const LogNodeStatus & targetStatus The target status used to check if all tracked logging nodes have been reached.
Returns
  • bool
    • true - True if all known logging nodes have reached the target status

LogSessionStatus::allHaveStatus ( … ) const

This will check if all known logging nodes are reported to have reached the provided target LogNodeStatus.

Parameters
in/out type name description
in const ps_logfile_mode_kind targetMode The target mode, which all reporting nodes will be checked to have.
in const LogNodeStatus & targetStatus The target status used to check if all tracked logging nodes have been reached.
Returns
  • bool
    • true - True if all known logging nodes have reached the target status

LogSessionStatus::allEndOfLogfile ( )

This will check if all known logging nodes have reached the end of their logfiles.

Returns
  • bool
    • true - If all known logging nodes have reached the end of their logfiles
    • false - If any known logging node has not reached the end of its logfile

LogSessionStatus::anyEndOfLogfile ( )

This will check if any known logging node has reached the end of its logfile.

Returns
  • bool
    • true - If any known logging node has reached the end of its logfile
    • false - If any known logging node has not reached the end of its logfile

LogSessionStatus::getMaxBeginning ( )

This will return the maximum / greatest beginning ps_timestamp of all known logging nodes.

It is useful for finding the earliest common time shared among logging nodes.

Returns
  • ps_timestamp - The maximum beginning timestamp of all known logging nodes

LogSessionStatus::getMinEnding ( )

This will return the minimum / least ending ps_timestamp of all known logging nodes.

It is useful for finding the latest common time shared among nodes.

Returns
  • ps_timestamp - The minimum ending timestamp of all known logging nodes

LogSessionStatus::getMaxEnding ( )

This will get the maximum ending timestamp of all known logging nodes.

Returns
  • ps_timestamp - The maximum ending timestamp of all known logging nodes

LogSessionStatus::begin ( ) const

The constant beginning iterator of the status map.

Returns

LogSessionStatus::end ( ) const

The constant ending iterator of the status map.

Returns

LogSessionStatus::clear ( )

This function will clear tracked data of all LogNodeStatus in the session.

Returns
  • void

LogSessionBroadcaster

LogSessionBroadcaster is an interface that will publish ps_rnr_msg command messages.

LogSessionBroadcaster::LogSessionBroadcaster ( … )

The constructor that will save a reference to the provided Node, which will be used to publish all requested messages.

Parameters
in/out type name description
in const Node & node The Node used to publish messages
Returns
  • void

LogSessionBroadcaster::publishSetMode ( … )

This will publish a ps_rnr_msg that instructs logging nodes to set their mode.

Parameters
in/out type name description
in ps_logfile_mode_kind newMode The mode to which all logging nodes should change.
in ps_rnr_session_id sessionId The unique session identifier.
Returns
  • void

LogSessionBroadcaster::publishSetState ( … )

This will publish a ps_rnr_msg that instructs logging nodes to set their state.

Parameters
in/out type name description
in ps_logfile_state_kind NewState The state to which all logging nodes should change.
in ps_timestamp delayTime The amount of time to delay the state change.
in bool relativeTime = true A flag indicating how to interpret the delayTime parameter. true indicates the time is a relative offset from the current time, and false is for an absolute timestamp. [microseconds]
Returns
  • void

LogSessionBroadcaster::publishSeek ( … )

This will publish a ps_rnr_msg that instructs logging nodes to seek to a given time.

Parameters
in/out type name description
in ps_timestamp seekTime The time to which logging nodes should seek.
Returns
  • void

LogSessionBroadcaster::publishSetClockScaler ( … )

This will publish a ps_rnr_msg that instructs logging nodes to set their clock scaler.

Parameters
in/out type name description
in double newClockScaler The new clock tick rate scaler to be set.
Returns
  • void

LogSessionStatusSubscriber

This Class is notified of changes in LogSessionStatus by LogSessionStatusManager.

Any class may subscribe to these changes by inheriting from LogSessionStatusSubscriber.

Such a class will automatically subscribe to updates upon creation and automatically unsubscribe from updates upon deletion.

The only further requirement is to implement the onLogSessionStatus() function.

If any changes occur, the updated version of LogSessionStatus will be passed to all active LogSessionStatusSubscriber instances via each of their onLogSessionStatus() functions.


class CustomSubscriber : public LogSessionStatusSubscriber
{
    void onLogSessionStatus( const LogSessionStatus & sessionStatus )
    {
        /* use session status here * /
    }
};

LogSessionStatusSubscriber::LogSessionStatusSubscriber ( )

The constructor that automatically subscribes to LogSessionStatusManager upon instantiation.

virtual LogSessionStatusSubscriber::~LogSessionStatusSubscriber ( )

The destructor that automatically unsubscribes from LogSessionStatusManager upon deletion.

virtual LogSessionStatusSubscriber::onLogSessionStatus ( … )

The pure virtual event handler called by LogSessionStatusManager whenever the LogSessionStatus changes.

LogSessionStatusManager

This class manages the LogSessionStatus by handling requests and updating all LogSessionStatusManagers when changes have occurred.

LogSessionStatusManager::getReference ( … )

This will get a reference to the LogSessionStatusManager singleton.

Parameters
in/out type name description
in const Node & node This node is used to subscribe to ps_rnr_msg .
Returns

LogSessionStatusManager::getReference ( … )

This will get a reference to the LogSessionStatusManager singleton.

Parameters
in/out type name description
in Application * application An Application instance that may be used to subscribe the manager to ps_rnr_msg if it is the first invocation.
Returns

LogSessionStatusManager::subscribe ( … )

This function will subscribe a LogSessionStatusSubscriber to LogSessionStatus updates.

It is automatically invoked on creation by any class inheriting from LogSessionStatusSubscriber.

Parameters
in/out type name description
in LogSessionStatusSubscriber * subscriber A pointer to the new subscriber.

LogSessionStatusManager::unsubscribe ( … )

This will unsubscribe a LogSessionStatusSubscriber from LogSessionStatus updates.

It is automatically invoked on destruction by any class inheriting from LogSessionStatusSubscriber.

Parameters
in/out type name description
in LogSessionStatusSubscriber * unsubscriber A pointer to the instance to be unsubscribed.

LogSessionStatusManager::activateSession ( … )

This will set the provided LogSession as the active session.

If there is already an active session, then the previous active session will be deactivated before activating the new session.

Parameters
in/out type name description
in LogSession * newSession A pointer to the LogSession that will be activated.
Returns
  • void

LogSessionStatusManager::deactivatePreviousSession ( )

This will deactivate the active LogSession.

Returns
  • void

LogSessionStatusManager::blockUntilTarget ( … )

This will block the execution until all logging nodes reach the current target LogNodeStatus or timeout.

Parameters
in/out type name description
in ps_timestamp timeout The maximum wait time for logging nodes to reach the target. [microseconds]
Returns

LogSessionStatusManager::requestMode ( … )

This will change the ps_logfile_mode_kind of the target status.

Requests will then be published using LogSessionBroadcaster for logging nodes to change mode accordingly.

Parameters
in/out type name description
in ps_logfile_mode_kind mode The new desired mode for logging nodes.
Returns
  • void

LogSessionStatusManager::requestState ( … )

This will change the ps_logfile_state_kind of the target status.

Requests will then be published using LogSessionBroadcaster for logging nodes to change state accordingly.

Parameters
in/out type name description
in ps_logfile_state_kind state The new desired state for logging nodes.
in ps_timestamp delayTime The time to allow logging nodes to prepare before enforcing state change.
Returns
  • void

LogSessionStatusManager::requestOff ( )

This will publish a request for the logging session to turn off.

Returns
  • void

LogSessionStatusManager::requestClockScale ( … )

This will request active logging nodes to change the clock tick rate scale.

Requests will then be published using LogSessionBroadcaster for logging nodes to change clock tick scale accordingly.

Parameters
in/out type name description
in double clockScale The new desired clock tick rate scale.

LogSessionStatusManager::requestSeek ( … )

This will publish a request for logging nodes to seek up to the provided timestamp.

Requests will then be published using LogSessionBroadcaster for logging nodes to seek accordingly.

Parameters
in/out type name description
in ps_timestamp seekTime The desired time to seek to.
in bool relative Flag indicating if the target seek time is a relative offset from the current time, or an absolute timestamp.

LogSession

LogSession is the abstract interface that defines a logging session.

Any class that implements the LogSession interface must define the activate() and deactivate() functions.

LogSession::LogSession ( … )

This is a constructor that will retrieve a reference to the LogSessionStatusManager.

Parameters
in/out type name description
in const Node & node The node used to retrieve the LogSessionStatusManager.

LogSession::LogSession ( … )

This is a constructor that will retrieve a reference to the LogSessionStatusManager.

Parameters
in/out type name description
in Application * Application Pointer to an application node.

virtual LogSession::~LogSession ( )

If the log session is active upon its destruction, then it will automatically make a request to the LogSessionStatusManager to be deactivated.

virtual LogSession::activate ( )

This pure virtual function is for activating the log session.

This must be implemented by all inheriting classes.

Returns
  • void

virtual LogSession::deactivate ( )

This pure virtual function will deactivate the log session.

This must be implemented by all inheriting classes.

Returns
  • void

LogSession::getId ( )

This will get the current ps_rnr_session_id associated with the logging session.

Returns

LogSession::setId ( … )

The setter for the log session’s ps_rnr_session_id.

Parameters
in/out type name description
in ps_rnr_session_id newId The new identifier for the logging session. This is not checked against pre-existing log session identifiers on the system, so care must be taken to use a unique value.

LogSessionSync

LogSessionSync::LogSessionSync ( … )

The constructor will retrieve a reference to the LogSessionStatusManager.

Parameters
in/out type name description
in const Node & node The node used to retrieve the LogSessionStatusManager.

LogSessionSync::LogSessionSync ( … )

The application node constructor.

Parameters
in/out type name description
in Application application Application node used to subscribe to ps_rnr_msg messages.

LogSessionSync::start ( … )

This will start the log session.

The function should be invoked after activation.

Transition SessionState from ready to live.

Parameters
in/out type name description
in ps_timestamp timeout The maximum amount of time to wait for the logging nodes to start. [microseconds]
Returns
  • const LogSessionStatus & - Logging session status after starting or timeout expires

LogSessionSync::stop ( … )

This will stop the log session, and should be invoked after starting.

This transitions SessionState from any state to SessionState.

Parameters
in/out type name description
in ps_timestamp timeout The maximum amount of time to wait for the logging nodes to stop. [microseconds]
Returns
  • const LogSessionStatus & - Logging session status after stopping or timeout expires

RecordSession


RecordSession record;

record.activate();

record.start();

record.stop();

Example

RecordSession::RecordSession ( … )

The constructor that takes a Node reference.

Parameters
in/out type name description
in const Node & node Used to retrieve the logsessionstatusmanager.

RecordSession::RecordSession ( … )

The constructor that takes an Application instance.

Parameters
in/out type name description
in Application * node Used to subscribe to ps_rnr_msg messages.

virtual activate ( )

This will transition SessionState from OFF to Activating.

Returns
  • void

ReplaySession

A ReplaySession coordinates active nodes to replay a log session.


ReplaySession replay;

// set the identifier for the log session to replay
replay.setId( 1000 );

replay.activate();

replay.start();

replay.stop();

Example

ReplaySession::ReplaySession ( … )

The constructor that takes a Node reference.

Parameters
in/out type name description
in const Node & node Used to retrieve the logsessionstatusmanager.
Returns
  • void

ReplaySession::ReplaySession ( … )

The constructor that takes an Application instance.

Parameters
in/out type name description
in Application * node Used to subscribe to ps_rnr_msg messages.

virtual ReplaySession::activate ( )

This will transition SessionState from OFF to Activating.

Returns
  • void

ReplaySession::pause ( … )

This will pause the replay session.

Replay data will cease until resumed.

Parameters
in/out type name description
in ps_timestamp timeout The maximum amount of time to wait for nodes to pause before the function returns.
Returns
  • const LogSessionStatus & - Known log node statuses when the action is completed or timeout has expired

ReplaySession::setClockScale ( … )

This will set the clock tick rate scale for the replay session.

Tick rates between 0 and 1.0 provide slower replay speed, and tick rates greater than 1.0 give faster replay speed.

Parameters
in/out type name description
in double newClockScale The desired replay clock tick rate.
Returns

ReplaySession::seek ( … )

This will instruct all active replay nodes to seek to the given timestamp.

Parameters
in/out type name description
in ps_timestamp seekTime The timestamp to seek to. [microseconds]
in bool relative If true, then seek time is a relative offset from the session beginning timestamp. If false, then seek time is an absolute timestamp.
Returns

RecordSessionAsync

RecordSessionAsync will coordinate the active nodes to record a log session.

The coordination is done asynchronously by requesting changes, and later being notified via event handler functions.

RecordSessionAsync::RecordSessionAsync ( … )

RecordSessionsAsync will coordinate a record session, using a Node to receive and publish ps_rnr_msg.

Parameters
in/out type name description
in const Node & node This node is used to subscribe to LogSessionStatusManager.

RecordSessionAsync::RecordSessionAsync ( … )

RecordSessionsAsync will coordinate a record session, using an Application instance to receive and publish ps_rnr_msg.

Parameters
in/out type name description
in Application * node Used to used to subscribe to ps_rnr_msg messages.

virtual RecordSessionsAsync::activate ( )

This will activate the record session.

Returns
  • void

RecordSessionsAsync::onLogSessionStatus ( … )

The session status update handler function. This internal function determines when to invoke the state change event handlers such as onStart, onStop, etc.

Parameters
in/out type name description
in LogSessionStatus sessionStatus The status used to determine the appropriate event handler to invoke.
Returns
  • void

ReplaySessionAsync

ReplaySessionAsync will coordinate active nodes to replay a log session.

Coordination is done asynchronously by requesting changes, and later being notified via event handler functions.

ReplaySessionAsync::ReplaySessionAsync ( … )

ReplaySessionAsync will coordinate a replay session, using a Node to receive and publish ps_rnr_msg.

Parameters
in/out type name description
in const Node & node This node is used to subscribe to LogSessionStatusManager.

ReplaySessionAsync::ReplaySessionAsync ( … )

ReplaySessionAsync will coordinate a replay session, using an Application instance to receive and publish ps_rnr_msg.

Parameters
in/out type name description
in Application * node Used to subscribe to ps_rnr_msg messages.

virtual ReplaySessionAsync::activate ( )

This function will activate the replay session.

It transitions SessionState from Off to Activating to Ready.

It also implements LogSession.

Returns
  • void

ReplaySessionAsync::onLogSessionStatus ( … )

The session status update handler function. This internal function determines when to invoke the state change event handlers such as onStart, onStop, etc.

Parameters
in/out type name description
in LogSessionStatus sessionStatus The status used to determine the appropriate event handler to invoke.
Returns
  • void

ReplaySessionAsync::requestPause ( … )

This will request for the replay session to pause.

When the replay session pauses, onPause will be invoked.

Parameters
in/out type name description
in ps_timestamp asyncDelay The time to allow logging nodes to prepare before enforcing state change. [microseconds]
Returns
  • void

ReplaySessionAsync::requestResume ( … )

This will request for the replay session to resume.

Parameters
in/out type name description
in ps_timestamp asyncDelay The time to allow logging nodes to prepare before enforcing state change. [microseconds]
Returns
  • void

ReplaySessionAsync::onPause ( … )

This will be invoked when the current LogSession has paused and is ready to resume.

Parameters
in/out type name description
in const LogSessionStatus & sessionStatus Representation of the current session state.
Returns
  • void

ReplaySessionAsync::requestSeek ( … )

requestSeek will instruct all active replay nodes to seek to the given time.

Parameters
in/out type name description
in ps_timestamp seekTime The timestamp to which to seek. [microseconds]
in bool relative Flag indicating if the target seek time is a relative offset from the current time, or an absolute ps_timestamp.

ReplaySessionAsync::setLooping ( … )

This will set the function if the replay session loops.

With looping enabled, if any replay node reaches the end of its logfile, then the replay session will automatically seek back to the beginning time of the session.

Parameters
in/out type name description
in bool _looping If true, then looping is enabled. If false, then looping is disabled.

ReplaySessionAsync::getLooping ( )

This will get the current value of the looping option.

Returns
  • bool - true if looping is enabled; false if looping is disabled

ReplaySessionAsync::setClockRate ( … )

This will set the replay clock tick rate.

Tick rates between 0 and 1.0 provide slower replay speed, and tick rates greater than 1.0 give faster replay speed.

Parameters
in/out type name description
in double clockRate A double representing the rate at which the replay clock ‘ticks’. Less than 1.0 results in slower replay, and greater than 1.0 results in a faster replay.
Returns
  • void

LogSessionAsync

LogSessionAsync is an asynchronous implementation of LogSession.

It is differentiated from LogSessionSync by how it requests the active session to change and how it is notified of those changes.

Changes in the logging session are requested, but are not completed immediately. Instead, when requests are completed, it is notified via its event handler functions.

LogSessionAsync::LogSessionAsync ( … )

The constructor that takes a Node reference.

Parameters
in/out type name description
in const Node & node The node used to subscribe to LogSessionStatusManager.

LogSessionAsync::LogSessionAsync ( … )

The constructor that takes an Application instance.

Parameters
in/out type name description
in Application * node Used to used to subscribe to ps_rnr_msg messages.

LogSessionAsync::onLogSessionStatus ( … )

The session status update handler function. This internal function determines when to invoke the state change event handlers such as onStart, onStop, etc.

Parameters
in/out type name description
in LogSessionStatus sessionStatus The status used to determine the appropriate event handler to invoke.
Returns
  • void

LogSessionAsync::requestStart ( … )

This will request the asynchronous log session to start.

When the request is completed, onStart will be invoked.

Parameters
in/out type name description
in ps_timestamp asyncDelay The time to allow logging nodes to prepare before enforcing state change. [microseconds]
Returns
  • void

LogSessionAsync::requestStop ( )

requestStop will request the asynchronous log session to stop.

When the request is completed, onStop will be invoked.

Returns
  • void

LogSessionAsync::requestUpdates ( … )

This will request periodic updates of the current LogSessionStatus.

When new data is available, and it has been longer than the time period requested, then onLogSessionStatus.

Parameters
in/out type name description
in ps_timestamp period The length of time between updates.
Returns
  • void

LogSessionAsync::onReady ( … )

This is invoked when the current LogSession has completed activation and is ready to start.

Parameters
in/out type name description
in const LogSessionStatus & sessionStatus Representation of the current session state.
Returns
  • void

LogSessionAsync::onStart ( … )

This will be invoked when the current LogSession has started.

Parameters
in/out type name description
in const LogSessionStatus & sessionStatus The representation of the current session state.
Returns
  • void

LogSessionAsync::onStop ( … )

This will be invoked when the current LogSession has stopped.

Parameters
in/out type name description
in const LogSessionStatus & sessionStatus The representation of the current session state.
Returns
  • void

LogSessionAsync::onUpdate ( … )

If requestUpdates() is invoked, then this function is used to deliver those periodic updates.

Parameters
in/out type name description
in const LogSessionStatus & sessionStatus The representation of the current session state.
Returns
  • void