<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>posix::basic_stream_descriptor::lowest_layer_type</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="../posix__basic_stream_descriptor.html" title="posix::basic_stream_descriptor">
<link rel="prev" href="lowest_layer/overload2.html" title="posix::basic_stream_descriptor::lowest_layer (2 of 2 overloads)">
<link rel="next" href="native.html" title="posix::basic_stream_descriptor::native">
</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="lowest_layer/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../posix__basic_stream_descriptor.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="native.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.posix__basic_stream_descriptor.lowest_layer_type"></a><a class="link" href="lowest_layer_type.html" title="posix::basic_stream_descriptor::lowest_layer_type">posix::basic_stream_descriptor::lowest_layer_type</a>
</h4></div></div></div>
<p>
          <span class="emphasis"><em>Inherited from posix::basic_descriptor.</em></span>
        </p>
<p>
          <a class="indexterm" name="id1269290"></a> 
A <a class="link" href="../posix__basic_descriptor.html" title="posix::basic_descriptor"><code class="computeroutput"><span class="identifier">posix</span><span class="special">::</span><span class="identifier">basic_descriptor</span></code></a> is always the
          lowest layer.
        </p>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_descriptor</span><span class="special">&lt;</span> <span class="identifier">StreamDescriptorService</span> <span class="special">&gt;</span> <span class="identifier">lowest_layer_type</span><span class="special">;</span>
</pre>
<a name="boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.types"></a><h6>
<a name="id1269378"></a>
          <a class="link" href="lowest_layer_type.html#boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.types">Types</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="../posix__basic_descriptor/bytes_readable.html" title="posix::basic_descriptor::bytes_readable"><span class="bold"><strong>bytes_readable</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    IO control command to get the amount of data that can be read
                    without blocking.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/implementation_type.html" title="posix::basic_descriptor::implementation_type"><span class="bold"><strong>implementation_type</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The underlying implementation type of I/O object.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/lowest_layer_type.html" title="posix::basic_descriptor::lowest_layer_type"><span class="bold"><strong>lowest_layer_type</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    A basic_descriptor is always the lowest layer.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/native_type.html" title="posix::basic_descriptor::native_type"><span class="bold"><strong>native_type</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The native representation of a descriptor.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/non_blocking_io.html" title="posix::basic_descriptor::non_blocking_io"><span class="bold"><strong>non_blocking_io</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    IO control command to set the blocking mode of the descriptor.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/service_type.html" title="posix::basic_descriptor::service_type"><span class="bold"><strong>service_type</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The type of the service that will be used to provide I/O operations.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<a name="boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.member_functions"></a><h6>
<a name="id1269613"></a>
          <a class="link" href="lowest_layer_type.html#boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.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="../posix__basic_descriptor/assign.html" title="posix::basic_descriptor::assign"><span class="bold"><strong>assign</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Assign an existing native descriptor to the descriptor.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/basic_descriptor.html" title="posix::basic_descriptor::basic_descriptor"><span class="bold"><strong>basic_descriptor</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Construct a basic_descriptor without opening it.
                  </p>
                  <p>
                    Construct a basic_descriptor on an existing native descriptor.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/cancel.html" title="posix::basic_descriptor::cancel"><span class="bold"><strong>cancel</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Cancel all asynchronous operations associated with the descriptor.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/close.html" title="posix::basic_descriptor::close"><span class="bold"><strong>close</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Close the descriptor.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/get_io_service.html" title="posix::basic_descriptor::get_io_service"><span class="bold"><strong>get_io_service</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Get the io_service associated with the object.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/io_control.html" title="posix::basic_descriptor::io_control"><span class="bold"><strong>io_control</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Perform an IO control command on the descriptor.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/io_service.html" title="posix::basic_descriptor::io_service"><span class="bold"><strong>io_service</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    (Deprecated: use get_io_service().) Get the io_service associated
                    with the object.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/is_open.html" title="posix::basic_descriptor::is_open"><span class="bold"><strong>is_open</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Determine whether the descriptor is open.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/lowest_layer.html" title="posix::basic_descriptor::lowest_layer"><span class="bold"><strong>lowest_layer</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Get a reference to the lowest layer.
                  </p>
                  <p>
                    Get a const reference to the lowest layer.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/native.html" title="posix::basic_descriptor::native"><span class="bold"><strong>native</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Get the native descriptor representation.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<a name="boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.protected_member_functions"></a><h6>
<a name="id1269973"></a>
          <a class="link" href="lowest_layer_type.html#boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.protected_member_functions">Protected
          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="../posix__basic_descriptor/_basic_descriptor.html" title="posix::basic_descriptor::~basic_descriptor"><span class="bold"><strong>~basic_descriptor</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Protected destructor to prevent deletion through this type.
                  </p>
                </td>
</tr></tbody>
</table></div>
<a name="boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.protected_data_members"></a><h6>
<a name="id1270061"></a>
          <a class="link" href="lowest_layer_type.html#boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.protected_data_members">Protected
          Data Members</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="../posix__basic_descriptor/implementation.html" title="posix::basic_descriptor::implementation"><span class="bold"><strong>implementation</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The underlying implementation of the I/O object.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../posix__basic_descriptor/service.html" title="posix::basic_descriptor::service"><span class="bold"><strong>service</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The service associated with the I/O object.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<p>
          The <a class="link" href="../posix__basic_descriptor.html" title="posix::basic_descriptor"><code class="computeroutput"><span class="identifier">posix</span><span class="special">::</span><span class="identifier">basic_descriptor</span></code></a> class template
          provides the ability to wrap a POSIX descriptor.
        </p>
<a name="boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.thread_safety"></a><h6>
<a name="id1270208"></a>
          <a class="link" href="lowest_layer_type.html#boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.thread_safety">Thread
          Safety</a>
        </h6>
<p>
          <span class="bold"><strong>Distinct</strong></span> <span class="bold"><strong>objects:</strong></span>
          Safe.
        </p>
<p>
          <span class="bold"><strong>Shared</strong></span> <span class="bold"><strong>objects:</strong></span>
          Unsafe.
        </p>
<a name="boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.requirements"></a><h6>
<a name="id1270262"></a>
          <a class="link" href="lowest_layer_type.html#boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type.requirements">Requirements</a>
        </h6>
<p>
          <span class="bold"><strong>Header: </strong></span><code class="literal">boost/asio/posix/basic_stream_descriptor.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="lowest_layer/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../posix__basic_stream_descriptor.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="native.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
