OcaStreamConnector#
This document describes the device side implementation of OcaStreamConnector. This class is documented in the AES70 standard as:
DEPRECATED CLASS Replaced by the OcaMediaSinkConnector and OcaMediaSourceConnector datatypes in version 3 of Connection Management (CM3)
Agent class for objects ("connectors") that allow connection of streams to the device. Streams may be single channels or multichannel groups.
A connector is either a source or a sink. Sources are sometimes called "talkers". Sinks are sometimes called "listeners".
Each connector links to zero or more OcaStream data objects. Each OcaStream object represents a signal flow to or from a local connector to a remote connector. The remote connector is usually, but not necessarily, in a different node.
Each connector collects zero or more signal channels. A signal channel is an instance of OcaNetworkSignalChannel.
Each signal channel exposes one media channel of the stream to the interior of the device. A signal channel therefore is a Worker that contains exactly one OcaPort data object.
Each OcaStreamConnector object belongs to a particular instance of OcaStreamNetwork or a subclass of OcaStreamNetwork .
Each OcaStreamConnector is linked to its network through the Owner property. When a controller creates an OcaStreamConnector object dynamically, the controller must store the Object Number of the corresponding OcaStreamNetwork object in the Owner property., Upon receiving the Owner property change, the OcaStreamConnector object must register itself with the given stream network object via some internal means.
This class may be subclassed to support various network types.
Overview#
- ClassID: 1.2.11
- Header:
aes70/device/OcaStreamConnector.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 OcaStreamConnector : 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 MyOcaStreamConnectorImplementation
{
// Methods defined by OcaStreamConnector
OcaONo GetOwnerNetwork();
void SetOwnerNetwork(OcaONo Network);
OcaStreamConnectorID GetIDAdvertised();
void SetIDAdvertised(OcaStreamConnectorID IDAdvertised);
OcaNetworkMediaSourceOrSink GetSourceOrSink();
void SetSourceOrSink(OcaNetworkMediaSourceOrSink SourceOrSink);
OcaStreamIndex ConnectStream(OcaStream Stream);
void DisconnectStream(OcaStreamIndex StreamID);
OcaMap<OcaStreamIndex, OcaStream> GetStreams();
OcaMap<OcaStreamConnectorPinIndex, OcaONo> GetPins();
OcaStreamConnectorStatus GetStatus();
// 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();
};