= babeltrace2-filter.utils.muxer(7)
:manpagetype: component class
:revdate: 14 September 2019


== NAME

babeltrace2-filter.utils.muxer - Babeltrace 2's message muxer filter
component class


== DESCRIPTION

A Babeltrace~2 compcls:filter.utils.muxer message iterator muxes
the messages that it consumes from one or more upstream message
iterators into a linear sequence of messages ordered by time.

----
            +-----------------+
            | flt.utils.muxer |
            |                 |
Messages -->@ in0         out @--> Sorted messages
Messages -->@ in1             |
Messages -->@ in2             |
            @ in3             |
            +-----------------+
----

include::common-see-babeltrace2-intro.txt[]

A compcls:filter.utils.muxer message iterator does not alter the
messages it consumes: it only sorts them.

The message iterator creates one upstream message iterator per connected
input port.

NOTE: To support muxing messages with different default clock classes,
the message iterator converts the message times to nanoseconds from the
common origin (Unix epoch, for example). This means that the resulting
message sequence could be incorrect if one or more clock classes have a
frequency which is greater than 1~GHz.


== PORTS

----
+-----------------+
| flt.utils.muxer |
|                 |
@ in0         out @
@ ...             |
+-----------------+
----


=== Input

`inN`, where `N` is a decimal integer starting at 0::
    Input port on which a compcls:filter.utils.muxer message iterator
    creates an upstream message iterator to consumes messages from.
+
When the component is initialized, its only input port is
`in0`. When you connect the `in0` port, the component creates
the `in1` input port, and so on.
+
In other words, a compcls:filter.utils.muxer component always has an
available input port.


=== Output

`out`::
    Single output port.


include::common-footer.txt[]


== SEE ALSO

man:babeltrace2-intro(7),
man:babeltrace2-plugin-utils(7)
