Blueprint Help Send comments on this topic.
Demultiplexors
See Also

Glossary Item Box

Description

Demultiplexors (DMXs) are used to de-multiplex events that are provided by multiplexors.  Note that multiplexed events can be passed through any arbitrary object tree (collected, split, distributed etc) and then de-multiplexed.  This maintains the compose-ability of CDL circuitry.

CDL supports two forms of multiplexing.  In the 'regular' case, consumed events are assumed to have a common form, and are all handled in the same way.  This means that regular multiplexed events do not need to be de-multiplexed, and methods that handle them only have a single entry point which is called for all events.  Regular multiplexing does not require connection labelling but does require each connected provider to have the same event tree structure and data content.

Creation Attributes

Name

Instance name (see Object Names)

Dimensions

Instance dimensionality (see Object Dimensionality)

Presence

Instance presence flag (see Object Presence)

Reentrancy

Instance reentrancy (see Object Reentrancy)

Visibility

Instance visibility flag (see Object Visibility)

Connection Attributes

Event propagator objects have two types of connection.  Those that provide events to their consuming faces, and those that consume events from their providing faces.  The attributes associated with any particular connection therefore depend on the providing and consuming object types (see Automatic Connections).

All automatic connections require;

Timeout

This attribute determines whether the connection will poll or block (see Connection Timeout).

Signature

This attribute is a string that describes the mapping from elements in the consumer, to elements in the provider.  See Connection Mappings.

Dimensions

This attribute determines the dimensionality of the connection array owned by each consuming element.  By default, this will provide the consuming element with one connection for each provider element.  Collector, Multiplexor and Manual connection consumers can have multi-dimensional connection arrays, but in all other cases, this attribute will be '1'.  See Connection Mappings.

Repeat Count

This attribute determines the number of times that each 'provider element to consumer element' connection is repeated.  If the repeat count is greater then one, then the Dimension attribute (above), and the resulting connection access functions, will both have an 'extra' dimension.  Only Collector, Multiplexor and Manual connection consumers can have repeat counts that are greater than '1'.  See Connection Mappings.

Name

This attribute determines the connection's 'name' which is used to construct access function names (see Connection Names).

There are no specific attributes required for connections that provide events to a demultiplexor's consuming face.

The following specific attribute is required for connections that consume events from a demultiplexor's providing face.

Connection Label

This attribute identifies the particular demultiplexor connection that is to be consumed.  Events retrieved from demultiplexors use the same labeling scheme as their providing multiplexors.

Manual Connections

Manual connections provide a means of directly accessing target objects.  These are created automatically from CDL diagrams and accessed using their access function names (see Manual Connections).

Demultiplexor connections provide the following member functions;

WaitEvent()

This member function issues an 'open' request to the demultiplexor (see DMX WaitEvent function).

Close()

This member function closes a previously opened demultiplexor (see DMX Close function).

Automatic and Manual Connections

The following member functions can be used to retrieve information from both automatic and manual connections;

IsOpen()

This member function returns TRUE if the connection is 'Open' or FALSE otherwise.

EventNum()

This member function returns the retrieved event's sequence number.  Numbering starts from zero (the first retrieved event).

LinkNum()

This member function returns the connection's link number.

Notes

It is important to note that all objects between the demultiplexor, and the event provided to the multiplexor, are implicitly transparent and cannot be referenced by the consumer.

Multiplexing/De-multiplexing and Collecting/Splitting; are nestable operations.

Example

See Demultiplexing Compound Multiplexed Events.

See Also