Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 88959ca903fe50462ea99715ead18944 > files > 150

raul-devel-0.7.0-1.fc14.1.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>RAUL: Raul::RingBuffer&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</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>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><b>Raul</b>      </li>
      <li><a class="el" href="classRaul_1_1RingBuffer.html">Raul::RingBuffer&lt; T &gt;</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<h1>Raul::RingBuffer&lt; T &gt; Class Template Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="Raul::RingBuffer" -->
<p>A lock-free <a class="el" href="classRaul_1_1RingBuffer.html" title="A lock-free RingBuffer.">RingBuffer</a>.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="RingBuffer_8hpp_source.html">RingBuffer.hpp</a>&gt;</code></p>

<p><a href="classRaul_1_1RingBuffer-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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRaul_1_1RingBuffer.html#ac0700662407afe3fa5049e10a465d5bc">RingBuffer</a> (size_t size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRaul_1_1RingBuffer.html#aeb1cfff7e8ffa799d01c4d51e48ce829">reset</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset(empty) the ringbuffer.  <a href="#aeb1cfff7e8ffa799d01c4d51e48ce829"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad04cb71090adedce13e591d215596374"></a><!-- doxytag: member="Raul::RingBuffer::write_space" ref="ad04cb71090adedce13e591d215596374" args="() const " -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>write_space</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9070fa0e741149b9f058084b673d0e3c"></a><!-- doxytag: member="Raul::RingBuffer::read_space" ref="a9070fa0e741149b9f058084b673d0e3c" args="() const " -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>read_space</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3ebdc02b004e6d358e6d2ba6cb8dd0a"></a><!-- doxytag: member="Raul::RingBuffer::capacity" ref="aa3ebdc02b004e6d358e6d2ba6cb8dd0a" args="() const " -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>capacity</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRaul_1_1RingBuffer.html#a0473dcfb13214088e5296df68bcd3b92">peek</a> (size_t size, T *dst)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Peek at the ringbuffer (read w/o advancing read pointer).  <a href="#a0473dcfb13214088e5296df68bcd3b92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1fdd42cfd1ef8034a138c7adc709d64"></a><!-- doxytag: member="Raul::RingBuffer::full_peek" ref="ab1fdd42cfd1ef8034a138c7adc709d64" args="(size_t size, T *dst)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>full_peek</b> (size_t size, T *dst)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRaul_1_1RingBuffer.html#a99cd33072ab3af795acc9a30fe931a1b">read</a> (size_t size, T *dst)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read from the ringbuffer.  <a href="#a99cd33072ab3af795acc9a30fe931a1b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54304e6cc001ad921dc577938fb67f4b"></a><!-- doxytag: member="Raul::RingBuffer::full_read" ref="a54304e6cc001ad921dc577938fb67f4b" args="(size_t size, T *dst)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>full_read</b> (size_t size, T *dst)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5a9a55265698abd3aaae4451a9dfac9"></a><!-- doxytag: member="Raul::RingBuffer::skip" ref="ad5a9a55265698abd3aaae4451a9dfac9" args="(size_t size)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>skip</b> (size_t size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c94602a02be4fcbcebc0427f6dd9090"></a><!-- doxytag: member="Raul::RingBuffer::write" ref="a9c94602a02be4fcbcebc0427f6dd9090" args="(size_t size, const T *src)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>write</b> (size_t size, const T *src)</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abbe289a6e3fcc5425837dcc71523be0f"></a><!-- doxytag: member="Raul::RingBuffer::_write_ptr" ref="abbe289a6e3fcc5425837dcc71523be0f" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>_write_ptr</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a836c189700558e3763e3329f986c9ac3"></a><!-- doxytag: member="Raul::RingBuffer::_read_ptr" ref="a836c189700558e3763e3329f986c9ac3" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>_read_ptr</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af982500577bb0d4273f71aa960f73581"></a><!-- doxytag: member="Raul::RingBuffer::_size" ref="af982500577bb0d4273f71aa960f73581" args="" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRaul_1_1RingBuffer.html#af982500577bb0d4273f71aa960f73581">_size</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Size (capacity) in bytes. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a675f1904ea2ee8118f06dcd1403b55e0"></a><!-- doxytag: member="Raul::RingBuffer::_buf" ref="a675f1904ea2ee8118f06dcd1403b55e0" args="" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classRaul_1_1RingBuffer.html#a675f1904ea2ee8118f06dcd1403b55e0">_buf</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contents. <br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename T&gt;<br/>
 class Raul::RingBuffer&lt; T &gt;</h3>

<p>A lock-free <a class="el" href="classRaul_1_1RingBuffer.html" title="A lock-free RingBuffer.">RingBuffer</a>. </p>
<p>Read/Write realtime safe. Single-reader Single-writer thread safe. </p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac0700662407afe3fa5049e10a465d5bc"></a><!-- doxytag: member="Raul::RingBuffer::RingBuffer" ref="ac0700662407afe3fa5049e10a465d5bc" args="(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="classRaul_1_1RingBuffer.html">Raul::RingBuffer</a>&lt; T &gt;::<a class="el" href="classRaul_1_1RingBuffer.html">RingBuffer</a> </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>Size in bytes. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aeb1cfff7e8ffa799d01c4d51e48ce829"></a><!-- doxytag: member="Raul::RingBuffer::reset" ref="aeb1cfff7e8ffa799d01c4d51e48ce829" 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="classRaul_1_1RingBuffer.html">Raul::RingBuffer</a>&lt; T &gt;::reset </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reset(empty) the ringbuffer. </p>
<p>NOT thread safe. </p>

<p>Referenced by <a class="el" href="classRaul_1_1RingBuffer.html#ac0700662407afe3fa5049e10a465d5bc">Raul::RingBuffer&lt; uint8_t &gt;::RingBuffer()</a>.</p>

</div>
</div>
<a class="anchor" id="a0473dcfb13214088e5296df68bcd3b92"></a><!-- doxytag: member="Raul::RingBuffer::peek" ref="a0473dcfb13214088e5296df68bcd3b92" args="(size_t size, T *dst)" -->
<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="classRaul_1_1RingBuffer.html">Raul::RingBuffer</a>&lt; T &gt;::peek </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T *&nbsp;</td>
          <td class="paramname"> <em>dst</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Peek at the ringbuffer (read w/o advancing read pointer). </p>
<p>Note that a full read may not be done if the data wraps around. Caller must check return value and call again if necessary, or use the full_peek method which does this automatically. </p>

<p>References <a class="el" href="classRaul_1_1RingBuffer.html#a675f1904ea2ee8118f06dcd1403b55e0">Raul::RingBuffer&lt; T &gt;::_buf</a>, and <a class="el" href="classRaul_1_1RingBuffer.html#af982500577bb0d4273f71aa960f73581">Raul::RingBuffer&lt; T &gt;::_size</a>.</p>

</div>
</div>
<a class="anchor" id="a99cd33072ab3af795acc9a30fe931a1b"></a><!-- doxytag: member="Raul::RingBuffer::read" ref="a99cd33072ab3af795acc9a30fe931a1b" args="(size_t size, T *dst)" -->
<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="classRaul_1_1RingBuffer.html">Raul::RingBuffer</a>&lt; T &gt;::read </td>
          <td>(</td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T *&nbsp;</td>
          <td class="paramname"> <em>dst</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read from the ringbuffer. </p>
<p>Note that a full read may not be done if the data wraps around. Caller must check return value and call again if necessary, or use the full_read method which does this automatically. </p>

<p>References <a class="el" href="classRaul_1_1RingBuffer.html#a675f1904ea2ee8118f06dcd1403b55e0">Raul::RingBuffer&lt; T &gt;::_buf</a>, and <a class="el" href="classRaul_1_1RingBuffer.html#af982500577bb0d4273f71aa960f73581">Raul::RingBuffer&lt; T &gt;::_size</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="RingBuffer_8hpp_source.html">RingBuffer.hpp</a></li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Oct 6 2010 for RAUL by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>