# Spec Joiner
Joins two or three input streams.

Extends | Pipe
All Extended | Pipe
Defined in | <seqan/pipe.h>
Signature | `template <typename TInput1, typename TInput2> class Pipe<Bundle2<TInput1, TInput2>, Joiner>; template <typename TInput1, typename TInput2, typename TInput3> class Pipe<Bundle3<TInput1, TInput2, TInput3>, Joiner>;`

## Template Parameters

`TInput1` | The type of the first pipeline module this module reads from.
`TInput2` | The type of the second pipeline module this module reads from.
`TInput3` | The type of the third pipeline module this module reads from.

## Member Function Overview

### Member Functions Inherited From Pipe

- `Pipe`

## Interface Function Overview

### Interface Functions Inherited From Pipe

- `assign`
- `atEnd`
- `beginRead`
- `endRead`
- `front`
- `length`
- `pop`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From Pipe

- `Size`
- `Value`

## Detailed Description

The output type is a packed Pair or Triple of the input types `Value<TInputX>::Type`.

#### Dox Sources

    /*!
     * @class Joiner
     *
     * @extends Pipe
     *
     * @headerfile <seqan/pipe.h>
     *
     * @brief Joins two or three input streams.
     *
     * @signature template <typename TInput1, typename TInput2> class
     *            Pipe<Bundle2<TInput1, TInput2>, Joiner>;
     * @signature template <typename TInput1, typename TInput2, typename TInput3>
     *            class Pipe<Bundle3<TInput1, TInput2, TInput3>, Joiner>;
     *
     * @tparam TInput1 The type of the first pipeline module this module reads from.
     * @tparam TInput2 The type of the second pipeline module this module reads
     *                 from.
     * @tparam TInput3 The type of the third pipeline module this module reads from.
     *
     * The output type is a packed @link Pair @endlink or @link Triple @endlink of
     * the input types <tt>Value&lt;TInputX&gt;::Type</tt>.
     */