|
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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"/>
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
- <meta name="generator" content="Doxygen 1.9.1"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>DISTRHO Plugin Framework: RingBufferControl< BufferStruct > Class Template Reference</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">DISTRHO Plugin Framework
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.9.1 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- $(function() {
- initMenu('',true,false,'search.php','Search');
- $(document).ready(function() { init_search(); });
- });
- /* @license-end */</script>
- <div id="main-nav"></div>
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
-
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
- </iframe>
- </div>
-
- </div><!-- top -->
- <div class="header">
- <div class="summary">
- <a href="#pub-methods">Public Member Functions</a> |
- <a href="#pro-methods">Protected Member Functions</a> |
- <a href="classRingBufferControl-members.html">List of all members</a> </div>
- <div class="headertitle">
- <div class="title">RingBufferControl< BufferStruct > Class Template Reference</div> </div>
- </div><!--header-->
- <div class="contents">
-
- <p><code>#include <<a class="el" href="RingBuffer_8hpp_source.html">RingBuffer.hpp</a>></code></p>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
- Public Member Functions</h2></td></tr>
- <tr class="memitem:a5a857b3ce6d8570899e1310bbaa166c2"><td class="memItemLeft" align="right" valign="top"><a id="a5a857b3ce6d8570899e1310bbaa166c2"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>isDataAvailableForReading</b> () const noexcept</td></tr>
- <tr class="separator:a5a857b3ce6d8570899e1310bbaa166c2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac795fc07ffa5c591b9516b514dedc7aa"><td class="memItemLeft" align="right" valign="top"><a id="ac795fc07ffa5c591b9516b514dedc7aa"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>isEmpty</b> () const noexcept</td></tr>
- <tr class="separator:ac795fc07ffa5c591b9516b514dedc7aa"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a904c3d96f7c501357bde107392307746"><td class="memItemLeft" align="right" valign="top"><a id="a904c3d96f7c501357bde107392307746"></a>
- uint32_t </td><td class="memItemRight" valign="bottom"><b>getSize</b> () const noexcept</td></tr>
- <tr class="separator:a904c3d96f7c501357bde107392307746"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a798dea2af126ea7749d4325e401d6b90"><td class="memItemLeft" align="right" valign="top"><a id="a798dea2af126ea7749d4325e401d6b90"></a>
- uint32_t </td><td class="memItemRight" valign="bottom"><b>getReadableDataSize</b> () const noexcept</td></tr>
- <tr class="separator:a798dea2af126ea7749d4325e401d6b90"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac6882674f4bdfb7bc8d9c3a89e6a3275"><td class="memItemLeft" align="right" valign="top"><a id="ac6882674f4bdfb7bc8d9c3a89e6a3275"></a>
- uint32_t </td><td class="memItemRight" valign="bottom"><b>getWritableDataSize</b> () const noexcept</td></tr>
- <tr class="separator:ac6882674f4bdfb7bc8d9c3a89e6a3275"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8a93880bd798351b66c7c546ee91d7af"><td class="memItemLeft" align="right" valign="top"><a id="a8a93880bd798351b66c7c546ee91d7af"></a>
- void </td><td class="memItemRight" valign="bottom"><b>clearData</b> () noexcept</td></tr>
- <tr class="separator:a8a93880bd798351b66c7c546ee91d7af"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a84cf5dece61cf5d0a3050eb4d757f072"><td class="memItemLeft" align="right" valign="top"><a id="a84cf5dece61cf5d0a3050eb4d757f072"></a>
- void </td><td class="memItemRight" valign="bottom"><b>flush</b> () noexcept</td></tr>
- <tr class="separator:a84cf5dece61cf5d0a3050eb4d757f072"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7861a13bc22c3a692490002e11cfa001"><td class="memItemLeft" align="right" valign="top"><a id="a7861a13bc22c3a692490002e11cfa001"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>readBool</b> () noexcept</td></tr>
- <tr class="separator:a7861a13bc22c3a692490002e11cfa001"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a7b08be900bb851cb08ea17797afde52b"><td class="memItemLeft" align="right" valign="top"><a id="a7b08be900bb851cb08ea17797afde52b"></a>
- uint8_t </td><td class="memItemRight" valign="bottom"><b>readByte</b> () noexcept</td></tr>
- <tr class="separator:a7b08be900bb851cb08ea17797afde52b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a481ba7979e8dfa0077225fb4eeedcdf4"><td class="memItemLeft" align="right" valign="top"><a id="a481ba7979e8dfa0077225fb4eeedcdf4"></a>
- int16_t </td><td class="memItemRight" valign="bottom"><b>readShort</b> () noexcept</td></tr>
- <tr class="separator:a481ba7979e8dfa0077225fb4eeedcdf4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a3a568b35da8271fd136d3e52254c3a6e"><td class="memItemLeft" align="right" valign="top"><a id="a3a568b35da8271fd136d3e52254c3a6e"></a>
- uint16_t </td><td class="memItemRight" valign="bottom"><b>readUShort</b> () noexcept</td></tr>
- <tr class="separator:a3a568b35da8271fd136d3e52254c3a6e"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a6f9f287326a852f40dc8c2f477eac61d"><td class="memItemLeft" align="right" valign="top"><a id="a6f9f287326a852f40dc8c2f477eac61d"></a>
- int32_t </td><td class="memItemRight" valign="bottom"><b>readInt</b> () noexcept</td></tr>
- <tr class="separator:a6f9f287326a852f40dc8c2f477eac61d"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8cb216fe6c4ae7955f7a1e6fde3fdaaa"><td class="memItemLeft" align="right" valign="top"><a id="a8cb216fe6c4ae7955f7a1e6fde3fdaaa"></a>
- uint32_t </td><td class="memItemRight" valign="bottom"><b>readUInt</b> () noexcept</td></tr>
- <tr class="separator:a8cb216fe6c4ae7955f7a1e6fde3fdaaa"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a00e4069c4e71a15aba05cbd20416f9c2"><td class="memItemLeft" align="right" valign="top"><a id="a00e4069c4e71a15aba05cbd20416f9c2"></a>
- int64_t </td><td class="memItemRight" valign="bottom"><b>readLong</b> () noexcept</td></tr>
- <tr class="separator:a00e4069c4e71a15aba05cbd20416f9c2"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a84d06ef9f64dda3c61e02744bee598b5"><td class="memItemLeft" align="right" valign="top"><a id="a84d06ef9f64dda3c61e02744bee598b5"></a>
- uint64_t </td><td class="memItemRight" valign="bottom"><b>readULong</b> () noexcept</td></tr>
- <tr class="separator:a84d06ef9f64dda3c61e02744bee598b5"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0cfb2a83c9788607530c96e122f1a5cb"><td class="memItemLeft" align="right" valign="top"><a id="a0cfb2a83c9788607530c96e122f1a5cb"></a>
- float </td><td class="memItemRight" valign="bottom"><b>readFloat</b> () noexcept</td></tr>
- <tr class="separator:a0cfb2a83c9788607530c96e122f1a5cb"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4181c35249c1cfa5115836766552a9f7"><td class="memItemLeft" align="right" valign="top"><a id="a4181c35249c1cfa5115836766552a9f7"></a>
- double </td><td class="memItemRight" valign="bottom"><b>readDouble</b> () noexcept</td></tr>
- <tr class="separator:a4181c35249c1cfa5115836766552a9f7"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aafdb126b2885c507cec852bc63fd6cb8"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">readCustomData</a> (void *const data, const uint32_t size) noexcept</td></tr>
- <tr class="separator:aafdb126b2885c507cec852bc63fd6cb8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aaaf4efe13ec2555c390047f545d2660d"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
- <tr class="memitem:aaaf4efe13ec2555c390047f545d2660d"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#aaaf4efe13ec2555c390047f545d2660d">readCustomType</a> (T &type) noexcept</td></tr>
- <tr class="separator:aaaf4efe13ec2555c390047f545d2660d"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8d560bf7255bf3f9b3ab91d178c8a514"><td class="memItemLeft" align="right" valign="top"><a id="a8d560bf7255bf3f9b3ab91d178c8a514"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeBool</b> (const bool value) noexcept</td></tr>
- <tr class="separator:a8d560bf7255bf3f9b3ab91d178c8a514"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a57d59476536b91746d8bf52bfae74755"><td class="memItemLeft" align="right" valign="top"><a id="a57d59476536b91746d8bf52bfae74755"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeByte</b> (const uint8_t value) noexcept</td></tr>
- <tr class="separator:a57d59476536b91746d8bf52bfae74755"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a05763b20c7a59eab5b9ec7f32c758954"><td class="memItemLeft" align="right" valign="top"><a id="a05763b20c7a59eab5b9ec7f32c758954"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeShort</b> (const int16_t value) noexcept</td></tr>
- <tr class="separator:a05763b20c7a59eab5b9ec7f32c758954"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9b4e2008d32cf8ae36cbce37db935fa0"><td class="memItemLeft" align="right" valign="top"><a id="a9b4e2008d32cf8ae36cbce37db935fa0"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeUShort</b> (const uint16_t value) noexcept</td></tr>
- <tr class="separator:a9b4e2008d32cf8ae36cbce37db935fa0"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a55d6d467fbb82ec942eaa88ee9de056f"><td class="memItemLeft" align="right" valign="top"><a id="a55d6d467fbb82ec942eaa88ee9de056f"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeInt</b> (const int32_t value) noexcept</td></tr>
- <tr class="separator:a55d6d467fbb82ec942eaa88ee9de056f"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a3b3e0c77afe562049ebef1a5dd534ffe"><td class="memItemLeft" align="right" valign="top"><a id="a3b3e0c77afe562049ebef1a5dd534ffe"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeUInt</b> (const uint32_t value) noexcept</td></tr>
- <tr class="separator:a3b3e0c77afe562049ebef1a5dd534ffe"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a5400bbf87025d3f6b4bf307538eacd8e"><td class="memItemLeft" align="right" valign="top"><a id="a5400bbf87025d3f6b4bf307538eacd8e"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeLong</b> (const int64_t value) noexcept</td></tr>
- <tr class="separator:a5400bbf87025d3f6b4bf307538eacd8e"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac2bc16d54ac5d10065124719abb95a87"><td class="memItemLeft" align="right" valign="top"><a id="ac2bc16d54ac5d10065124719abb95a87"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeULong</b> (const uint64_t value) noexcept</td></tr>
- <tr class="separator:ac2bc16d54ac5d10065124719abb95a87"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a97f63ccaa7e578346938b32dfb47224e"><td class="memItemLeft" align="right" valign="top"><a id="a97f63ccaa7e578346938b32dfb47224e"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeFloat</b> (const float value) noexcept</td></tr>
- <tr class="separator:a97f63ccaa7e578346938b32dfb47224e"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a6ad016c6ff0e3b3469060ad5ca758e73"><td class="memItemLeft" align="right" valign="top"><a id="a6ad016c6ff0e3b3469060ad5ca758e73"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>writeDouble</b> (const double value) noexcept</td></tr>
- <tr class="separator:a6ad016c6ff0e3b3469060ad5ca758e73"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a72e173dcae573f6e2e8ac4cfeb8aa96b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">writeCustomData</a> (const void *const data, const uint32_t size) noexcept</td></tr>
- <tr class="separator:a72e173dcae573f6e2e8ac4cfeb8aa96b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a3e9c1857e11f0d9efcc2944d6000504b"><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
- <tr class="memitem:a3e9c1857e11f0d9efcc2944d6000504b"><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#a3e9c1857e11f0d9efcc2944d6000504b">writeCustomType</a> (const T &type) noexcept</td></tr>
- <tr class="separator:a3e9c1857e11f0d9efcc2944d6000504b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:afe0c53d2591eb265d657c1cab6800036"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">commitWrite</a> () noexcept</td></tr>
- <tr class="separator:afe0c53d2591eb265d657c1cab6800036"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac1d302eb13fa5f41a2f9cb94974f2355"><td class="memItemLeft" align="right" valign="top"><a id="ac1d302eb13fa5f41a2f9cb94974f2355"></a>
- void </td><td class="memItemRight" valign="bottom"><b>setRingBuffer</b> (BufferStruct *const ringBuf, const bool clearRingBufferData) noexcept</td></tr>
- <tr class="separator:ac1d302eb13fa5f41a2f9cb94974f2355"><td class="memSeparator" colspan="2"> </td></tr>
- </table><table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
- Protected Member Functions</h2></td></tr>
- <tr class="memitem:ae52a43afbe6404494aeb2abfb305342b"><td class="memItemLeft" align="right" valign="top"><a id="ae52a43afbe6404494aeb2abfb305342b"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>tryRead</b> (void *const buf, const uint32_t size) noexcept</td></tr>
- <tr class="separator:ae52a43afbe6404494aeb2abfb305342b"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a121bc17537c3ff7841d8e684e84fbb7a"><td class="memItemLeft" align="right" valign="top"><a id="a121bc17537c3ff7841d8e684e84fbb7a"></a>
- bool </td><td class="memItemRight" valign="bottom"><b>tryWrite</b> (const void *const buf, const uint32_t size) noexcept</td></tr>
- <tr class="separator:a121bc17537c3ff7841d8e684e84fbb7a"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <div class="textblock"><h3>template<class BufferStruct><br />
- class RingBufferControl< BufferStruct ></h3>
-
- <p>DPF built-in RingBuffer class. <a class="el" href="classRingBufferControl.html">RingBufferControl</a> takes one buffer struct to take control over, and operates over it.</p>
- <p>This is meant for single-writer, single-reader type of control. Writing and reading is wait and lock-free.</p>
- <p>Typically usage involves: </p><div class="fragment"><div class="line"><span class="comment">// definition</span></div>
- <div class="line"><a class="code" href="classHeapRingBuffer.html">HeapRingBuffer</a> myHeapBuffer; <span class="comment">// or RingBufferControl<HeapBuffer> class for more control</span></div>
- <div class="line"> </div>
- <div class="line"><span class="comment">// construction, only needed for heap buffers</span></div>
- <div class="line">myHeapBuffer.<a class="code" href="classHeapRingBuffer.html#ab7d60a3acc757e88e1c7254626ce9709">createBuffer</a>(8192);</div>
- <div class="line"> </div>
- <div class="line"><span class="comment">// writing data</span></div>
- <div class="line">myHeapBuffer.writeUInt(size);</div>
- <div class="line">myHeapBuffer.<a class="code" href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">writeCustomData</a>(someOtherData, size);</div>
- <div class="line">myHeapBuffer.<a class="code" href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">commitWrite</a>();</div>
- <div class="line"> </div>
- <div class="line"><span class="comment">// reading data</span></div>
- <div class="line"><span class="keywordflow">if</span> (myHeapBuffer.isDataAvailableForReading())</div>
- <div class="line">{</div>
- <div class="line"> uint32_t size;</div>
- <div class="line"> <span class="keywordflow">if</span> (myHeapBuffer.readUInt(size) && <a class="code" href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">readCustomData</a>(&anotherData, size))</div>
- <div class="line"> {</div>
- <div class="line"> <span class="comment">// do something with "anotherData"</span></div>
- <div class="line"> }</div>
- <div class="line">}</div>
- <div class="ttc" id="aclassHeapRingBuffer_html"><div class="ttname"><a href="classHeapRingBuffer.html">HeapRingBuffer</a></div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:711</div></div>
- <div class="ttc" id="aclassHeapRingBuffer_html_ab7d60a3acc757e88e1c7254626ce9709"><div class="ttname"><a href="classHeapRingBuffer.html#ab7d60a3acc757e88e1c7254626ce9709">HeapRingBuffer::createBuffer</a></div><div class="ttdeci">bool createBuffer(const uint32_t size) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:733</div></div>
- <div class="ttc" id="aclassRingBufferControl_html_a72e173dcae573f6e2e8ac4cfeb8aa96b"><div class="ttname"><a href="classRingBufferControl.html#a72e173dcae573f6e2e8ac4cfeb8aa96b">RingBufferControl::writeCustomData</a></div><div class="ttdeci">bool writeCustomData(const void *const data, const uint32_t size) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:494</div></div>
- <div class="ttc" id="aclassRingBufferControl_html_aafdb126b2885c507cec852bc63fd6cb8"><div class="ttname"><a href="classRingBufferControl.html#aafdb126b2885c507cec852bc63fd6cb8">RingBufferControl::readCustomData</a></div><div class="ttdeci">bool readCustomData(void *const data, const uint32_t size) noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:378</div></div>
- <div class="ttc" id="aclassRingBufferControl_html_afe0c53d2591eb265d657c1cab6800036"><div class="ttname"><a href="classRingBufferControl.html#afe0c53d2591eb265d657c1cab6800036">RingBufferControl::commitWrite</a></div><div class="ttdeci">bool commitWrite() noexcept</div><div class="ttdef"><b>Definition:</b> RingBuffer.hpp:518</div></div>
- </div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="structHeapBuffer.html">HeapBuffer</a> </dd></dl>
- </div><h2 class="groupheader">Member Function Documentation</h2>
- <a id="aafdb126b2885c507cec852bc63fd6cb8"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aafdb126b2885c507cec852bc63fd6cb8">◆ </a></span>readCustomData()</h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class BufferStruct > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>< BufferStruct >::readCustomData </td>
- <td>(</td>
- <td class="paramtype">void *const </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint32_t </td>
- <td class="paramname"><em>size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Read an arbitrary amount of data, specified by <em>size</em>. data pointer must be non-null, and size > 0.</p>
- <p>Returns true if reading succeeds. In case of failure, <em>data</em> pointer is automatically cleared by <em>size</em> bytes. </p>
-
- </div>
- </div>
- <a id="aaaf4efe13ec2555c390047f545d2660d"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aaaf4efe13ec2555c390047f545d2660d">◆ </a></span>readCustomType()</h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class BufferStruct > </div>
- <div class="memtemplate">
- template<typename T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>< BufferStruct >::readCustomType </td>
- <td>(</td>
- <td class="paramtype">T & </td>
- <td class="paramname"><em>type</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Read a custom data type specified by the template typename used, with size being automatically deduced by the compiler (through the use of sizeof).</p>
- <p>Returns true if reading succeeds. In case of failure, <em>type</em> value is automatically cleared by its deduced size. </p>
-
- </div>
- </div>
- <a id="a72e173dcae573f6e2e8ac4cfeb8aa96b"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a72e173dcae573f6e2e8ac4cfeb8aa96b">◆ </a></span>writeCustomData()</h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class BufferStruct > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>< BufferStruct >::writeCustomData </td>
- <td>(</td>
- <td class="paramtype">const void *const </td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const uint32_t </td>
- <td class="paramname"><em>size</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Write an arbitrary amount of data, specified by <em>size</em>. data pointer must be non-null, and size > 0. </p>
-
- </div>
- </div>
- <a id="a3e9c1857e11f0d9efcc2944d6000504b"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a3e9c1857e11f0d9efcc2944d6000504b">◆ </a></span>writeCustomType()</h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class BufferStruct > </div>
- <div class="memtemplate">
- template<typename T > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>< BufferStruct >::writeCustomType </td>
- <td>(</td>
- <td class="paramtype">const T & </td>
- <td class="paramname"><em>type</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Write a custom data type specified by the template typename used, with size being automatically deduced by the compiler (through the use of sizeof). </p>
-
- </div>
- </div>
- <a id="afe0c53d2591eb265d657c1cab6800036"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#afe0c53d2591eb265d657c1cab6800036">◆ </a></span>commitWrite()</h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class BufferStruct > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">bool <a class="el" href="classRingBufferControl.html">RingBufferControl</a>< BufferStruct >::commitWrite </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Commit all previous write operations to the ringbuffer. If a write operation has previously failed, this will reset/invalidate the previous write attempts. </p>
-
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following file:<ul>
- <li>distrho/extra/<a class="el" href="RingBuffer_8hpp_source.html">RingBuffer.hpp</a></li>
- </ul>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
- </small></address>
- </body>
- </html>
|