-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBuffer_8h_source.html
182 lines (182 loc) · 28.9 KB
/
Buffer_8h_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<!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" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ROSE: Buffer.h Source File</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/search.js"></script>
<link rel="search" href="search_opensearch.php?v=opensearch.xml" type="application/opensearchdescription+xml" title="ROSE"/>
<link href="roseDoxygen.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 id="projectrow">
<td id="projectalign">
<div id="projectname">ROSE<span id="projectnumber"> 0.11.145.141</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,true,'search.html','Search');
$(document).ready(function() {
if ($('.searchresults').length > 0) { searchBox.DOMSearchField().focus(); }
});
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_859fdbd7312fa6fbda59c78acaef4f65.html">Sawyer</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">Buffer.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// WARNING: Changes to this file must be contributed back to Sawyer or else they will</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">// be clobbered by the next update from Sawyer. The Sawyer repository is at</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">// https://gitlab.com/charger7534/sawyer.git.</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#ifndef Sawyer_Buffer_H</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#define Sawyer_Buffer_H</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <Sawyer/Sawyer.h></span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <Sawyer/SharedPointer.h></span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include <string></span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceSawyer.html">Sawyer</a> {</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">namespace </span>Container {</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">template</span><<span class="keyword">class</span> A, <span class="keyword">class</span> T></div>
<div class="foldopen" id="foldopen00023" data-start="{" data-end="};">
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html"> 23</a></span><span class="keyword">class </span><a class="code hl_class" href="classSawyer_1_1Container_1_1Buffer.html">Buffer</a>: <span class="keyword">public</span> <a class="code hl_class" href="classSawyer_1_1SharedObject.html">SharedObject</a> {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::string name_;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordtype">bool</span> copyOnWrite_;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="keyword">protected</span>:</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Buffer.html">Buffer</a>(<span class="keyword">const</span> std::string &<a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#ae7049236246a3829c92ffac104b3c268">name</a> = <span class="stringliteral">""</span>): name_(<a class="code hl_function" href="namespaceSawyer.html#a7bd455ac785dedda02610ee8d753ad4b">generateSequentialName</a>()+<a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#ae7049236246a3829c92ffac104b3c268">name</a>), copyOnWrite_(<span class="keyword">false</span>) {}</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#ifdef SAWYER_HAVE_BOOST_SERIALIZATION</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">friend</span> <span class="keyword">class </span>boost::serialization::access;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span><<span class="keyword">class</span> S></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">void</span> serialize(S &s, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="comment">/*version*/</span>) {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> s & BOOST_SERIALIZATION_NVP(name_);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> s & BOOST_SERIALIZATION_NVP(copyOnWrite_);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#ifdef SAWYER_HAVE_CEREAL</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">friend</span> <span class="keyword">class </span>cereal::access;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">template</span><<span class="keyword">class</span> Archive></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordtype">void</span> CEREAL_SAVE_FUNCTION_NAME(Archive &archive)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> archive(CEREAL_NVP(name_));</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> archive(CEREAL_NVP(copyOnWrite_));</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span><<span class="keyword">class</span> Archive></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span> CEREAL_LOAD_FUNCTION_NAME(Archive &archive) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> archive(CEREAL_NVP(name_));</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> archive(CEREAL_NVP(copyOnWrite_));</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a51d7578c5e6fb3d634ad1299c8754857"> 62</a></span> <span class="keyword">typedef</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">SharedPointer<Buffer></a> <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a51d7578c5e6fb3d634ad1299c8754857">Ptr</a>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8"> 67</a></span> <span class="keyword">typedef</span> A <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a99b8f6cfbd98cb722f1533a87eb8c3c5"> 70</a></span> <span class="keyword">typedef</span> T <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a99b8f6cfbd98cb722f1533a87eb8c3c5">Value</a>;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">virtual</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Buffer.html">~Buffer</a>() {}</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a38c6afa322d3d0ceae6d62f69edfe982"> 80</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">Ptr</a> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#a38c6afa322d3d0ceae6d62f69edfe982">copy</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a89beefdef8ca4b5cc437692aed7f2ce4"> 87</a></span> <span class="keyword">virtual</span> <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#a89beefdef8ca4b5cc437692aed7f2ce4">available</a>(<a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> address) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a4c86f9391c62633b138a09a6ede81b02"> 93</a></span> <span class="keyword">virtual</span> <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#a4c86f9391c62633b138a09a6ede81b02">size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#a89beefdef8ca4b5cc437692aed7f2ce4">available</a>(<a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a>(0)); }</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#ac562e0856f16debce09adeeb7fa2c867"> 98</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#ac562e0856f16debce09adeeb7fa2c867">resize</a>(<a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> n) = 0;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a3b8d729e82a309f4c34f7e17c806da66"> 104</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#a3b8d729e82a309f4c34f7e17c806da66">sync</a>() {}</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#ae7049236246a3829c92ffac104b3c268"> 111</a></span> <span class="keyword">const</span> std::string& <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#ae7049236246a3829c92ffac104b3c268">name</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> name_; }</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a11502eb3726e2f50b9527c34edf1141a"> 112</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#a11502eb3726e2f50b9527c34edf1141a">name</a>(<span class="keyword">const</span> std::string &s) { name_ = s; }</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a3c734daa0587846aad6494657b36c691"> 124</a></span> <span class="keyword">virtual</span> <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#a3c734daa0587846aad6494657b36c691">read</a>(<a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a99b8f6cfbd98cb722f1533a87eb8c3c5">Value</a> *buf, <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> address, <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> n) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#abebbde7732047eab9fdb0a9b46e5d7b0"> 131</a></span> <span class="keyword">virtual</span> <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#abebbde7732047eab9fdb0a9b46e5d7b0">write</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a99b8f6cfbd98cb722f1533a87eb8c3c5">Value</a> *buf, <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> address, <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Address</a> n) = 0;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a83701b3ecaeaf7ec1dd43f3de4c1c764"> 136</a></span> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code hl_typedef" href="classSawyer_1_1Container_1_1Buffer.html#a99b8f6cfbd98cb722f1533a87eb8c3c5">Value</a>* <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#a83701b3ecaeaf7ec1dd43f3de4c1c764">data</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#ab41f7ac932abd8536106a4ac9fd76b87"> 144</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#ab41f7ac932abd8536106a4ac9fd76b87">copyOnWrite</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> copyOnWrite_; }</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="classSawyer_1_1Container_1_1Buffer.html#a462baddd581e7b5c6bceea67eded13f1"> 145</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classSawyer_1_1Container_1_1Buffer.html#a462baddd581e7b5c6bceea67eded13f1">copyOnWrite</a>(<span class="keywordtype">bool</span> b) { copyOnWrite_ = b; }</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span>};</div>
</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html">Sawyer::Container::Buffer</a></div><div class="ttdoc">Base class for all buffers.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00023">Buffer.h:23</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a11502eb3726e2f50b9527c34edf1141a"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a11502eb3726e2f50b9527c34edf1141a">Sawyer::Container::Buffer::name</a></div><div class="ttdeci">void name(const std::string &s)</div><div class="ttdoc">Property: Name.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00112">Buffer.h:112</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a38c6afa322d3d0ceae6d62f69edfe982"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a38c6afa322d3d0ceae6d62f69edfe982">Sawyer::Container::Buffer::copy</a></div><div class="ttdeci">virtual Ptr copy() const =0</div><div class="ttdoc">Create a new copy of buffer data.</div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a3b8d729e82a309f4c34f7e17c806da66"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a3b8d729e82a309f4c34f7e17c806da66">Sawyer::Container::Buffer::sync</a></div><div class="ttdeci">virtual void sync()</div><div class="ttdoc">Synchronize buffer with persistent storage.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00104">Buffer.h:104</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a3c734daa0587846aad6494657b36c691"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a3c734daa0587846aad6494657b36c691">Sawyer::Container::Buffer::read</a></div><div class="ttdeci">virtual Address read(Value *buf, Address address, Address n) const =0</div><div class="ttdoc">Reads data from a buffer.</div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a462baddd581e7b5c6bceea67eded13f1"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a462baddd581e7b5c6bceea67eded13f1">Sawyer::Container::Buffer::copyOnWrite</a></div><div class="ttdeci">void copyOnWrite(bool b)</div><div class="ttdoc">Property: Copy on write.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00145">Buffer.h:145</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a48522ca1362c5127446ad7e8346b8ff8"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a48522ca1362c5127446ad7e8346b8ff8">Sawyer::Container::Buffer::Address</a></div><div class="ttdeci">A Address</div><div class="ttdoc">Key type for addressing data.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00067">Buffer.h:67</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a4c86f9391c62633b138a09a6ede81b02"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a4c86f9391c62633b138a09a6ede81b02">Sawyer::Container::Buffer::size</a></div><div class="ttdeci">virtual Address size() const</div><div class="ttdoc">Size of buffer.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00093">Buffer.h:93</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a51d7578c5e6fb3d634ad1299c8754857"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a51d7578c5e6fb3d634ad1299c8754857">Sawyer::Container::Buffer::Ptr</a></div><div class="ttdeci">SharedPointer< Buffer > Ptr</div><div class="ttdoc">Reference counting smart pointer.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00062">Buffer.h:62</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a83701b3ecaeaf7ec1dd43f3de4c1c764"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a83701b3ecaeaf7ec1dd43f3de4c1c764">Sawyer::Container::Buffer::data</a></div><div class="ttdeci">virtual const Value * data() const =0</div><div class="ttdoc">Data for the buffer.</div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a89beefdef8ca4b5cc437692aed7f2ce4"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a89beefdef8ca4b5cc437692aed7f2ce4">Sawyer::Container::Buffer::available</a></div><div class="ttdeci">virtual Address available(Address address) const =0</div><div class="ttdoc">Distance to end of buffer.</div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_a99b8f6cfbd98cb722f1533a87eb8c3c5"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#a99b8f6cfbd98cb722f1533a87eb8c3c5">Sawyer::Container::Buffer::Value</a></div><div class="ttdeci">T Value</div><div class="ttdoc">Type of values stored in the buffer.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00070">Buffer.h:70</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_ab41f7ac932abd8536106a4ac9fd76b87"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#ab41f7ac932abd8536106a4ac9fd76b87">Sawyer::Container::Buffer::copyOnWrite</a></div><div class="ttdeci">bool copyOnWrite() const</div><div class="ttdoc">Property: Copy on write.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00144">Buffer.h:144</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_abebbde7732047eab9fdb0a9b46e5d7b0"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#abebbde7732047eab9fdb0a9b46e5d7b0">Sawyer::Container::Buffer::write</a></div><div class="ttdeci">virtual Address write(const Value *buf, Address address, Address n)=0</div><div class="ttdoc">Writes data to a buffer.</div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_ac562e0856f16debce09adeeb7fa2c867"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#ac562e0856f16debce09adeeb7fa2c867">Sawyer::Container::Buffer::resize</a></div><div class="ttdeci">virtual void resize(Address n)=0</div><div class="ttdoc">Change the size of the buffer.</div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Buffer_html_ae7049236246a3829c92ffac104b3c268"><div class="ttname"><a href="classSawyer_1_1Container_1_1Buffer.html#ae7049236246a3829c92ffac104b3c268">Sawyer::Container::Buffer::name</a></div><div class="ttdeci">const std::string & name() const</div><div class="ttdoc">Property: Name.</div><div class="ttdef"><b>Definition</b> <a href="Buffer_8h_source.html#l00111">Buffer.h:111</a></div></div>
<div class="ttc" id="aclassSawyer_1_1SharedObject_html"><div class="ttname"><a href="classSawyer_1_1SharedObject.html">Sawyer::SharedObject</a></div><div class="ttdoc">Base class for reference counted objects.</div><div class="ttdef"><b>Definition</b> <a href="SharedObject_8h_source.html#l00064">SharedObject.h:64</a></div></div>
<div class="ttc" id="aclassSawyer_1_1SharedPointer_html"><div class="ttname"><a href="classSawyer_1_1SharedPointer.html">Sawyer::SharedPointer</a></div><div class="ttdoc">Reference-counting intrusive smart pointer.</div><div class="ttdef"><b>Definition</b> <a href="SharedPointer_8h_source.html#l00065">SharedPointer.h:65</a></div></div>
<div class="ttc" id="anamespaceSawyer_html"><div class="ttname"><a href="namespaceSawyer.html">Sawyer</a></div><div class="ttdoc">Sawyer support library.</div><div class="ttdef"><b>Definition</b> <a href="FeasiblePath_8h_source.html#l00767">FeasiblePath.h:767</a></div></div>
<div class="ttc" id="anamespaceSawyer_html_a7bd455ac785dedda02610ee8d753ad4b"><div class="ttname"><a href="namespaceSawyer.html#a7bd455ac785dedda02610ee8d753ad4b">Sawyer::generateSequentialName</a></div><div class="ttdeci">std::string generateSequentialName(size_t length=3)</div><div class="ttdoc">Generate a sequential name.</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Oct 2 2024 00:08:27 for ROSE by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>