classpp_1_1ext_1_1_ext_completion_callback_with_output.html revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1{{+bindTo:partials.standard_nacl_api}}
2<h1>pp::ext::ExtCompletionCallbackWithOutput&lt; T &gt; Class Template Reference</h1>
3<div id="doxygen-ref">
4{{- dummy div to appease doxygen -}}
5  <div>
6<!-- Generated by Doxygen 1.7.6.1 -->
7
8
9
10</div>
11<!--header-->
12<div class="contents">
13<!-- doxytag: class="pp::ext::ExtCompletionCallbackWithOutput" --><!-- doxytag: inherits="CompletionCallbackWithOutputBase&lt; T, internal::ExtCallbackOutputTraits&lt; T &gt; &gt;" --><div class="dynheader">
14Inheritance diagram for pp::ext::ExtCompletionCallbackWithOutput&lt; T &gt;:</div>
15<div class="dyncontent">
16<div class="center"><img src="classpp_1_1ext_1_1_ext_completion_callback_with_output__inherit__graph.png" border="0" usemap="#pp_1_1ext_1_1_ext_completion_callback_with_output_3_01_t_01_4_inherit__map" alt="Inheritance graph" /></div>
17<map name="pp_1_1ext_1_1_ext_completion_callback_with_output_3_01_t_01_4_inherit__map" id="pp_1_1ext_1_1_ext_completion_callback_with_output_3_01_t_01_4_inherit__map">
18<area shape="rect" id="node2" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html" title="pp::internal::CompletionCallbackWithOutputBase\&lt; T, internal::ExtCallbackOutputTraits\&lt; T \&gt; \&gt;" alt="" coords="227,5,845,35"></area><area shape="rect" id="node4" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl..." alt="" coords="7,5,177,35"></area></map>
19<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
20<p><a href="classpp_1_1ext_1_1_ext_completion_callback_with_output-members.html">List of all members.</a></p>
21<h2>
22Public Types</h2><table class="memberdecls">
23
24<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak" />
25::<a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html">pp::internal::CompletionCallbackWithOutputBase</a><br class="typebreak" />
26&lt; T, <br class="typebreak" />
27internal::ExtCallbackOutputTraits<br class="typebreak" />
28&lt; T &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html#a481b5fb925f7e78ebe1d4d45e8c2680e">BaseType</a></td></tr>
29</table><h2>
30Public Member Functions</h2><table class="memberdecls">
31<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html#aa87c7b22e765a86493282ae962d70808">ExtCompletionCallbackWithOutput</a> (typename <a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html#a6b6f033dd376edc4507951d82bd1ea18">BaseType::OutputStorageType</a> *<a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html#a23ceea58754e1d1b6570a268f6b669b8">output</a>)</td></tr>
32<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html#abb7a1ffe2592a4fe66941a6c9cb3113d">ExtCompletionCallbackWithOutput</a> (PP_CompletionCallback_Func func, void *user_data, typename <a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html#a6b6f033dd376edc4507951d82bd1ea18">BaseType::OutputStorageType</a> *<a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html#a23ceea58754e1d1b6570a268f6b669b8">output</a>)</td></tr>
33<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html#a8e28a5fbcd848df3e34178ac29d1ae60">ExtCompletionCallbackWithOutput</a> (PP_CompletionCallback_Func func, void *user_data, int32_t <a class="el" href="classpp_1_1_completion_callback.html#a60e466572fe7de362969dd41179c971f">flags</a>, typename <a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html#a6b6f033dd376edc4507951d82bd1ea18">BaseType::OutputStorageType</a> *<a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html#a23ceea58754e1d1b6570a268f6b669b8">output</a>)</td></tr>
34</table>
35<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
36<div class="textblock"><h3>template&lt;typename T&gt;<br />
37class pp::ext::ExtCompletionCallbackWithOutput&lt; T &gt;</h3>
38<p><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html" title="ExtCompletionCallbackWithOutput is similar to CompletionCallbackWithOutput, but used by APIs within t...">ExtCompletionCallbackWithOutput</a> is similar to <a class="el" href="classpp_1_1_completion_callback_with_output.html" title="A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to so...">CompletionCallbackWithOutput</a>, but used by APIs within the <a class="el" href="namespacepp_1_1ext.html">pp::ext</a> namespace. </p>
39<p>Usually it is used with the <a class="el" href="classpp_1_1_completion_callback_factory.html" title="CompletionCallbackFactory&lt;T&gt; may be used to create CompletionCallback objects that are bound to membe...">CompletionCallbackFactory</a>'s NewExtCallbackWithOutput. </p>
40</div><hr /><h2>Member Typedef Documentation</h2>
41<a class="anchor" id="a481b5fb925f7e78ebe1d4d45e8c2680e"></a><!-- doxytag: member="pp::ext::ExtCompletionCallbackWithOutput::BaseType" ref="a481b5fb925f7e78ebe1d4d45e8c2680e" args="" -->
42<div class="memitem">
43<div class="memproto">
44<div class="memtemplate">
45template&lt;typename T &gt; </div>
46<table class="memname">
47<tr>
48<td class="memname">typedef ::<a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html">pp::internal::CompletionCallbackWithOutputBase</a>&lt; T, internal::ExtCallbackOutputTraits&lt;T&gt; &gt; <a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html">pp::ext::ExtCompletionCallbackWithOutput</a>&lt; T &gt;::<a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html#a481b5fb925f7e78ebe1d4d45e8c2680e">BaseType</a></td>
49</tr>
50</table>
51</div>
52<div class="memdoc">
53</div>
54</div>
55<hr /><h2>Constructor &amp; Destructor Documentation</h2>
56<a class="anchor" id="aa87c7b22e765a86493282ae962d70808"></a><!-- doxytag: member="pp::ext::ExtCompletionCallbackWithOutput::ExtCompletionCallbackWithOutput" ref="aa87c7b22e765a86493282ae962d70808" args="(typename BaseType::OutputStorageType *output)" -->
57<div class="memitem">
58<div class="memproto">
59<div class="memtemplate">
60template&lt;typename T &gt; </div>
61<table class="memname">
62<tr>
63<td class="memname"><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html">pp::ext::ExtCompletionCallbackWithOutput</a>&lt; T &gt;::<a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html">ExtCompletionCallbackWithOutput</a> </td>
64<td>(</td>
65<td class="paramtype">typename <a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html#a6b6f033dd376edc4507951d82bd1ea18">BaseType::OutputStorageType</a> *&#160;</td>
66<td class="paramname"><em>output</em></td><td>)</td>
67<td><code> [inline, explicit]</code></td>
68</tr>
69</table>
70</div>
71<div class="memdoc">
72<p>The default constructor will create a blocking <code><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html" title="ExtCompletionCallbackWithOutput is similar to CompletionCallbackWithOutput, but used by APIs within t...">ExtCompletionCallbackWithOutput</a></code> that references the given output data. </p>
73<dl class="params"><dt><b>Parameters:</b></dt><dd>
74<table class="params">
75<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>A pointer to the data associated with the callback. The caller must ensure that this pointer outlives the completion callback. <code>OutputStorageType</code> is either <code>ext::internal::ArrayVarOutputAdapterWithStorage&lt;U&gt;</code> (if the template parameter T is of the form std::vector&lt;U&gt;) or <code>ext::internal::VarOutputAdapterWithStorage&lt;T&gt;</code> (otherwise).</td></tr>
76</table>
77</dd>
78</dl>
79<p><b>Note:</b> Blocking completion callbacks are only allowed from background threads. </p>
80</div>
81</div>
82<a class="anchor" id="abb7a1ffe2592a4fe66941a6c9cb3113d"></a><!-- doxytag: member="pp::ext::ExtCompletionCallbackWithOutput::ExtCompletionCallbackWithOutput" ref="abb7a1ffe2592a4fe66941a6c9cb3113d" args="(PP_CompletionCallback_Func func, void *user_data, typename BaseType::OutputStorageType *output)" -->
83<div class="memitem">
84<div class="memproto">
85<div class="memtemplate">
86template&lt;typename T &gt; </div>
87<table class="memname">
88<tr>
89<td class="memname"><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html">pp::ext::ExtCompletionCallbackWithOutput</a>&lt; T &gt;::<a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html">ExtCompletionCallbackWithOutput</a> </td>
90<td>(</td>
91<td class="paramtype">PP_CompletionCallback_Func&#160;</td>
92<td class="paramname"><em>func</em>, </td>
93</tr>
94<tr>
95<td class="paramkey"></td>
96<td></td>
97<td class="paramtype">void *&#160;</td>
98<td class="paramname"><em>user_data</em>, </td>
99</tr>
100<tr>
101<td class="paramkey"></td>
102<td></td>
103<td class="paramtype">typename <a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html#a6b6f033dd376edc4507951d82bd1ea18">BaseType::OutputStorageType</a> *&#160;</td>
104<td class="paramname"><em>output</em>&#160;</td>
105</tr>
106<tr>
107<td></td>
108<td>)</td>
109<td></td><td><code> [inline]</code></td>
110</tr>
111</table>
112</div>
113<div class="memdoc">
114<p>A constructor for creating an <code><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html" title="ExtCompletionCallbackWithOutput is similar to CompletionCallbackWithOutput, but used by APIs within t...">ExtCompletionCallbackWithOutput</a></code> that references the given output data. </p>
115<dl class="params"><dt><b>Parameters:</b></dt><dd>
116<table class="params">
117<tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>The function to be called on completion. </td></tr>
118<tr><td class="paramdir">[in]</td><td class="paramname">user_data</td><td>The user data to be passed to the callback function. This is optional and is typically used to help track state in case of multiple pending callbacks. </td></tr>
119<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>A pointer to the data associated with the callback. The caller must ensure that this pointer outlives the completion callback. </td></tr>
120</table>
121</dd>
122</dl>
123</div>
124</div>
125<a class="anchor" id="a8e28a5fbcd848df3e34178ac29d1ae60"></a><!-- doxytag: member="pp::ext::ExtCompletionCallbackWithOutput::ExtCompletionCallbackWithOutput" ref="a8e28a5fbcd848df3e34178ac29d1ae60" args="(PP_CompletionCallback_Func func, void *user_data, int32_t flags, typename BaseType::OutputStorageType *output)" -->
126<div class="memitem">
127<div class="memproto">
128<div class="memtemplate">
129template&lt;typename T &gt; </div>
130<table class="memname">
131<tr>
132<td class="memname"><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html">pp::ext::ExtCompletionCallbackWithOutput</a>&lt; T &gt;::<a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html">ExtCompletionCallbackWithOutput</a> </td>
133<td>(</td>
134<td class="paramtype">PP_CompletionCallback_Func&#160;</td>
135<td class="paramname"><em>func</em>, </td>
136</tr>
137<tr>
138<td class="paramkey"></td>
139<td></td>
140<td class="paramtype">void *&#160;</td>
141<td class="paramname"><em>user_data</em>, </td>
142</tr>
143<tr>
144<td class="paramkey"></td>
145<td></td>
146<td class="paramtype">int32_t&#160;</td>
147<td class="paramname"><em>flags</em>, </td>
148</tr>
149<tr>
150<td class="paramkey"></td>
151<td></td>
152<td class="paramtype">typename <a class="el" href="classpp_1_1internal_1_1_completion_callback_with_output_base.html#a6b6f033dd376edc4507951d82bd1ea18">BaseType::OutputStorageType</a> *&#160;</td>
153<td class="paramname"><em>output</em>&#160;</td>
154</tr>
155<tr>
156<td></td>
157<td>)</td>
158<td></td><td><code> [inline]</code></td>
159</tr>
160</table>
161</div>
162<div class="memdoc">
163<p>A constructor for creating an <code><a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html" title="ExtCompletionCallbackWithOutput is similar to CompletionCallbackWithOutput, but used by APIs within t...">ExtCompletionCallbackWithOutput</a></code> that references the given output data. </p>
164<dl class="params"><dt><b>Parameters:</b></dt><dd>
165<table class="params">
166<tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>The function to be called on completion.</td></tr>
167<tr><td class="paramdir">[in]</td><td class="paramname">user_data</td><td>The user data to be passed to the callback function. This is optional and is typically used to help track state in case of multiple pending callbacks.</td></tr>
168<tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>Bit field combination of <code>PP_CompletionCallback_Flag</code> flags used to control how non-NULL callbacks are scheduled by asynchronous methods.</td></tr>
169<tr><td class="paramdir">[in]</td><td class="paramname">output</td><td>A pointer to the data associated with the callback. The caller must ensure that this pointer outlives the completion callback. </td></tr>
170</table>
171</dd>
172</dl>
173</div>
174</div>
175<hr />The documentation for this class was generated from the following file:<ul>
176<li><a class="el" href="completion__callback_8h.html">completion_callback.h</a></li>
177</ul>
178</div><!-- contents -->
179</div>
180{{/partials.standard_nacl_api}}
181