classpp_1_1ext_1_1_ext_completion_callback_with_output.html revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1{{+bindTo:partials.standard_nacl_api}} 2<h1>pp::ext::ExtCompletionCallbackWithOutput< T > 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< T, internal::ExtCallbackOutputTraits< T > >" --><div class="dynheader"> 14Inheritance diagram for pp::ext::ExtCompletionCallbackWithOutput< T >:</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\< T, internal::ExtCallbackOutputTraits\< T \> \>" 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< T, <br class="typebreak" /> 27internal::ExtCallbackOutputTraits<br class="typebreak" /> 28< T > > </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"> </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"> </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"> </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<typename T><br /> 37class pp::ext::ExtCompletionCallbackWithOutput< T ></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<T> 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<typename T > </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>< T, internal::ExtCallbackOutputTraits<T> > <a class="el" href="classpp_1_1ext_1_1_ext_completion_callback_with_output.html">pp::ext::ExtCompletionCallbackWithOutput</a>< T >::<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 & 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<typename T > </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>< T >::<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> * </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<U></code> (if the template parameter T is of the form std::vector<U>) or <code>ext::internal::VarOutputAdapterWithStorage<T></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<typename T > </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>< T >::<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 </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 * </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> * </td> 104<td class="paramname"><em>output</em> </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<typename T > </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>< T >::<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 </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 * </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 </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> * </td> 153<td class="paramname"><em>output</em> </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