1.1.5 OcaMatrix
Class Hierarchy:
OcaRoot : OcaWorker : OcaMatrix
-
class OcaMatrix : OcaWorker
Rectangular array of identical objects (Matrix Members, or just**** Members in context) that is coordinate addressable and has sets of common input and output ports. An OcaMatrix instance is a container for a two-dimensional collection of members. Matrix members may be workers (including blocks or other matrices), or agents. All members of a given matrix shall be of the same class (the member class). No object shall belong to more than one matrix at a time. No object shall appear more than once in a given matrix. The OcaMatrix object shall not instantiate the Members, but instead shall provide the coordinate addressing, implement the common input and output ports, and provide certain other aggregate functions. The term M**atrix** means an OcaMatrix object plus the ancillary objects that collectively provide matrixing functionality. Specifically, a Matrix shall consists of: 1. One instance of the OcaMatrix class (the matrix object); and 2. (N x M) members, where each member shall be an instance of the member class; and The normative specification of the OcaMatrix class is here. The normative specification of the overall Matrix mechanism, with informative examples, is in [AES70-1(Matrices)].
Properties:
-
static const OcaClassID ClassID = "1.1.5"
Number that uniquely identifies the class. Note that this differs from the object number, which identifies the instantiated object. This property is an override of the OcaRoot property.
This property has id
1.1
.
-
static const OcaClassVersionNumber ClassVersion = 4
Identifies the interface version of the class. Any change to the class definition leads to a higher class version. This property is an override of the OcaRoot property.
This property has id
1.2
.
-
OcaList2D<OcaONo> Members
2D array of Member object numbers. A zero value shall indicate the absence of a Member at the position in question.
This property has id
3.5
.
-
OcaONo Proxy
Object number of the Matrix Proxy. Deprecated in version 4 of this class (AES70-2024).
This property has id
3.6
.
-
OcaMatrixCoordinate X
Active column index. The active column is the column to which matrix proxy method calls will be reflected. Value is zero-relative, i.e. the first column is number zero. A value of 65535 means all columns in the matrix. Deprecated in version 4 of this class (AES70-2024).
This property has id
3.1
.
-
OcaMatrixCoordinate xSize
Number of columns in the matrix. Readonly in some cases.
This property has id
3.3
.
-
OcaMatrixCoordinate Y
Active row index. The active row is the row to which matrix proxy changes will be reflected. Value is zero-relative, i.e. the first row is number zero. A value of 65535 means all rows in the matrix. Deprecated in version 4 of this class (AES70-2024).
This property has id
3.2
.
-
OcaMatrixCoordinate ySize
Number of rows in the matrix. Readonly in some cases.
This property has id
3.4
.
Properties inherited from 1.1 OcaWorker:
OcaMap<OcaPortID, OcaPortClockMapEntry> OcaWorker::PortClockMap
OcaList<OcaPort> OcaWorker::Ports
Methods:
-
OcaStatus GetCurrentXY(OcaMatrixCoordinate &x, OcaMatrixCoordinate &y)
Gets coordinates of the currently active area (cell, row, column, or whole matrix). See the definitions of the properties X and Y for specification of X and Y values.
This method has id
3.1
.
-
OcaStatus SetCurrentXY(OcaMatrixCoordinate x, OcaMatrixCoordinate y)
Sets the currently active area (cell, row, column, or whole matrix). Automatically locks the OcaMatrix object and the Matrix Proxy object. Does not lock the addressed matrix Members. Locks shall persist until any matrix proxy method is called in the same Control Session. See the definitions of the properties X and Y for specification of X and Y values.
This method has id
3.2
.
-
OcaStatus GetSize(OcaMatrixCoordinate &xSize, OcaMatrixCoordinate &ySize, OcaMatrixCoordinate &minXSize, OcaMatrixCoordinate &maxXSize, OcaMatrixCoordinate &minYSize, OcaMatrixCoordinate &maxYSize)
Gets the matrix size.
This method has id
3.3
.
-
OcaStatus SetSize(OcaMatrixCoordinate xSize, OcaMatrixCoordinate ySize)
Sets the matrix size. This method will not be available for fixed-size matrices.
This method has id
3.4
.
-
OcaStatus GetMembers(OcaList2D<OcaONo> &members)
Retrieves the 2D array of Member ONos. Cells for which no Member has been provided will contain the value zero.
This method has id
3.5
.members: Output parameter.
-
OcaStatus SetMembers(OcaList2D<OcaONo> members)
Sets the entire 2D array of Member Object Numbers. Row and column dimensions of the M**embers** parameter shall be equal to the current row and column counts of the Matrix. In the list, a Member Object Number value of zero shall remove any Member at the given position.
This method has id
3.6
.members: Input parameter.
-
OcaStatus GetMember(OcaMatrixCoordinate x, OcaMatrixCoordinate y, OcaONo &memberONo)
Retrieves the object number of the Member at position (x,y). If no Member is defined at this position, shall return the value zero.
This method has id
3.7
.
-
OcaStatus SetMember(OcaMatrixCoordinate x, OcaMatrixCoordinate y, OcaONo memberONo)
Installs a particular object as a Member at position (x,y). If another object is already at this position, it is replaced. If value of the memberONo parameter is zero, any object already at this position is removed and not replaced.
This method has id
3.8
.
-
OcaStatus GetProxy(OcaONo &ONo)
Gets the object number of the Matrix Proxy.
This method has id
3.9
.ONo: Output parameter.
-
OcaStatus SetProxy(OcaONo ONo)
Sets the object number of the Matrix Proxy.
This method has id
3.10
.ONo: Input parameter.
-
OcaStatus GetPortsPerRow(OcaUint8 &Ports)
Gets the number of Ports per row. Note: these are Input Ports.
This method has id
3.11
.Ports: Output parameter.
-
OcaStatus SetPortsPerRow(OcaUint8 Ports)
Sets the number of Ports per row. These shall be Input Ports.
This method has id
3.12
.Ports: Input parameter.
-
OcaStatus GetPortsPerColumn(OcaUint8 &Ports)
Gets the number of Ports per column. Note: these are Output Ports.
This method has id
3.13
.Ports: Output parameter.
-
OcaStatus SetPortsPerColumn(OcaUint8 Ports)
Sets the number of Ports per column. These shall be Output Ports.
This method has id
3.14
.Ports: Input parameter.
-
OcaStatus SetCurrentXYLock(OcaMatrixCoordinate x, OcaMatrixCoordinate y)
Sets the currently active area (cell, row, column, or whole matrix), locks the OcaMatrix object, locks the Matrix Proxy object, and locks all the Members in the active area. Fails if the referenced members cannot all be locked. The OcaMatrix and Matrix Proxy locks shall persist until any Matrix Proxy method is called in the same Control Session. The Member locks shall persist until unlocked by calls to their Unlock() methods or by a call to the OcaMatrix method UnlockCurrent. The returned status indicates whether the operation was successful. See the definitions of the properties X and Y for specification of X and Y values.
This method has id
3.15
.
-
OcaStatus UnlockCurrent()
Unlocks the Member objects in the currently active area of the Matrix. Succeeds only if all the Members of the currently active area can be unlocked. Failure shall not be**** triggered if one or more Members of the currently active area are already unlocked. The returned status indicates whether the operation was successful.
This method has id
3.16
.
-
OcaStatus ExecuteMethod(OcaList32<OcaMatrixCoordinates> TargetMembers, OcaMethodID TargetMethod, OcaList<OcaLongBlob> InData, OcaList<OcaCommandResult> &Results)
Execute the same method in various Matrix Members with a common set of input parameters. Return the status and returned parameter values from each call. When an addressed Member is a Block, this method shall not be capable of executing methods of objects inside the Block. The OcaStatus value returned by this** ExecuteMethods(…)** method shall be as follows: OK ** Requested methods were called; all, none, or some of them succeeded. **<anything else> Problem, no method calls were attempted
This method has id
3.17
.TargetMembers: Input parameter.
TargetMethod: Input parameter.
InData: Input parameter.
Results: Output parameter.
-
OcaStatus ExecuteCommands(OcaList32<OcaMatrixCommand> Commands, OcaList32<OcaCommandResult> &Results)
Execute various methods in various Matrix Members with individual parameter sets for each. Return the status and returned parameter values, if any, from each call. When an addressed Member is a Block, this method shall not be capable of executing methods of objects inside the Block. The OcaStatus value returned by this** ExecuteMethods(…)** method shall be as follows: OK ** Requested methods were called; all, none, or some of them succeeded. **<anything else> Problem, no method calls were attempted
This method has id
3.18
.
Methods inherited from 1.1 OcaWorker:
-
static const OcaClassID ClassID = "1.1.5"