-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathclassfly_1_1_concurrent_stack.html
247 lines (237 loc) · 16.8 KB
/
classfly_1_1_concurrent_stack.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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<!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>libfly: fly::ConcurrentStack< T > 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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" />
<link href="doxygen-awesome.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">libfly
 <span id="projectnumber">6.2.2</span>
</div>
<div id="projectbrief">C++20 utility library for Linux, macOS, and Windows</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>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classfly_1_1_concurrent_stack.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- 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 class="header">
<div class="summary">
<a href="#pro-methods">Protected Member Functions</a> |
<a href="classfly_1_1_concurrent_stack-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">fly::ConcurrentStack< T > Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include <<a class="el" href="concurrent__stack_8hpp_source.html">concurrent_stack.hpp</a>></code></p>
<div class="dynheader">
Inheritance diagram for fly::ConcurrentStack< T >:</div>
<div class="dyncontent">
<div class="center"><img src="classfly_1_1_concurrent_stack__inherit__graph.png" border="0" usemap="#afly_1_1_concurrent_stack_3_01_t_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="afly_1_1_concurrent_stack_3_01_t_01_4_inherit__map" id="afly_1_1_concurrent_stack_3_01_t_01_4_inherit__map">
<area shape="rect" title=" " alt="" coords="22,95,213,121"/>
<area shape="rect" href="classfly_1_1detail_1_1_concurrent_container.html" title=" " alt="" coords="5,5,229,47"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for fly::ConcurrentStack< T >:</div>
<div class="dyncontent">
<div class="center"><img src="classfly_1_1_concurrent_stack__coll__graph.png" border="0" usemap="#afly_1_1_concurrent_stack_3_01_t_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="afly_1_1_concurrent_stack_3_01_t_01_4_coll__map" id="afly_1_1_concurrent_stack_3_01_t_01_4_coll__map">
<area shape="rect" title=" " alt="" coords="22,95,213,121"/>
<area shape="rect" href="classfly_1_1detail_1_1_concurrent_container.html" title=" " alt="" coords="5,5,229,47"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<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:ad8dc70298a55b8435ea1b1a4c0027fec"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfly_1_1_concurrent_stack.html#ad8dc70298a55b8435ea1b1a4c0027fec">push_internal</a> (T &&) override</td></tr>
<tr class="separator:ad8dc70298a55b8435ea1b1a4c0027fec"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a26b47e9181d30f59d7c760ec963f4fb1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfly_1_1_concurrent_stack.html#a26b47e9181d30f59d7c760ec963f4fb1">pop_internal</a> (T &) override</td></tr>
<tr class="separator:a26b47e9181d30f59d7c760ec963f4fb1"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classfly_1_1detail_1_1_concurrent_container"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classfly_1_1detail_1_1_concurrent_container')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="classfly_1_1detail_1_1_concurrent_container.html">fly::detail::ConcurrentContainer< T, std::stack< T > ></a></td></tr>
<tr class="memitem:a918651786f2e9a11e06244e1ec266d5f inherit pub_types_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top"><a id="a918651786f2e9a11e06244e1ec266d5f"></a>
using </td><td class="memItemRight" valign="bottom"><b>size_type</b> = typename Container::size_type</td></tr>
<tr class="separator:a918651786f2e9a11e06244e1ec266d5f inherit pub_types_classfly_1_1detail_1_1_concurrent_container"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:acd3a0f9681ca859ba35628a004f96f10 inherit pub_types_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top"><a id="acd3a0f9681ca859ba35628a004f96f10"></a>
using </td><td class="memItemRight" valign="bottom"><b>value_type</b> = T</td></tr>
<tr class="separator:acd3a0f9681ca859ba35628a004f96f10 inherit pub_types_classfly_1_1detail_1_1_concurrent_container"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classfly_1_1detail_1_1_concurrent_container"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfly_1_1detail_1_1_concurrent_container')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classfly_1_1detail_1_1_concurrent_container.html">fly::detail::ConcurrentContainer< T, std::stack< T > ></a></td></tr>
<tr class="memitem:a540b4d8f492405e15101965ec24dfcb4 inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classfly_1_1detail_1_1_concurrent_container.html#a540b4d8f492405e15101965ec24dfcb4">~ConcurrentContainer</a> ()=default</td></tr>
<tr class="separator:a540b4d8f492405e15101965ec24dfcb4 inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a34b4c35aa4f7bd81dddbaacf790f48c3 inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfly_1_1detail_1_1_concurrent_container.html#a34b4c35aa4f7bd81dddbaacf790f48c3">push</a> (T &&item)</td></tr>
<tr class="separator:a34b4c35aa4f7bd81dddbaacf790f48c3 inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9c5d7490a1391bc9022661ecc2e4cf38 inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classfly_1_1detail_1_1_concurrent_container.html#a9c5d7490a1391bc9022661ecc2e4cf38">pop</a> (T &item)</td></tr>
<tr class="separator:a9c5d7490a1391bc9022661ecc2e4cf38 inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aee2c91bb09295531ab533ce74bf040ee inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classfly_1_1detail_1_1_concurrent_container.html#aee2c91bb09295531ab533ce74bf040ee">pop</a> (T &item, std::chrono::duration< R, P > duration)</td></tr>
<tr class="separator:aee2c91bb09295531ab533ce74bf040ee inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad074cd1445382c09b214822ec60c6bbd inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classfly_1_1detail_1_1_concurrent_container.html#ad074cd1445382c09b214822ec60c6bbd">empty</a> () const</td></tr>
<tr class="separator:ad074cd1445382c09b214822ec60c6bbd inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1e39784e706ce6474f296bc974879cab inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top">size_type </td><td class="memItemRight" valign="bottom"><a class="el" href="classfly_1_1detail_1_1_concurrent_container.html#a1e39784e706ce6474f296bc974879cab">size</a> () const</td></tr>
<tr class="separator:a1e39784e706ce6474f296bc974879cab inherit pub_methods_classfly_1_1detail_1_1_concurrent_container"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pro_attribs_classfly_1_1detail_1_1_concurrent_container"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classfly_1_1detail_1_1_concurrent_container')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classfly_1_1detail_1_1_concurrent_container.html">fly::detail::ConcurrentContainer< T, std::stack< T > ></a></td></tr>
<tr class="memitem:ae39e96135da324746c89388d8ef99050 inherit pro_attribs_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top"><a id="ae39e96135da324746c89388d8ef99050"></a>
std::mutex </td><td class="memItemRight" valign="bottom"><b>m_container_mutex</b></td></tr>
<tr class="separator:ae39e96135da324746c89388d8ef99050 inherit pro_attribs_classfly_1_1detail_1_1_concurrent_container"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a35b95b09c5328c2fc02adc7ffebe6198 inherit pro_attribs_classfly_1_1detail_1_1_concurrent_container"><td class="memItemLeft" align="right" valign="top"><a id="a35b95b09c5328c2fc02adc7ffebe6198"></a>
std::stack< T > </td><td class="memItemRight" valign="bottom"><b>m_container</b></td></tr>
<tr class="separator:a35b95b09c5328c2fc02adc7ffebe6198 inherit pro_attribs_classfly_1_1detail_1_1_concurrent_container"><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 T><br />
class fly::ConcurrentStack< T ></h3>
<p>Wrapper around a std::stack to provide thread safe access.</p>
<dl class="section author"><dt>Author</dt><dd>Timothy Flynn (<a href="#" onclick="location.href='mai'+'lto:'+'trf'+'ly'+'nn8'+'9@'+'pm.'+'me'; return false;">trfly<span style="display: none;">.nosp@m.</span>nn89<span style="display: none;">.nosp@m.</span>@pm.m<span style="display: none;">.nosp@m.</span>e</a>) </dd></dl>
<dl class="section version"><dt>Version</dt><dd>July 27, 2016 </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a26b47e9181d30f59d7c760ec963f4fb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26b47e9181d30f59d7c760ec963f4fb1">◆ </a></span>pop_internal()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classfly_1_1_concurrent_stack.html">fly::ConcurrentStack</a>< T >::pop_internal </td>
<td>(</td>
<td class="paramtype">T & </td>
<td class="paramname"><em>item</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implementation-specific method to pop an item from the container.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">item</td><td>Location to store the popped item. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classfly_1_1detail_1_1_concurrent_container.html#a9c3b8f468c64b6adfb583af5e52e9b2e">fly::detail::ConcurrentContainer< T, std::stack< T > ></a>.</p>
</div>
</div>
<a id="ad8dc70298a55b8435ea1b1a4c0027fec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8dc70298a55b8435ea1b1a4c0027fec">◆ </a></span>push_internal()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<typename T > </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classfly_1_1_concurrent_stack.html">fly::ConcurrentStack</a>< T >::push_internal </td>
<td>(</td>
<td class="paramtype">T && </td>
<td class="paramname"><em>item</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implementation-specific method to move an item onto the container.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">item</td><td>Item to push onto the container. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classfly_1_1detail_1_1_concurrent_container.html#a5a7353ef6b68c04c8381272981be8bc9">fly::detail::ConcurrentContainer< T, std::stack< T > ></a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>fly/types/concurrency/<a class="el" href="concurrent__stack_8hpp_source.html">concurrent_stack.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>fly</b></li><li class="navelem"><a class="el" href="classfly_1_1_concurrent_stack.html">ConcurrentStack</a></li>
<li class="footer">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 </li>
</ul>
</div>
</body>
</html>