An BidirectionalFilter is a Filter whose mode refines bidirectional. 
An BidirectionalFilter operates on the character sequences controlled by a BidirectionalDevice, providing access to two filtered sequences having the same character type. It may expose the filtered sequences in two ways:
get and put.
        read and write.
        | Character type | The type of the characters in the filtered sequences | 
| Category | A type convertible to filter_tagand tobidirectional | 
| Mode | The unique most-derived mode tag to which Category is convertible | 
| F | - A type which is a model of BidirectionalFilter | 
| D | - A type which is a model of Device, with the same character type as Fand with mode refining the mode ofF | 
| Ch | - The character type of F | 
| Tr | - boost::iostreams::char_traits<Ch> | 
| f | - Object of type F | 
| d | - Object of type D | 
| c | - Object of type Ch | 
| s1 | - Object of type Ch* | 
| s2 | - Object of type const Ch* | 
| n | - Object of type std::streamsize | 
| io | - Alias for namespace boost::iostreams | 
| Expression | Expression Type | Category Precondition | Semantics | 
|---|---|---|---|
|  | typenameof the character type | - | - | 
|  | typenameof the category | - | - | 
|  | Tr::int_type | Convertible to inputbut not tomultichar_tag | Returns the next character in the input sequence controlled by f,Tr::eof()if the end of the sequence has been reached orTr::would_block()if input is temporarily unavilable because a call todhas produced fewer characters than requested. The input sequence controlled bydmay be accessed usingio::get,io::readandio::putback. | 
|  | bool | Attempts to writes the character cto the output sequence controlled byf, returningfalseifccannot be consumed because a call todhas consumed fewer characters than requested. The output sequence controlled bydmay be accessed usingio::putandio::write. | |
|  |  | Convertible to inputand tomultichar_tag | Reads up to ncharacters from the input sequence controlled byfinto the buffers1, returning the number of characters read or-1to indicate end-of-sequence. A value less thannmay be returned only at end-of-sequence or if input is temporarily unavilable because a call todhas produced fewer characters than requested. The input sequence controlled bydmay be accessed usingio::get,io::readandio::putback. | 
|  |  | Writes up to ncharacters from the buffers2to the output sequence controlled byd, returning the number of characters written. A value less thannmay be returned only if a call todhas consumed fewer characters than requested. The output sequence controlled bydmay be accessed usingio::putandio::write. | 
    Errors which occur during the execution of get, put, read or write are indicated by throwing exceptions. Reaching the end of the input sequence is not an error, but attempting to write past the end of the output sequence is.
After an exception is thrown, an BidirectionalFilter must be in a consistent state; further i/o operations may throw exceptions but must have well-defined behaviour. Furthermore, unless it is Closable, it must be ready to begin processing a new character sequence.
© Copyright 2008 CodeRage, LLC
© Copyright 2004-2007 Jonathan Turkanis
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)