boost::iostreams::newlinenewline_filternewline_checkernewline_error
Boost.Iostreams provides two components for working with line-ending conventions: the class template newline_filter translates between line-ending conventions, and the class template newline_checker verifies that a character sequence conforms to a given line-ending convention.
<boost/iostreams/filter/newline.hpp>namespace boost { namespace iostreams { namespace newline { const int posix = 1; // Use CR as line separator. const int mac = 2; // Use LF as line separator. const int dos = 4; // Use CRLF as line separator. const int mixed = 8; // Mixed line endings. const int final_newline = 16; } // End namespace boost::iostreams::newline class newline_filter; class newline_checker; class newline_error; } } // End namespace boost::io
boost::iostreams::newlineThe namespace boost::iostreams::newline contains integral constants used to configure newline_filter, newline_checker and to report errors. The constants have the following interpretations.
newline_filterDualUseFilter which converts between the line-ending conventions used by various operating systems. Its sole constructor takes an integral parameter used to specify the target format.
class newline_filter { public: typedef char char_type; typedef [implementation-defined] category; explicit newline_filter(int target); };
newline_filter::newline_filterexplicit newline_filter(int target);
Constructs a newline_filter for converting to the specified format. The parameter target must be newline::posix, newline::dos or newline::mac.
newline_checkerDualUseFilter used to verify that a character sequence conforms to a given line-ending convention.
class newline_checker { public: typedef char char_type; typedef [implementation-defined] category; explicit newline_checker(int target = default_value ); bool is_posix() const; bool is_dos() const; bool is_mac() const; bool is_mixed_posix() const; bool is_mixed_dos() const; bool is_mixed_mac() const; bool is_mixed() const; bool has_final_newline() const; };
newline_checker::newline_checkerexplicit newline_checker(int target = default_value );
Constructs a newline_checker. If a target is specified, a newline_error will be thrown as soon as a line-ending sequence is encountered which does not conform to the target. The value target must be be newline::posix, newline::dos or newline::mac or the bitwise OR of one of these values with newline::final_newline.
Note: If a newline_checker is being used to perform output, the failure of a character sequence to end with a newline sequence may be discovered only when the newline_checker is closed. There are certain circumstances in which exceptions thrown by close are caught and ignored by the Iostreams library. Consequently, when performing output specifying newline::final_newline as part of target may have no effect. To check whether a character sequence ends with a newline sequence, call has_final_newline after the newline_checker has been closed.
newline_checker::is_posixbool is_posix() const;
Returns true if the characters examined so far contained at least one POSIX line-ending sequence and no line-ending sequences of any other type.
newline_checker::is_dosbool is_dos() const;
Returns true if the characters examined so far contained at least one DOS line-ending sequence and no line-ending sequences of any other type.
newline_checker::is_macbool is_mac() const;
Returns true if the characters examined so far contained at least one classic Mac line-ending sequence and no line-ending sequences of any other type.
newline_checker::is_mixed_posixbool is_mixed_posix() const;
Returns true if the characters examined so far contained at least one POSIX line-ending sequence.
newline_checker::is_mixed_dosbool is_mixed_dos() const;
Returns true if the characters examined so far contained at least one DOS line-ending sequence.
newline_checker::is_mixed_macbool is_mixed_mac() const;
Returns true if the characters examined so far contained at least one classic Mac line-ending sequence.
newline_checker::is_mixedbool is_mixed() const;
Returns true if the characters examined so far contained line-ending sequences of more than one type.
newline_checker::has_final_newlinebool has_final_newline() const;
Returns true if this newline_checker has either been closed or has reached end-of-stream, and if the examined character sequence ended with a newline sequence.
newline_errorUsed by newline_checker to report errors.
class newline_error : public std::ios_base::failure { public: bool is_posix() const; bool is_dos() const; bool is_mac() const; bool is_mixed_posix() const; bool is_mixed_dos() const; bool is_mixed_mac() const; bool is_mixed() const; bool has_final_newline() const; };
newline_error::is_posixbool is_posix() const;
Returns true if the characters examined by the newline_checker which threw this exception contained at least one POSIX line-ending sequence and no line-ending sequences of any other type.
newline_error::is_dosbool is_dos() const;
Returns true if the characters examined by the newline_checker which threw this exception contained at least one DOS line-ending sequence and no line-ending sequences of any other type.
newline_error::is_macbool is_mac() const;
Returns true if the characters examined by the newline_checker which threw this exception contained at least one classic Mac line-ending sequence and no line-ending sequences of any other type.
newline_error::is_mixed_posixbool is_mixed_posix() const;
Returns true if the characters examined by the newline_checker which threw this exception contained at least one POSIX line-ending sequence.
newline_error::is_mixed_dosbool is_mixed_dos() const;
Returns true if the characters examined by the newline_checker which threw this exception contained at least one DOS line-ending sequence.
newline_error::is_mixed_macbool is_mixed_mac() const;
Returns true if the characters examined by the newline_checker which threw this exception contained at least one classic Mac line-ending sequence.
newline_error::is_mixedbool is_mixed() const;
Returns true if the characters examined by the newline_checker which threw this exception contained line-ending sequences of more than one type.
newline_error::has_final_newlinebool has_final_newline() const;
Returns true if the newline_checker which threw this exception was either closed or had reached end-of-stream and if the examined character sequence ended with a newline 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)