The Funnel Block takes in a single discrete event message (either , , or ) and simply passes it through, unchanged, as the discrete event message .
ADL does not allow multiple entries into a single input of a single block but the Funnel Block makes it possible to do so – note, however, that the messages , , and will not pass through the block simultaneously since discrete event messages are always processed sequentially, one stream at a time.
ADL normally does not allow multiple connections into a single discrete input. For instance, in the illustration shown below, the user is attempting to accumulate the trade quantities generated from two separate instruments into a single Value Accumulator. However, the attempted connection is prohibited by ADL.
Example. Attempting to make multiple connections into a single discrete input port
However, by using the Funnel Block, the user can make multiple connections into the Value Accumulator. But, two separate discrete event messages generated by each of the two instruments will never pass through the Funnel Block simultaneously. Even if both instruments trade at the same time, the corresponding discrete event messages will be generated and output sequentially, one after the other.
Example. Using the Funnel Block to make multiple entries into a single discrete input port