docs/api-2.1/structUcxBuffer.html

Tue, 04 Oct 2022 19:25:07 +0200

author
Mike Becker <universe@uap-core.de>
date
Tue, 04 Oct 2022 19:25:07 +0200
changeset 591
7df0bcaecffa
parent 390
d345541018fa
permissions
-rw-r--r--

fix over-optimization of strstr

1. it's actually less performant to frequently read bytes
from an array instead of using the native word length
2. the SBO buffer should be local and not static to allow
multi-threading usage

<!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>ucx: UcxBuffer Struct 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="projectlogo"><img alt="Logo" src="uaplogo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ucx
   </div>
   <div id="projectbrief">UAP Common Extensions</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><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">UcxBuffer Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>UCX Buffer.  
 <a href="structUcxBuffer.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="buffer_8h_source.html">buffer.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a1a5076e85acb84b715a53bc0f37fb721"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxBuffer.html#a1a5076e85acb84b715a53bc0f37fb721">space</a></td></tr>
<tr class="memdesc:a1a5076e85acb84b715a53bc0f37fb721"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the buffer contents.  <a href="#a1a5076e85acb84b715a53bc0f37fb721">More...</a><br /></td></tr>
<tr class="separator:a1a5076e85acb84b715a53bc0f37fb721"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a64288f002cf62b492e2ea49c79615c"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxBuffer.html#a7a64288f002cf62b492e2ea49c79615c">pos</a></td></tr>
<tr class="memdesc:a7a64288f002cf62b492e2ea49c79615c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current position of the buffer.  <a href="#a7a64288f002cf62b492e2ea49c79615c">More...</a><br /></td></tr>
<tr class="separator:a7a64288f002cf62b492e2ea49c79615c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a385661894f3cee9c549bfe07a8b316bf"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxBuffer.html#a385661894f3cee9c549bfe07a8b316bf">capacity</a></td></tr>
<tr class="memdesc:a385661894f3cee9c549bfe07a8b316bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current capacity (i.e.  <a href="#a385661894f3cee9c549bfe07a8b316bf">More...</a><br /></td></tr>
<tr class="separator:a385661894f3cee9c549bfe07a8b316bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec0aea8325394951d5ad4a9fbb8e1ac7"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxBuffer.html#aec0aea8325394951d5ad4a9fbb8e1ac7">size</a></td></tr>
<tr class="memdesc:aec0aea8325394951d5ad4a9fbb8e1ac7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current size of the buffer content.  <a href="#aec0aea8325394951d5ad4a9fbb8e1ac7">More...</a><br /></td></tr>
<tr class="separator:aec0aea8325394951d5ad4a9fbb8e1ac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac642e07b0a03be5aac48eb4aa5bec2f7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxBuffer.html#ac642e07b0a03be5aac48eb4aa5bec2f7">flags</a></td></tr>
<tr class="memdesc:ac642e07b0a03be5aac48eb4aa5bec2f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag register for buffer features.  <a href="#ac642e07b0a03be5aac48eb4aa5bec2f7">More...</a><br /></td></tr>
<tr class="separator:ac642e07b0a03be5aac48eb4aa5bec2f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>UCX Buffer. </p>
</div><h2 class="groupheader">Field Documentation</h2>
<a id="a385661894f3cee9c549bfe07a8b316bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a385661894f3cee9c549bfe07a8b316bf">&#9670;&nbsp;</a></span>capacity</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t UcxBuffer::capacity</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Current capacity (i.e. </p>
<p>maximum size) of the buffer. </p>

</div>
</div>
<a id="ac642e07b0a03be5aac48eb4aa5bec2f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac642e07b0a03be5aac48eb4aa5bec2f7">&#9670;&nbsp;</a></span>flags</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int UcxBuffer::flags</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Flag register for buffer features. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="buffer_8h.html#acc77c8ed7b26854f555d4a5d11e49ea2" title="No buffer features enabled (all flags cleared). ">UCX_BUFFER_DEFAULT</a> </dd>
<dd>
<a class="el" href="buffer_8h.html#a8bab11ad8a76719228b9ee91e2e45535" title="If this flag is enabled, the buffer will automatically free its contents. ">UCX_BUFFER_AUTOFREE</a> </dd>
<dd>
<a class="el" href="buffer_8h.html#a05f9565f2d04399168c3b1c152a632be" title="If this flag is enabled, the buffer will automatically extends its capacity. ">UCX_BUFFER_AUTOEXTEND</a> </dd></dl>

</div>
</div>
<a id="a7a64288f002cf62b492e2ea49c79615c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a64288f002cf62b492e2ea49c79615c">&#9670;&nbsp;</a></span>pos</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t UcxBuffer::pos</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Current position of the buffer. </p>

</div>
</div>
<a id="aec0aea8325394951d5ad4a9fbb8e1ac7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec0aea8325394951d5ad4a9fbb8e1ac7">&#9670;&nbsp;</a></span>size</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t UcxBuffer::size</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Current size of the buffer content. </p>

</div>
</div>
<a id="a1a5076e85acb84b715a53bc0f37fb721"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a5076e85acb84b715a53bc0f37fb721">&#9670;&nbsp;</a></span>space</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* UcxBuffer::space</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A pointer to the buffer contents. </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>/home/mike/workspace/c/ucx/src/ucx/<a class="el" href="buffer_8h_source.html">buffer.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Dec 19 2019 19:58:24 for ucx by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>

mercurial