Go to: Attributes.

Metadata editing node. Used to modify metadata that flows through the DG. The data to which metadata is attached comes in through the 'inData' attribute, modified according to the editing instructions in the 'edits' multi-attribute and reattached to the data going out through the 'outData' attribute.

The 'edits' attribute is created based on the set of edits applied through this node. Each successive edit is added to the end of the list. The attributes may be edited or deleted but there is no "roll-up" feature implemented directly on the node.

Attributes used by this node. The structure is a multi-level compound with multi-attributes aggregating per-stream and per-channel edits. This is the structure of the editing attribute.

aEdits (multi) / \ aChannelName aChannelEdits (multi) / \ aStreamName __________aStreamEdits (multi) ______ / / \ \_ / / \ \_ / / \ \ aMetadataEditType aMetadataEditIndex aMetadataEditValue aError

The data sent through to the outData attribute will always be of a type that supports embedded metadata. Most types do not and in those situations the metadata edits will be put into empty data at the output, ignoring whatever non-metadata was present at the input.

To help debugging the output called 'errors' has the failure information stored on it. For example if edit[3] specifies deletion of index 12 and in the current input metadata index 12 does not exist then there will be an error[3] with text something like "Tried to delete a non-existent index". As this example shows, the actual error may not affect the result at all, but it is relevant for debugging. The error string will be blank if the operation succeeded.

Node nameParentsMFn typeCompatible function sets

Attributes (12)

channelEdits, channelName, edits, error, inData, metadataEditType, metadataEditValue, metadataIndexValue, metadataMember, outData, streamEdits, streamName

Long name (short name)TypeDefaultFlags
inData (id) generic typed dataNULLoutputinputconnectablestorable
Input data to which metadata is to be attached/edited.
outData (od) generic typed dataNULLoutputconnectable
Data to which the metadata was attached.
edits (e) compoundn/aarrayoutputinputconnectablestorable
Series of edits to be applied to the incoming metadata.
channelName (cn) stringNULLoutputinputconnectablestorable
Type of channel to which the sibling edits are to be applied
channelEdits (ce) compoundn/aarrayoutputinputconnectablestorable
List of edits applied to the sibling channel type
streamName (sn) stringNULLoutputinputconnectablestorable
Name of the Stream to which the sibling edits are to be applied
streamEdits (se) compoundn/aarrayoutputinputconnectablestorable
List of edits applied to the sibling named Stream
metadataEditType (met) enum0outputinputconnectablestorable
Type of metadata edit the siblings describe. 0 ("set") = metadataEditValue contains a raw serialization of some Stream data, which is merged into the current metadata (i.e. values are modified if they exist, added otherwise) 1 ("delete") = metadataEditValue contains a list of indices to be removed. If the indices don't exist they are ignored. 2 ("reindex") = metadataEditValue contains the new value of the index in the sibling metadataIndexValue attribute. If the new index is past the end of current data the data is extended to include it.
metadataIndexValue (miv) stringNULLoutputinputconnectablestorable
String describing the index to which the edit is applied. The type of index data is dictated by the metadata Stream to which the edits are being applied
metadataMember (mm) stringNULLoutputinputconnectablestorable
String naming the structure member to which the edit is applied, if required by the edit.
metadataEditValue (mev) stringNULLoutputinputconnectablestorable
String describing the edit being applied. The contents of the string differ depending on the type of edit. See the description of the metadataEditType attribute for what is in this string for the various types of edits.
error (err) stringNULLoutputinputconnectablestorable
Errors happening in the last computation of the sibling aMetadataEditXXX Errors are in human-readable format, blank if the operation worked. Though this is set up as an input attribute it is overwritten in the compute method and behaves as an output. The reason it is marked as an input is that the DG insists all attributes in a hierarchy have the same type and recreating a parallel hierarchy on the output side would be wasteful.