OcaBlockFactoryAgent#
This document describes the device side implementation of OcaBlockFactoryAgent. This class is documented in the AES70 standard as:
Create custom OcaBlock instances (blocks). Usable only in reconfigurable devices. See AES70-1] for an overview.
Overview#
- ClassID: 1.2.21
- Header:
aes70/device/OcaBlockFactoryAgent.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 OcaBlockFactoryAgent : 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 MyOcaBlockFactoryAgentImplementation
{
// Methods defined by OcaBlockFactoryAgent
OcaGlobalTypeIdentifier GetGlobalType();
void SetGlobalType(OcaGlobalTypeIdentifier GlobalType);
OcaProtoONo AddProtoActionObject(OcaClassID ClassIdentification, OcaList<OcaConstructionParameter> ConstructionParameters);
OcaProtoONo AddProtoBlockUsingFactory(OcaONo FactoryONo);
OcaList<OcaProtoObjectIdentification> GetProtoActionObjects();
OcaProtoONo AddProtoDatasetObject(OcaClassID ClassIdentification, OcaList<OcaConstructionParameter> ConstructionParameters);
OcaList<OcaProtoObjectIdentification> GetProtoDatasetObjects();
void DeleteProtoMember(OcaProtoONo ProtoObjectNumber);
OcaList<OcaProtoPort> GetProtoBlockPorts();
void SetProtoBlockPorts(OcaList<OcaProtoPort> Ports);
OcaPortID SetProtoBlockPort(OcaString Name, OcaIODirection PortMode);
void DeleteProtoBlockPort(OcaPortID ProtoPortID);
OcaMap<OcaUint16, OcaProtoSignalPath> GetProtoSignalPaths();
void SetProtoSignalPaths(OcaMap<OcaUint16, OcaProtoSignalPath> SignalPaths);
OcaUint16 SetProtoSignalPath(OcaProtoSignalPath Path);
OcaUint16 DeleteProtoSignalPath();
OcaMap<OcaPortID, OcaProtoPortClockMapEntry> GetProtoBlockPortClockMap();
void SetProtoBlockPortClockMap(OcaMap<OcaPortID, OcaProtoPortClockMapEntry> Map);
void SetProtoBlockPortClockMapEntry(OcaPortID Port, OcaProtoPortClockMapEntry MapEntry);
void DeleteProtoBlockPortClockMapEntry(OcaPortID PortID);
// 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();
};