Skip to content

OcaMediaTransportSessionAgent#

This document describes the controller implementation of OcaMediaTransportSessionAgent. This class is documented in the AES70 standard as:

Agent to set up, monitor, control, and take down media transport sessions.

This shall be the base class for the AES70-CM4 connection management feature. See [AES70-1(Connection Management)].

This is an optional class. Session management functionality is not a mandatory for CM4 implementations.


Overview#

Class Declaration#

namespace aes70::controller
{
  class OcaMediaTransportSessionAgent : public OcaAgent
  {
  public:
    OcaMediaTransportSessionAgent(std::shared_ptr<connection> connection,
            uin32_t object_number);
    OcaMediaTransportSessionAgent(const OcaMediaTransportSessionAgent &o);

    // Control Methods
    // Calls GetSessionType and calls on_result or on_failure
    void GetSessionType(auto on_result, failure_callback on_failure);
    // Calls GetSessions and calls on_result or on_failure
    void GetSessions(auto on_result, failure_callback on_failure);
    // Calls GetSession and calls on_result or on_failure
    void GetSession(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure);
    // Calls GetSession and does not wait for the response
    void GetSession(OcaMediaTransportSessionID ID);
    // Calls AddSession and calls on_result or on_failure
    void AddSession(auto on_result, failure_callback on_failure);
    // Calls ConfigureSession and calls on_result or on_failure
    void ConfigureSession(OcaMediaTransportSessionID IDinternal, OcaBlob IDexternal, OcaString UserLabel, OcaBlob AdaptationData, auto on_result, failure_callback on_failure);
    // Calls ConfigureSession and does not wait for the response
    void ConfigureSession(OcaMediaTransportSessionID IDinternal, OcaBlob IDexternal, OcaString UserLabel, OcaBlob AdaptationData);
    // Calls DeleteSession and calls on_result or on_failure
    void DeleteSession(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure);
    // Calls DeleteSession and does not wait for the response
    void DeleteSession(OcaMediaTransportSessionID ID);
    // Calls ResetSession and calls on_result or on_failure
    void ResetSession(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure);
    // Calls ResetSession and does not wait for the response
    void ResetSession(OcaMediaTransportSessionID ID);
    // Calls SetStreamingEnabled and calls on_result or on_failure
    void SetStreamingEnabled(OcaMediaTransportSessionID ID, OcaBoolean Active, auto on_result, failure_callback on_failure);
    // Calls SetStreamingEnabled and does not wait for the response
    void SetStreamingEnabled(OcaMediaTransportSessionID ID, OcaBoolean Active);
    // Calls StartStreaming and calls on_result or on_failure
    void StartStreaming(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure);
    // Calls StartStreaming and does not wait for the response
    void StartStreaming(OcaMediaTransportSessionID ID);
    // Calls StopStreaming and calls on_result or on_failure
    void StopStreaming(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure);
    // Calls StopStreaming and does not wait for the response
    void StopStreaming(OcaMediaTransportSessionID ID);
    // Calls GetSessionStatuses and calls on_result or on_failure
    void GetSessionStatuses(auto on_result, failure_callback on_failure);
    // Calls GetSessionStatus and calls on_result or on_failure
    void GetSessionStatus(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure);
    // Calls GetSessionStatus and does not wait for the response
    void GetSessionStatus(OcaMediaTransportSessionID ID);
    // Calls AddConnection and calls on_result or on_failure
    void AddConnection(OcaMediaTransportSessionID SessionID, auto on_result, failure_callback on_failure);
    // Calls AddConnection and does not wait for the response
    void AddConnection(OcaMediaTransportSessionID SessionID);
    // Calls ConfigureConnection and calls on_result or on_failure
    void ConfigureConnection(OcaMediaTransportSessionID SessionID, OcaMediaTransportSessionConnectionID ConnectionID, OcaMediaStreamEndpointID LocalEndpointID, OcaBlob RemoteEndpointID, auto on_result, failure_callback on_failure);
    // Calls ConfigureConnection and does not wait for the response
    void ConfigureConnection(OcaMediaTransportSessionID SessionID, OcaMediaTransportSessionConnectionID ConnectionID, OcaMediaStreamEndpointID LocalEndpointID, OcaBlob RemoteEndpointID);
    // Calls DeleteConnection and calls on_result or on_failure
    void DeleteConnection(OcaMediaTransportSessionID SessionID, OcaMediaTransportSessionConnectionID ConnectionID, auto on_result, failure_callback on_failure);
    // Calls DeleteConnection and does not wait for the response
    void DeleteConnection(OcaMediaTransportSessionID SessionID, OcaMediaTransportSessionConnectionID ConnectionID);
    // Calls DeleteConnections and calls on_result or on_failure
    void DeleteConnections(OcaMediaTransportSessionID SessionID, auto on_result, failure_callback on_failure);
    // Calls DeleteConnections and does not wait for the response
    void DeleteConnections(OcaMediaTransportSessionID SessionID);
    // Calls GetAdaptationData and calls on_result or on_failure
    void GetAdaptationData(auto on_result, failure_callback on_failure);
    // Calls SetAdaptationData and calls on_result or on_failure
    void SetAdaptationData(OcaAdaptationData Data, auto on_result, failure_callback on_failure);
    // Calls SetAdaptationData and does not wait for the response
    void SetAdaptationData(OcaAdaptationData Data);

    // Observing Properties
    subscription observeSessions(auto callback, failure_callback on_failure);
    subscription observeSessionStatuses(auto callback, failure_callback on_failure);
    subscription observeAdaptationData(auto callback, failure_callback on_failure);

    // Property Changed Subscriptions
    subscription OnSessionsChanged(auto callback, failure_callback on_failure);
    subscription OnSessionStatusesChanged(auto callback, failure_callback on_failure);
    subscription OnAdaptationDataChanged(auto callback, failure_callback on_failure);
  };
}

Methods#

GetSessionType#

void GetSessionType(auto on_result, failure_callback on_failure)

Calls the method GetSessionType in the remote device.

Parameters:#

  • auto on_result: A callable (e.g. a lambda) with the following arguments:
    • OcaString Type
  • failure_callback on_failure: A callback which is called on error.

GetSessions#

void GetSessions(auto on_result, failure_callback on_failure)

Calls the method GetSessions in the remote device.

Parameters:#

  • auto on_result: A callable (e.g. a lambda) with the following arguments:
    • OcaList<OcaMediaTransportSession> Sessions
  • failure_callback on_failure: A callback which is called on error.

GetSession#

void GetSession(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure)

Calls the method GetSession in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID ID
  • auto on_result: A callable (e.g. a lambda) with the following arguments:
    • OcaMediaTransportSession Session
  • failure_callback on_failure: A callback which is called on error.

AddSession#

void AddSession(auto on_result, failure_callback on_failure)

Calls the method AddSession in the remote device.

Parameters:#

  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

ConfigureSession#

void ConfigureSession(OcaMediaTransportSessionID IDinternal, OcaBlob IDexternal, OcaString UserLabel, OcaBlob AdaptationData, auto on_result, failure_callback on_failure)

Calls the method ConfigureSession in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID IDinternal
  • OcaBlob IDexternal
  • OcaString UserLabel
  • OcaBlob AdaptationData
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

DeleteSession#

void DeleteSession(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure)

Calls the method DeleteSession in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID ID
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

ResetSession#

void ResetSession(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure)

Calls the method ResetSession in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID ID
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

SetStreamingEnabled#

void SetStreamingEnabled(OcaMediaTransportSessionID ID, OcaBoolean Active, auto on_result, failure_callback on_failure)

Calls the method SetStreamingEnabled in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID ID
  • OcaBoolean Active
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

StartStreaming#

void StartStreaming(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure)

Calls the method StartStreaming in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID ID
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

StopStreaming#

void StopStreaming(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure)

Calls the method StopStreaming in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID ID
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

GetSessionStatuses#

void GetSessionStatuses(auto on_result, failure_callback on_failure)

Calls the method GetSessionStatuses in the remote device.

Parameters:#

  • auto on_result: A callable (e.g. a lambda) with the following arguments:
    • OcaMap<OcaMediaTransportSessionID, OcaMediaTransportSessionStatus> Sessions
  • failure_callback on_failure: A callback which is called on error.

GetSessionStatus#

void GetSessionStatus(OcaMediaTransportSessionID ID, auto on_result, failure_callback on_failure)

Calls the method GetSessionStatus in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID ID
  • auto on_result: A callable (e.g. a lambda) with the following arguments:
    • OcaMediaTransportSessionStatus Session
  • failure_callback on_failure: A callback which is called on error.

AddConnection#

void AddConnection(OcaMediaTransportSessionID SessionID, auto on_result, failure_callback on_failure)

Calls the method AddConnection in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID SessionID
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

ConfigureConnection#

void ConfigureConnection(OcaMediaTransportSessionID SessionID, OcaMediaTransportSessionConnectionID ConnectionID, OcaMediaStreamEndpointID LocalEndpointID, OcaBlob RemoteEndpointID, auto on_result, failure_callback on_failure)

Calls the method ConfigureConnection in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID SessionID
  • OcaMediaTransportSessionConnectionID ConnectionID
  • OcaMediaStreamEndpointID LocalEndpointID
  • OcaBlob RemoteEndpointID
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

DeleteConnection#

void DeleteConnection(OcaMediaTransportSessionID SessionID, OcaMediaTransportSessionConnectionID ConnectionID, auto on_result, failure_callback on_failure)

Calls the method DeleteConnection in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID SessionID
  • OcaMediaTransportSessionConnectionID ConnectionID
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

DeleteConnections#

void DeleteConnections(OcaMediaTransportSessionID SessionID, auto on_result, failure_callback on_failure)

Calls the method DeleteConnections in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaMediaTransportSessionID SessionID
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

GetAdaptationData#

void GetAdaptationData(auto on_result, failure_callback on_failure)

Calls the method GetAdaptationData in the remote device.

Parameters:#

  • auto on_result: A callable (e.g. a lambda) with the following arguments:
    • OcaAdaptationData Data
  • failure_callback on_failure: A callback which is called on error.

SetAdaptationData#

void SetAdaptationData(OcaAdaptationData Data, auto on_result, failure_callback on_failure)

Calls the method SetAdaptationData in the remote device. If no result and error callback is specified, the method will be called without requesting a response.

Parameters:#

  • OcaAdaptationData Data
  • auto on_result: A callable (e.g. a lambda) with 0 arguments.
  • failure_callback on_failure: A callback which is called on error.

observeSessions#

subscription observeSessions(auto callback, failure_callback on_failure)

Fetches the remote property Sessions and subscribes for modifications. The callback is called with the initial values of Sessions and whenever it changes.

Parameters:#

  • auto callback: A callable (e.g. a lambda) with one argument: OcaList<OcaMediaTransportSession> Sessions
  • failure_callback on_failure: A callback which is called on error.

observeSessionStatuses#

subscription observeSessionStatuses(auto callback, failure_callback on_failure)

Fetches the remote property SessionStatuses and subscribes for modifications. The callback is called with the initial values of SessionStatuses and whenever it changes.

Parameters:#

  • auto callback: A callable (e.g. a lambda) with one argument: OcaMap<OcaMediaTransportSessionID, OcaMediaTransportSessionStatus> SessionStatuses
  • failure_callback on_failure: A callback which is called on error.

observeAdaptationData#

subscription observeAdaptationData(auto callback, failure_callback on_failure)

Fetches the remote property AdaptationData and subscribes for modifications. The callback is called with the initial values of AdaptationData and whenever it changes.

Parameters:#

  • auto callback: A callable (e.g. a lambda) with one argument: OcaAdaptationData AdaptationData
  • failure_callback on_failure: A callback which is called on error.

OnSessionsChanged#

subscription OnSessionsChanged(auto callback, failure_callback on_failure)

Parameters#

  • auto callback: A callable (e.g. a lambda) with one argument: OcaList<OcaMediaTransportSession> Sessions
  • failure_callback on_failure: A callback which is called on error.

OnSessionStatusesChanged#

subscription OnSessionStatusesChanged(auto callback, failure_callback on_failure)

Parameters#

  • auto callback: A callable (e.g. a lambda) with one argument: OcaMap<OcaMediaTransportSessionID, OcaMediaTransportSessionStatus> SessionStatuses
  • failure_callback on_failure: A callback which is called on error.

OnAdaptationDataChanged#

subscription OnAdaptationDataChanged(auto callback, failure_callback on_failure)

Parameters#

  • auto callback: A callable (e.g. a lambda) with one argument: OcaAdaptationData AdaptationData
  • failure_callback on_failure: A callback which is called on error.