## Class template basic_multiplexer

hamigaki::iostreams::basic_multiplexer —

複数のSourceを一つのSourceに多重化する。

## Synopsis

    template<typename CharT>
    class basic_multiplexer {
    public:
      // types
      typedef boost::iostreams::char_type_of<Device>::type char_type;

      // construct/copy/destruct
      basic_multiplexer();

      // Boost.Iostreams implementation
      void close(std::ios_base::openmode = std::ios_base::in|std::ios_base::out);
      std::streamsize read(char_type*, std::streamsize);

      // queries
      template<typename T> const T* component(int) const;

      // modifier
      template<typename Source> void push(const Source&);
    };

## Description

多重化したいSourceは、push()で追加する。`basic_multiplexer`からの読み出しは、追加した各Sourceから順に1文字ずつ読み出される。

### `basic_multiplexer` construct/copy/destruct

1.     basic_multiplexer();

### `basic_multiplexer` Boost.Iostreams implementation

1.     void close(std::ios_base::openmode which = std::ios_base::in|std::ios_base::out);

2.     std::streamsize read(char_type* s, std::streamsize n);

### `basic_multiplexer` queries

1.     template<typename T> const T* component(int n) const;

### `basic_multiplexer` modifier

1.     template<typename Source> void push(const Source& src);

   Effects: | `push(src, src.block_size());`

| 製作著作 © 2006, 2007 Takeshi Mouri