OcaMediaTransportSessionAgent#
This document describes the device side 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#
- ClassID: 1.2.20
- Header:
aes70/device/OcaMediaTransportSessionAgent.hpp
- Namespace:
aes70::device
- Inheritance: aes70::device::OcaAgent, aes70::device::OcaRoot, aes70::device::object
Class Declaration#
The device side implementation has the following signature.
namespace aes70::device
{
template <class Implementation>
class OcaMediaTransportSessionAgent : public OcaAgent<Implementation>
{
};
}
The template argument Implementation
may implement the following methods.
Note
The signatures given here are just one possibility and that most methods are optional. Implement only those methods which make sense in the context of your device. See the documentation in Implementing AES70 Classes for more details.
class MyOcaMediaTransportSessionAgentImplementation
{
// Methods defined by OcaMediaTransportSessionAgent
OcaString GetSessionType();
OcaList<OcaMediaTransportSession> GetSessions();
OcaMediaTransportSession GetSession(OcaMediaTransportSessionID ID);
void AddSession();
void ConfigureSession(OcaMediaTransportSessionID IDinternal, OcaBlob IDexternal, OcaString UserLabel, OcaBlob AdaptationData);
void DeleteSession(OcaMediaTransportSessionID ID);
void ResetSession(OcaMediaTransportSessionID ID);
void SetStreamingEnabled(OcaMediaTransportSessionID ID, OcaBoolean Active);
void StartStreaming(OcaMediaTransportSessionID ID);
void StopStreaming(OcaMediaTransportSessionID ID);
OcaMap<OcaMediaTransportSessionID, OcaMediaTransportSessionStatus> GetSessionStatuses();
OcaMediaTransportSessionStatus GetSessionStatus(OcaMediaTransportSessionID ID);
void AddConnection(OcaMediaTransportSessionID SessionID);
void ConfigureConnection(OcaMediaTransportSessionID SessionID, OcaMediaTransportSessionConnectionID ConnectionID, OcaMediaStreamEndpointID LocalEndpointID, OcaBlob RemoteEndpointID);
void DeleteConnection(OcaMediaTransportSessionID SessionID, OcaMediaTransportSessionConnectionID ConnectionID);
void DeleteConnections(OcaMediaTransportSessionID SessionID);
OcaAdaptationData GetAdaptationData();
void SetAdaptationData(OcaAdaptationData Data);
// Methods defined by OcaAgent
OcaString GetLabel();
void SetLabel(OcaString Label);
OcaONo GetOwner();
std::tuple<OcaRolePath,OcaONoPath> GetPath();
// Methods defined by OcaRoot
OcaBoolean GetLockable();
void SetLockNoReadWrite();
void Unlock();
OcaString GetRole();
void SetLockNoWrite();
OcaLockState GetLockState();
};