<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>local::stream_protocol::iostream</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../local__stream_protocol.html" title="local::stream_protocol">
<link rel="prev" href="family.html" title="local::stream_protocol::family">
<link rel="next" href="protocol.html" title="local::stream_protocol::protocol">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="family.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../local__stream_protocol.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="protocol.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.local__stream_protocol.iostream"></a><a class="link" href="iostream.html" title="local::stream_protocol::iostream">local::stream_protocol::iostream</a>
</h4></div></div></div>
<p>
          <a class="indexterm" name="id1247940"></a> 
The UNIX domain iostream type.
        </p>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_socket_iostream</span><span class="special">&lt;</span> <span class="identifier">stream_protocol</span> <span class="special">&gt;</span> <span class="identifier">iostream</span><span class="special">;</span>
</pre>
<a name="boost_asio.reference.local__stream_protocol.iostream.member_functions"></a><h6>
<a name="id1248002"></a>
          <a class="link" href="iostream.html#boost_asio.reference.local__stream_protocol.iostream.member_functions">Member
          Functions</a>
        </h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                  <p>
                    Name
                  </p>
                </th>
<th>
                  <p>
                    Description
                  </p>
                </th>
</tr></thead>
<tbody>
<tr>
<td>
                  <p>
                    <a class="link" href="../basic_socket_iostream/basic_socket_iostream.html" title="basic_socket_iostream::basic_socket_iostream"><span class="bold"><strong>basic_socket_iostream</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Construct a basic_socket_iostream without establishing a connection.
                  </p>
                  <p>
                    Establish a connection to an endpoint corresponding to a resolver
                    query.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../basic_socket_iostream/close.html" title="basic_socket_iostream::close"><span class="bold"><strong>close</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Close the connection.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../basic_socket_iostream/connect.html" title="basic_socket_iostream::connect"><span class="bold"><strong>connect</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Establish a connection to an endpoint corresponding to a resolver
                    query.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../basic_socket_iostream/rdbuf.html" title="basic_socket_iostream::rdbuf"><span class="bold"><strong>rdbuf</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Return a pointer to the underlying streambuf.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<a name="boost_asio.reference.local__stream_protocol.iostream.requirements"></a><h6>
<a name="id1248183"></a>
          <a class="link" href="iostream.html#boost_asio.reference.local__stream_protocol.iostream.requirements">Requirements</a>
        </h6>
<p>
          <span class="bold"><strong>Header: </strong></span><code class="literal">boost/asio/local/stream_protocol.hpp</code>
        </p>
<p>
          <span class="bold"><strong>Convenience header: </strong></span><code class="literal">boost/asio.hpp</code>
        </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2003 - 2010 Christopher M. Kohlhoff<p>
        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" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="family.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../local__stream_protocol.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="protocol.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
