OcaBlock#
This document describes the device side implementation of OcaBlock. This class is documented in the AES70 standard as:
Collection object for hierarchical structuring of Control Object populations.
The term Block means an instance of OcaBlock. A Block may contain Action Objects and/or Dataset Objects, where:
An Action Object is defined as one of: Worker object;, Agent object;, Network Interface object;, Network Application object.
A Dataset Object is defined an instance of OcaDataset or of a subclass of OcaDataset.
The term Block Member (or just Member in context) means an object contained in a Block - either an Action Object or a Dataset Object. The Block that contains an object is termed the object's Owner.
A Block may define a Signal Flow that represents internal signal flows among its Members.
Typically, a Block contains a set of Members that together function as a processing unit -- for example, a crossover channel or mixer strip.
Overview#
- ClassID: 1.1.3
- Header:
aes70/device/OcaBlock.hpp
- Namespace:
aes70::device
- Inheritance: aes70::device::OcaWorker, aes70::device::OcaRoot, aes70::device::object
Class Declaration#
The device side implementation has the following signature.
namespace aes70::device
{
template <class Implementation>
class OcaBlock : public OcaWorker<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 MyOcaBlockImplementation
{
// Methods defined by OcaBlock
OcaONo GetType();
OcaONo ConstructActionObject(OcaClassID ClassID, OcaList<OcaConstructionParameter> ConstructionParameters);
OcaONo ConstructBlockUsingFactory(OcaONo FactoryONo);
void DeleteMember(OcaONo ObjectNumber);
OcaList<OcaObjectIdentification> GetActionObjects();
OcaList<OcaBlockMember> GetActionObjectsRecursive();
OcaID16 AddSignalPath(OcaSignalPath Path);
void DeleteSignalPath(OcaID16 Index);
OcaMap<OcaID16, OcaSignalPath> GetSignalPaths();
OcaMap<OcaID16, OcaSignalPath> GetSignalPathsRecursive();
OcaLibVolIdentifier GetMostRecentParamSetIdentifier();
OcaLibVolIdentifier ApplyParamSet();
OcaLibVolData_ParamSet GetCurrentParamSetData();
void StoreCurrentParamSetData(OcaLibVolIdentifier Identifier);
OcaGlobalTypeIdentifier GetGlobalType();
OcaMap<OcaProtoONo, OcaONo> GetONoMap();
OcaList<OcaActionObjectSearchResult> FindActionObjectsByRole(OcaString SearchName, OcaStringComparisonType NameComparisonType, OcaClassID SearchClassID, OcaActionObjectSearchResultFlags ResultFlags);
OcaList<OcaActionObjectSearchResult> FindActionObjectsByRoleRecursive(OcaString SearchName, OcaStringComparisonType NameComparisonType, OcaClassID SearchClassID, OcaActionObjectSearchResultFlags ResultFlags);
OcaList<OcaActionObjectSearchResult> FindActionObjectsByLabelRecursive(OcaString SearchName, OcaStringComparisonType NameComparisonType, OcaClassID SearchClassID, OcaActionObjectSearchResultFlags ResultFlags);
OcaList<OcaActionObjectSearchResult> FindActionObjectsByRolePath(OcaRolePath SearchPath, OcaActionObjectSearchResultFlags ResultFlags);
OcaBlockConfigurability GetConfigurability();
OcaONo GetMostRecentParamDatasetONo();
void ApplyParamDataset(OcaONo ONo);
void StoreCurrentParameterData(OcaONo ONo);
OcaLongBlob FetchCurrentParameterData();
OcaLongBlob ApplyParameterData();
OcaONo ConstructDataset(OcaClassID ClassID, OcaString Name, OcaMimeType Type, OcaUint64 MaxSize, OcaLongBlob InitialContents);
OcaONo DuplicateDataset(OcaONo OldONo, OcaONo TargetBlockONo, OcaString NewName, OcaUint64 NewMaxSize);
OcaList<OcaObjectIdentification> GetDatasetObjects();
OcaList<OcaBlockMember> GetDatasetObjectsRecursive();
OcaList<OcaDatasetSearchResult> FindDatasets(OcaString Name, OcaStringComparisonType NameComparisonType, OcaMimeType Type, OcaStringComparisonType TypeComparisonType);
OcaList<OcaDatasetSearchResult> FindDatasetsRecursive(OcaString Name, OcaStringComparisonType NameComparisonType, OcaMimeType Type, OcaStringComparisonType TypeComparisonType);
OcaONo GetBlockFactoryONo();
// Methods defined by OcaWorker
OcaBoolean GetEnabled();
void SetEnabled(OcaBoolean enabled);
OcaPortID AddPort(OcaString Name, OcaIODirection Mode);
void DeletePort(OcaPortID ID);
OcaList<OcaPort> GetPorts();
OcaString GetPortName(OcaPortID PortID);
void SetPortName(OcaPortID ID, OcaString Name);
OcaString GetLabel();
void SetLabel(OcaString label);
OcaONo GetOwner();
OcaTimeInterval GetLatency();
void SetLatency(OcaTimeInterval latency);
std::tuple<OcaRolePath,OcaONoPath> GetPath();
OcaMap<OcaPortID, OcaPortClockMapEntry> GetPortClockMap();
void SetPortClockMap(OcaMap<OcaPortID, OcaPortClockMapEntry> Map);
OcaPortClockMapEntry GetPortClockMapEntry(OcaPortID ID);
void SetPortClockMapEntry(OcaPortID PortID, OcaPortClockMapEntry Entry);
void DeletePortClockMapEntry(OcaPortID ID);
// Methods defined by OcaRoot
OcaBoolean GetLockable();
void SetLockNoReadWrite();
void Unlock();
OcaString GetRole();
void SetLockNoWrite();
OcaLockState GetLockState();
};