Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 2f6559b7006594cad03af173263c219e > files > 4544

mrpt-doc-0.9.4-0.1.20110110svn2383.fc15.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>The MRPT project: mrpt::utils::circular_buffer&lt; T &gt; Class Template Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.2 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
          <span class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </span><span class="right"></span>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li><a class="el" href="namespacemrpt_1_1utils.html">utils</a>      </li>
      <li><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">circular_buffer</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<h1>mrpt::utils::circular_buffer&lt; T &gt; Class Template Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::utils::circular_buffer" --><hr/><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename T&gt;<br/>
 class mrpt::utils::circular_buffer&lt; T &gt;</h3>

<p>A circular buffer of fixed size (defined at construction-time), implemented with a std::vector as the underlying storage. </p>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00043">43</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

<p><code>#include &lt;<a class="el" href="circular__buffer_8h_source.html">mrpt/utils/circular_buffer.h</a>&gt;</code></p>
<!-- startSectionHeader --><div class="dynheader">
Inheritance diagram for mrpt::utils::circular_buffer&lt; T &gt;:<!-- endSectionHeader --></div>
<!-- startSectionSummary --><!-- endSectionSummary --><!-- startSectionContent --><div class="dyncontent">
<div class="center"><img src="classmrpt_1_1utils_1_1circular__buffer__inherit__graph.png" border="0" usemap="#mrpt_1_1utils_1_1circular__buffer_3_01_t_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1utils_1_1circular__buffer_3_01_t_01_4_inherit__map" id="mrpt_1_1utils_1_1circular__buffer_3_01_t_01_4_inherit__map">
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center><!-- endSectionContent --></div>

<p><a href="classmrpt_1_1utils_1_1circular__buffer-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a444942f6f8eb3b781b5896b0ef357d33">circular_buffer</a> (const size_t size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#ad6313ba4543883e551e796dafbea891e">push</a> (T d)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a copy of the given element in the buffer.  <a href="#ad6313ba4543883e551e796dafbea891e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#ac4b1c2ffa2f8d203b1f5d86a83d46ab3">push_ref</a> (const T &amp;d)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a reference of the given element in the buffer.  <a href="#ac4b1c2ffa2f8d203b1f5d86a83d46ab3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a6cf9798df34d38c4ca1b37a0b62ac39b">push_many</a> (T *array_elements, size_t count)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert an array of elements in the buffer.  <a href="#a6cf9798df34d38c4ca1b37a0b62ac39b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a5e442f4cb8b50045022597befa1eb081">pop</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve an element from the buffer.  <a href="#a5e442f4cb8b50045022597befa1eb081"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a1352a55c7ba289fd0ad1509a11596ef0">pop</a> (T &amp;out_val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve an element from the buffer.  <a href="#a1352a55c7ba289fd0ad1509a11596ef0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#acc32953dccc7b3974ce5ce9f4f5efad0">pop_many</a> (T *out_array, size_t count)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Pop a number of elements into a user-provided array.  <a href="#acc32953dccc7b3974ce5ce9f4f5efad0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a5c44fe2ebfc1e5f3957557d39696bc73">size</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of elements available for read ("pop") in the buffer (this is NOT the maximum size of the internal buffer)  <a href="#a5c44fe2ebfc1e5f3957557d39696bc73"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#ab87c568244b1a870dd9084b9a7a7d434">capacity</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum capacity of the buffer.  <a href="#ab87c568244b1a870dd9084b9a7a7d434"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#aec24fedb6622bfaaef3c03623609dfb1">available</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of elements that can be written ("push") without rising an overflow error.  <a href="#aec24fedb6622bfaaef3c03623609dfb1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#acd81927c479915e950fb900399b73d4b">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete all the stored data, if any.  <a href="#acd81927c479915e950fb900399b73d4b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#ac9cf938f80a0460c3504875624d70ddf">m_data</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a449af9fc8ce78dcb9258e0904f99e13d">m_size</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a3bdc677c16156ab66bf259e8afe161ec">m_next_read</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a08d8ce6c0ae2be6a074654a5bad8c286">m_next_write</a></td></tr>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a444942f6f8eb3b781b5896b0ef357d33"></a><!-- doxytag: member="mrpt::utils::circular_buffer::circular_buffer" ref="a444942f6f8eb3b781b5896b0ef357d33" args="(const size_t size)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::<a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">circular_buffer</a> </td>
          <td>(</td>
          <td class="paramtype">const size_t&#160;</td>
          <td class="paramname"> <em>size</em>&#160;)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00051">51</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aec24fedb6622bfaaef3c03623609dfb1"></a><!-- doxytag: member="mrpt::utils::circular_buffer::available" ref="aec24fedb6622bfaaef3c03623609dfb1" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::available </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The maximum number of elements that can be written ("push") without rising an overflow error. </p>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00140">140</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab87c568244b1a870dd9084b9a7a7d434"></a><!-- doxytag: member="mrpt::utils::circular_buffer::capacity" ref="ab87c568244b1a870dd9084b9a7a7d434" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::capacity </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the maximum capacity of the buffer. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a5c44fe2ebfc1e5f3957557d39696bc73" title="Return the number of elements available for read (&quot;pop&quot;) in the buffer (this is NOT the max...">size</a> </dd></dl>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00134">134</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

<p>Referenced by <a class="el" href="circular__buffer_8h_source.html#l00140">mrpt::utils::circular_buffer&lt; uint8_t &gt;::available()</a>.</p>

</div>
</div>
<a class="anchor" id="acd81927c479915e950fb900399b73d4b"></a><!-- doxytag: member="mrpt::utils::circular_buffer::clear" ref="acd81927c479915e950fb900399b73d4b" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::clear </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname">&#160;)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete all the stored data, if any. </p>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00145">145</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1352a55c7ba289fd0ad1509a11596ef0"></a><!-- doxytag: member="mrpt::utils::circular_buffer::pop" ref="a1352a55c7ba289fd0ad1509a11596ef0" args="(T &amp;out_val)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::pop </td>
          <td>(</td>
          <td class="paramtype">T &amp;&#160;</td>
          <td class="paramname"> <em>out_val</em>&#160;)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve an element from the buffer. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::out_of_range</td><td>If the buffer is empty. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00106">106</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5e442f4cb8b50045022597befa1eb081"></a><!-- doxytag: member="mrpt::utils::circular_buffer::pop" ref="a5e442f4cb8b50045022597befa1eb081" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::pop </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve an element from the buffer. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::out_of_range</td><td>If the buffer is empty. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00094">94</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

<p>Referenced by <a class="el" href="circular__buffer_8h_source.html#l00117">mrpt::utils::circular_buffer&lt; uint8_t &gt;::pop_many()</a>.</p>

</div>
</div>
<a class="anchor" id="acc32953dccc7b3974ce5ce9f4f5efad0"></a><!-- doxytag: member="mrpt::utils::circular_buffer::pop_many" ref="acc32953dccc7b3974ce5ce9f4f5efad0" args="(T *out_array, size_t count)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::pop_many </td>
          <td>(</td>
          <td class="paramtype">T *&#160;</td>
          <td class="paramname"> <em>out_array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"> <em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Pop a number of elements into a user-provided array. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::out_of_range</td><td>If the buffer has less elements than requested. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00117">117</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad6313ba4543883e551e796dafbea891e"></a><!-- doxytag: member="mrpt::utils::circular_buffer::push" ref="ad6313ba4543883e551e796dafbea891e" args="(T d)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::push </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"> <em>d</em>&#160;)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert a copy of the given element in the buffer. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::out_of_range</td><td>If the buffer run out of space. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00064">64</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

<p>Referenced by <a class="el" href="circular__buffer_8h_source.html#l00086">mrpt::utils::circular_buffer&lt; uint8_t &gt;::push_many()</a>.</p>

</div>
</div>
<a class="anchor" id="a6cf9798df34d38c4ca1b37a0b62ac39b"></a><!-- doxytag: member="mrpt::utils::circular_buffer::push_many" ref="a6cf9798df34d38c4ca1b37a0b62ac39b" args="(T *array_elements, size_t count)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::push_many </td>
          <td>(</td>
          <td class="paramtype">T *&#160;</td>
          <td class="paramname"> <em>array_elements</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"> <em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert an array of elements in the buffer. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::out_of_range</td><td>If the buffer run out of space. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00086">86</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac4b1c2ffa2f8d203b1f5d86a83d46ab3"></a><!-- doxytag: member="mrpt::utils::circular_buffer::push_ref" ref="ac4b1c2ffa2f8d203b1f5d86a83d46ab3" args="(const T &amp;d)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::push_ref </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"> <em>d</em>&#160;)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Insert a reference of the given element in the buffer. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::out_of_range</td><td>If the buffer run out of space. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00075">75</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

</div>
</div>
<a class="anchor" id="a5c44fe2ebfc1e5f3957557d39696bc73"></a><!-- doxytag: member="mrpt::utils::circular_buffer::size" ref="a5c44fe2ebfc1e5f3957557d39696bc73" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::size </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the number of elements available for read ("pop") in the buffer (this is NOT the maximum size of the internal buffer) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#ab87c568244b1a870dd9084b9a7a7d434" title="Return the maximum capacity of the buffer.">capacity</a> </dd></dl>

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00125">125</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

<p>Referenced by <a class="el" href="circular__buffer_8h_source.html#l00140">mrpt::utils::circular_buffer&lt; uint8_t &gt;::available()</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ac9cf938f80a0460c3504875624d70ddf"></a><!-- doxytag: member="mrpt::utils::circular_buffer::m_data" ref="ac9cf938f80a0460c3504875624d70ddf" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;T&gt; <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::<a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#ac9cf938f80a0460c3504875624d70ddf">m_data</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00046">46</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

<p>Referenced by <a class="el" href="circular__buffer_8h_source.html#l00094">mrpt::utils::circular_buffer&lt; uint8_t &gt;::pop()</a>, <a class="el" href="circular__buffer_8h_source.html#l00064">mrpt::utils::circular_buffer&lt; uint8_t &gt;::push()</a>, and <a class="el" href="circular__buffer_8h_source.html#l00075">mrpt::utils::circular_buffer&lt; uint8_t &gt;::push_ref()</a>.</p>

</div>
</div>
<a class="anchor" id="a3bdc677c16156ab66bf259e8afe161ec"></a><!-- doxytag: member="mrpt::utils::circular_buffer::m_next_read" ref="a3bdc677c16156ab66bf259e8afe161ec" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::<a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a3bdc677c16156ab66bf259e8afe161ec">m_next_read</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00048">48</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

<p>Referenced by <a class="el" href="circular__buffer_8h_source.html#l00145">mrpt::utils::circular_buffer&lt; uint8_t &gt;::clear()</a>, <a class="el" href="circular__buffer_8h_source.html#l00094">mrpt::utils::circular_buffer&lt; uint8_t &gt;::pop()</a>, <a class="el" href="circular__buffer_8h_source.html#l00064">mrpt::utils::circular_buffer&lt; uint8_t &gt;::push()</a>, <a class="el" href="circular__buffer_8h_source.html#l00075">mrpt::utils::circular_buffer&lt; uint8_t &gt;::push_ref()</a>, and <a class="el" href="circular__buffer_8h_source.html#l00125">mrpt::utils::circular_buffer&lt; uint8_t &gt;::size()</a>.</p>

</div>
</div>
<a class="anchor" id="a08d8ce6c0ae2be6a074654a5bad8c286"></a><!-- doxytag: member="mrpt::utils::circular_buffer::m_next_write" ref="a08d8ce6c0ae2be6a074654a5bad8c286" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">size_t <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::<a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a08d8ce6c0ae2be6a074654a5bad8c286">m_next_write</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00048">48</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

<p>Referenced by <a class="el" href="circular__buffer_8h_source.html#l00145">mrpt::utils::circular_buffer&lt; uint8_t &gt;::clear()</a>, <a class="el" href="circular__buffer_8h_source.html#l00094">mrpt::utils::circular_buffer&lt; uint8_t &gt;::pop()</a>, <a class="el" href="circular__buffer_8h_source.html#l00064">mrpt::utils::circular_buffer&lt; uint8_t &gt;::push()</a>, <a class="el" href="circular__buffer_8h_source.html#l00075">mrpt::utils::circular_buffer&lt; uint8_t &gt;::push_ref()</a>, and <a class="el" href="circular__buffer_8h_source.html#l00125">mrpt::utils::circular_buffer&lt; uint8_t &gt;::size()</a>.</p>

</div>
</div>
<a class="anchor" id="a449af9fc8ce78dcb9258e0904f99e13d"></a><!-- doxytag: member="mrpt::utils::circular_buffer::m_size" ref="a449af9fc8ce78dcb9258e0904f99e13d" args="" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const size_t <a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html">mrpt::utils::circular_buffer</a>&lt; T &gt;::<a class="el" href="classmrpt_1_1utils_1_1circular__buffer.html#a449af9fc8ce78dcb9258e0904f99e13d">m_size</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="circular__buffer_8h_source.html#l00047">47</a> of file <a class="el" href="circular__buffer_8h_source.html">circular_buffer.h</a>.</p>

<p>Referenced by <a class="el" href="circular__buffer_8h_source.html#l00134">mrpt::utils::circular_buffer&lt; uint8_t &gt;::capacity()</a>, <a class="el" href="circular__buffer_8h_source.html#l00051">mrpt::utils::circular_buffer&lt; uint8_t &gt;::circular_buffer()</a>, <a class="el" href="circular__buffer_8h_source.html#l00094">mrpt::utils::circular_buffer&lt; uint8_t &gt;::pop()</a>, <a class="el" href="circular__buffer_8h_source.html#l00064">mrpt::utils::circular_buffer&lt; uint8_t &gt;::push()</a>, <a class="el" href="circular__buffer_8h_source.html#l00075">mrpt::utils::circular_buffer&lt; uint8_t &gt;::push_ref()</a>, and <a class="el" href="circular__buffer_8h_source.html#l00125">mrpt::utils::circular_buffer&lt; uint8_t &gt;::size()</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.2</a> for MRPT 0.9.4 SVN: at Mon Jan 10 22:30:30 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table> </body></html>