1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
4 <TITLE>Class Template symmetric_filter
</TITLE>
5 <LINK REL=
"stylesheet" HREF=
"../../../../boost.css">
6 <LINK REL=
"stylesheet" HREF=
"../theme/iostreams.css">
12 <H1 CLASS=
"title">Class Template
<CODE>symmetric_filter
</CODE></H1>
17 <DL class=
"page-index">
18 <DT><A href=
"#description">Description
</A></DT>
19 <DT><A href=
"#headers">Headers
</A></DT>
20 <DT><A href=
"#reference">Reference
</A></DT>
21 <DT><A href=
"#examples">Examples
</A></DT>
26 <A NAME=
"description"></A>
30 The class template
<CODE>symmetric_filter
</CODE> is tool for generating models of
<A HREF=
"../concepts/dual_use_filter.html">DualUseFilter
</A> from models of
<A HREF=
"../concepts/symmetric_filter.html">SymmetricFilter
</A>. It is useful for defining filters based on C language APIs.
33 The Iostreams library uses
<CODE>symmetric_filter
</CODE> to implement the
<A HREF=
"zlib.html">Zlib
</A> and
<A HREF=
"bzip2.html">Bzip2
</A> Filters.
36 <A NAME=
"headers"></A>
39 <DL class=
"page-index">
40 <DT><A CLASS=
"header" HREF=
"../../../../boost/iostreams/filter/symmetric.hpp"><CODE><boost/iostreams/filter/symmetric.hpp
></CODE></A></DT>
43 <A NAME=
"reference"></A>
48 <PRE CLASS=
"broken_ie"><SPAN CLASS=
"keyword">namespace
</SPAN> boost {
<SPAN CLASS=
"keyword">namespace
</SPAN> iostreams {
50 <SPAN CLASS=
"keyword">template
</SPAN>< <SPAN CLASS=
"keyword">typename
</SPAN> <A CLASS=
"documented" HREF=
"#template_params">SymmetricFilter
</A>,
51 <SPAN CLASS=
"keyword">typename
</SPAN> <A CLASS=
"documented" HREF=
"#template_params">Alloc
</A> = std::allocator
<...
> >
52 <SPAN CLASS=
"keyword">class
</SPAN> <A CLASS=
"documented" HREF=
"#template_params">symmetric_filter
</A> {
53 <SPAN CLASS=
"keyword">public
</SPAN>:
54 <SPAN CLASS=
"keyword">typedef
</SPAN> <SPAN CLASS=
"keyword">typename
</SPAN> <A CLASS=
"documented" HREF=
"../guide/traits.html">char_type_of
</A><SymmetricFilter
>::type char_type;
55 <SPAN CLASS=
"keyword">typedef
</SPAN> <SPAN CLASS=
"omitted">implementation-defined
</SPAN> category;
57 <SPAN CLASS=
"keyword">explicit
</SPAN> symmetric_filter(
<SPAN CLASS=
"keyword">int
</SPAN> buffer_size);
59 <SPAN CLASS=
"keyword">template
</SPAN><<SPAN CLASS=
"keyword">typename
</SPAN> T0
>
60 symmetric_filter(
<SPAN CLASS=
"keyword">int
</SPAN> buffer_size,
<SPAN CLASS=
"keyword">const
</SPAN> T0
& t0);
62 <SPAN CLASS=
"keyword">template
</SPAN><<SPAN CLASS=
"keyword">typename
</SPAN> T0,
<SPAN CLASS=
"keyword">typename
</SPAN> T1
>
63 symmetric_filter(
<SPAN CLASS=
"keyword">int
</SPAN> buffer_size,
<SPAN CLASS=
"keyword">const
</SPAN> T0
& t0,
<SPAN CLASS=
"keyword">const
</SPAN> T1
& t1);
65 <SPAN CLASS=
"keyword">template
</SPAN><<SPAN CLASS=
"keyword">typename
</SPAN> T0, ...,
<SPAN CLASS=
"keyword">typename
</SPAN> TN
>
66 symmetric_filter(
<SPAN CLASS=
"keyword">int
</SPAN> buffer_size, const T0
& t0,
67 <SPAN CLASS=
"keyword">const
</SPAN> T1
& t1, ...,
<SPAN CLASS=
"keyword">const
</SPAN> TN
& tN );
69 <SPAN CLASS=
"omitted">...
</SPAN>
70 <SPAN CLASS=
"keyword">protected
</SPAN>:
71 SymmetricFilter
& <A CLASS=
"documented" HREF=
"#filter">filter
</A>();
72 std::basic_string
<char_type, Alloc
> <A CLASS=
"documented" HREF=
"#unconsumed_input">unconsumed_input
</A>()
<SPAN CLASS=
"keyword">const
</SPAN>;
75 } }
<SPAN CLASS=
"comment">// End namespace boost::io
</SPAN></PRE>
77 <A NAME=
"template_params"></A>
78 <H4>Template parameters
</H4>
80 <TABLE STYLE=
"margin-left:2em" BORDER=
0 CELLPADDING=
2>
83 <TD VALIGN=
"top"><I>SymmetricFilter
</I></TD><TD WIDTH=
"2em" VALIGN=
"top">-
</TD>
84 <TD>A model of
<A HREF=
"../concepts/symmetric_filter.html">SymmetricFilter
</A></TD>
87 <TD VALIGN=
"top"><I>Alloc
</I></TD><TD WIDTH=
"2em" VALIGN=
"top">-
</TD>
88 <TD>A standard library allocator type (
<A CLASS=
"bib_ref" HREF=
"../bibliography.html#iso">[ISO]
</A>,
20.1.5), used to allocate a character buffer
</TD>
92 <A NAME=
"first_ctor"></A>
93 <H4><CODE>symmetric_filter::symmetric_filter
</CODE></H4>
95 <PRE CLASS=
"broken_ie"> <SPAN CLASS=
"keyword">explicit
</SPAN> symmetric_filter(
<SPAN CLASS=
"keyword">int
</SPAN> buffer_size);
</PRE>
97 <P>Constructs an instance of
<CODE>symmetric_filter
</CODE> based on a default-constructed instance of the template parameter
<A HREF=
"#template_params"><CODE>SymmetricFilter
</CODE></A> and having an internal buffer of size
<CODE>buffer_size
</CODE>.
</P>
99 <A NAME=
"forwarding_ctors"></A>
100 <H4><CODE>symmetric_filter::symmetric_filter
</CODE></H4>
102 <PRE CLASS=
"broken_ie"> <SPAN CLASS=
"keyword">template
</SPAN><<SPAN CLASS=
"keyword">typename
</SPAN> T0
>
103 symmetric_filter(
<SPAN CLASS=
"keyword">int
</SPAN> buffer_size,
<SPAN CLASS=
"keyword">const
</SPAN> T0
& t0);
105 <SPAN CLASS=
"keyword">template
</SPAN><<SPAN CLASS=
"keyword">typename
</SPAN> T0,
<SPAN CLASS=
"keyword">typename
</SPAN> T1
>
106 symmetric_filter(
<SPAN CLASS=
"keyword">int
</SPAN> buffer_size,
<SPAN CLASS=
"keyword">const
</SPAN> T0
& t0,
<SPAN CLASS=
"keyword">const
</SPAN> T1
& t1);
108 <SPAN CLASS=
"keyword">template
</SPAN><<SPAN CLASS=
"keyword">typename
</SPAN> T0, ...,
<SPAN CLASS=
"keyword">typename
</SPAN> TN
>
109 symmetric_filter(
<SPAN CLASS=
"keyword">int
</SPAN> buffer_size,
<SPAN CLASS=
"keyword">const
</SPAN> T0
& t0,
110 <SPAN CLASS=
"keyword">const
</SPAN> T1
& t1, ...,
<SPAN CLASS=
"keyword">const
</SPAN> TN
& tN );
</PRE>
112 <P>Each member constructs an instance of
<CODE>symmetric_filter
</CODE> based on an instance of the template parameter
<A HREF=
"#template_params"><CODE>SymmetricFilter
</CODE></A> constructed with the given sequence of arguments and having an internal buffer of size
<CODE>buffer_size
</CODE>.
</P>
114 <A NAME=
"filter"></A>
115 <H4><CODE>symmetric_filter::filter
</CODE></H4>
117 <PRE CLASS=
"broken_ie"> SymmetricFilter
& <A CLASS=
"documented" HREF=
"#filter">filter
</A>();
</PRE>
119 <P>Returns a reference to the underlying instance of
<CODE>SymmetricFilter
</CODE>.
</P>
121 <A NAME=
"unconsumed_input"></A>
122 <H4><CODE>symmetric_filter::unconsumed_input
</CODE></H4>
124 <PRE CLASS=
"broken_ie"> std::basic_string
<char_type, Alloc
> <A CLASS=
"documented" HREF=
"#unconsumed_input">unconsumed_input
</A>()
<SPAN CLASS=
"keyword">const
</SPAN>;
</PRE>
126 <P>Returns any uncomsumed data remaining in the internal buffer as a standard string. Valid from the time the end of a stream is reached
— that is, from the time
<CODE><A HREF=
"../concepts/symmetric_filter.html">SymmetricFilter::filter
</A></CODE> returns
<CODE>false
</CODE> — until
<CODE>filter
</CODE> is invoked to begin processing a new sequence of data.
</P>
128 <A NAME=
"examples"></A>
131 <P>For example uses of
<CODE>symmetric_filter
</CODE>, see the headers
<A CLASS=
"header" HREF=
"../../../../boost/iostreams/filter/zlib.hpp"><CODE><boost/iostreams/filter/zlib.hpp
></CODE></A> and
<A CLASS=
"header" HREF=
"../../../../boost/iostreams/filter/bzip2.hpp"><CODE><boost/iostreams/filter/bzip2.hpp
></CODE></A> and the corresponding implementation files
<A CLASS=
"header" HREF=
"../../src/zlib.cpp"><CODE><libs/iostreams/src/zlib.cpp
></CODE></A> and
<A CLASS=
"header" HREF=
"../../src/bzip2.cpp"><CODE><libs/iostreams/src/bzip2.cpp
></CODE></A>.
</P>
133 <!-- Begin Footer -->
137 <P CLASS=
"copyright">© Copyright
2008 <a href=
"http://www.coderage.com/" target=
"_top">CodeRage, LLC
</a><br/>© Copyright
2004-
2007 <a href=
"http://www.coderage.com/turkanis/" target=
"_top">Jonathan Turkanis
</a></P>
138 <P CLASS=
"copyright">
139 Distributed under the Boost Software License, Version
1.0. (See accompanying file LICENSE_1_0.txt or copy at
<A HREF=
"http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt
</A>)