<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Orcus: orcus::detail::thread::parser_token_buffer< _TokensT > 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">Orcus </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); </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 id="nav-path" class="navpath"> <ul> <li class="navelem"><b>orcus</b></li><li class="navelem"><b>detail</b></li><li class="navelem"><b>thread</b></li><li class="navelem"><a class="el" href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer.html">parser_token_buffer</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">orcus::detail::thread::parser_token_buffer< _TokensT > Class Template Reference</div> </div> </div><!--header--> <div class="contents"> <p><code>#include <<a class="el" href="parser__token__buffer_8hpp_source.html">parser_token_buffer.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:ad98195e95df55ba6b1dc9b37b0bfd1cf"><td class="memItemLeft" align="right" valign="top"><a id="ad98195e95df55ba6b1dc9b37b0bfd1cf"></a>  </td><td class="memItemRight" valign="bottom"><b>parser_token_buffer</b> (size_t min_token_size, size_t max_token_size)</td></tr> <tr class="separator:ad98195e95df55ba6b1dc9b37b0bfd1cf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a51d53aaed94c9e40840a45de4b7ac392"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer.html#a51d53aaed94c9e40840a45de4b7ac392">check_and_notify</a> (tokens_type &parser_tokens)</td></tr> <tr class="separator:a51d53aaed94c9e40840a45de4b7ac392"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a376a031e38519fefc1d9bb416fe91858"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer.html#a376a031e38519fefc1d9bb416fe91858">notify_and_finish</a> (tokens_type &parser_tokens)</td></tr> <tr class="separator:a376a031e38519fefc1d9bb416fe91858"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9caf71d80abe97efb90fdace515dcec9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer.html#a9caf71d80abe97efb90fdace515dcec9">next_tokens</a> (tokens_type &<a class="el" href="classorcus_1_1tokens.html">tokens</a>)</td></tr> <tr class="separator:a9caf71d80abe97efb90fdace515dcec9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8911feeec9a824afd91ad5039394d9c0"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer.html#a8911feeec9a824afd91ad5039394d9c0">token_size_threshold</a> () const</td></tr> <tr class="separator:a8911feeec9a824afd91ad5039394d9c0"><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<typename _TokensT><br /> class orcus::detail::thread::parser_token_buffer< _TokensT ></h3> <p>Class that manages synchronization of parser tokens used in multi-threaded parsers. </p> </div><h2 class="groupheader">Member Function Documentation</h2> <a id="a51d53aaed94c9e40840a45de4b7ac392"></a> <h2 class="memtitle"><span class="permalink"><a href="#a51d53aaed94c9e40840a45de4b7ac392">◆ </a></span>check_and_notify()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _TokensT > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer.html">orcus::detail::thread::parser_token_buffer</a>< _TokensT >::check_and_notify </td> <td>(</td> <td class="paramtype">tokens_type & </td> <td class="paramname"><em>parser_tokens</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Check the size of the parser token buffer, and if it exceeds specified threshold, move it to the client buffer.</p> <p>Call this from the parser thread.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">parser_tokens</td><td>parser token buffer. </td></tr> </table> </dd> </dl> </div> </div> <a id="a9caf71d80abe97efb90fdace515dcec9"></a> <h2 class="memtitle"><span class="permalink"><a href="#a9caf71d80abe97efb90fdace515dcec9">◆ </a></span>next_tokens()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _TokensT > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer.html">orcus::detail::thread::parser_token_buffer</a>< _TokensT >::next_tokens </td> <td>(</td> <td class="paramtype">tokens_type & </td> <td class="paramname"><em>tokens</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Retrieve the tokens currently in the client token buffer.</p> <p>Call this from the client (non-parser) thread.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">tokens</td><td>place to move the tokens in the client token buffer to.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>true if the parsing is still in progress, therefore more tokens are expected, false if this is the last set of tokens. </dd></dl> </div> </div> <a id="a376a031e38519fefc1d9bb416fe91858"></a> <h2 class="memtitle"><span class="permalink"><a href="#a376a031e38519fefc1d9bb416fe91858">◆ </a></span>notify_and_finish()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _TokensT > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer.html">orcus::detail::thread::parser_token_buffer</a>< _TokensT >::notify_and_finish </td> <td>(</td> <td class="paramtype">tokens_type & </td> <td class="paramname"><em>parser_tokens</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Move the current parser token buffer to the client buffer, and signal the end of parsing.</p> <p>Call this from the parser thread.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">parser_tokens</td><td>parser token buffer. </td></tr> </table> </dd> </dl> </div> </div> <a id="a8911feeec9a824afd91ad5039394d9c0"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8911feeec9a824afd91ad5039394d9c0">◆ </a></span>token_size_threshold()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _TokensT > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="classorcus_1_1detail_1_1thread_1_1parser__token__buffer.html">orcus::detail::thread::parser_token_buffer</a>< _TokensT >::token_size_threshold </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return the current token size threshold. Call this only after the parsing has finished.</p> <dl class="section return"><dt>Returns</dt><dd>current token size threshold. </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Sat Feb 9 2019 16:54:03 for Orcus by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.13 </small></address> </body> </html>