1 {{+bindTo:partials.standard_nacl_article}}
2 <h1>pp::Module Class Reference</h1>
4 <!-- Generated by Doxygen 1.7.6.1 -->
10 <div class="contents">
11 <!-- doxytag: class="pp::Module" -->
12 <p><a href="classpp_1_1_module-members.html">List of all members.</a></p>
14 Public Types</h2><table class="memberdecls">
16 <tr><td class="memItemLeft" align="right" valign="top">typedef std::map< PP_Instance, <br class="typebreak" />
17 <a class="el" href="classpp_1_1_instance.html">Instance</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#a47cd6188f0321e74b71126a5fd014b12">InstanceMap</a></td></tr>
19 Public Member Functions</h2><table class="memberdecls">
20 <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#a67b76ad37316a2e89ebd2902a6503686">Module</a> ()</td></tr>
21 <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#ac3c912841726117a128d2e056f15210e">~Module</a> ()</td></tr>
22 <tr><td class="memItemLeft" align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#a873a824f0e462008d1167e34544ad360">Init</a> ()</td></tr>
23 <tr><td class="memItemLeft" align="right" valign="top">PP_Module </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#a95bb3148c925f46938ee0f267b1c66e5">pp_module</a> () const </td></tr>
24 <tr><td class="memItemLeft" align="right" valign="top">PPB_GetInterface </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#a8955edbfec01524388338b440633850a">get_browser_interface</a> () const </td></tr>
25 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpp_1_1_core.html">Core</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#afd1d02002faaa6a4531ad06ca0423c9f">core</a> ()</td></tr>
26 <tr><td class="memItemLeft" align="right" valign="top">const void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#a8c8c946f741e140ff7dd21b36b1a42a5">GetPluginInterface</a> (const char *interface_name)</td></tr>
27 <tr><td class="memItemLeft" align="right" valign="top">const void * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#a2aece372fdef35ded56d69a4e881a376">GetBrowserInterface</a> (const char *interface_name)</td></tr>
28 <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpp_1_1_instance.html">Instance</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#ab57a787b61cd72fdcea0d232ed88eaef">InstanceForPPInstance</a> (PP_Instance instance)</td></tr>
29 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#aeddc6021140b4bdea3a83c36e7b8ec7e">AddPluginInterface</a> (const std::string &interface_name, const void *vtable)</td></tr>
30 <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#acd9a63a4b364c28abfeac39687f2fa1a">InternalInit</a> (PP_Module mod, PPB_GetInterface <a class="el" href="classpp_1_1_module.html#a8955edbfec01524388338b440633850a">get_browser_interface</a>)</td></tr>
31 <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classpp_1_1_module.html#a47cd6188f0321e74b71126a5fd014b12">InstanceMap</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#a3b9ec2c079aa51ceeedfe98f4c9e1a98">current_instances</a> () const </td></tr>
33 Static Public Member Functions</h2><table class="memberdecls">
34 <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classpp_1_1_module.html">Module</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#ac8cca5d744e812ec3221bc391086b026">Get</a> ()</td></tr>
36 Protected Member Functions</h2><table class="memberdecls">
37 <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classpp_1_1_instance.html">Instance</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#a648f236af50501bac40ce40296611825">CreateInstance</a> (PP_Instance instance)=0</td></tr>
39 Friends</h2><table class="memberdecls">
40 <tr><td class="memItemLeft" align="right" valign="top">PP_Bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#ab0f2ba24fd03fa31fc2e47d4f8ceb158">Instance_DidCreate</a> (PP_Instance pp_instance, uint32_t argc, const char *argn[], const char *argv[])</td></tr>
41 <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_module.html#accf4ce5410f02db9c87dcca045043128">Instance_DidDestroy</a> (PP_Instance instance)</td></tr>
43 <hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
44 <div class="textblock"><p>The <a class="el" href="classpp_1_1_module.html" title="The Module class.">Module</a> class. </p>
45 <p>The browser calls <a class="el" href="classpp_1_1_module.html#a648f236af50501bac40ce40296611825" title="CreateInstance() should be overridden to create your own module type.">CreateInstance()</a> to create an instance of your module on the web page. The browser creates a new instance for each <code><embed></code> tag with <code>type="application/x-nacl"</code> </p>
46 </div><hr /><h2>Member Typedef Documentation</h2>
47 <a class="anchor" id="a47cd6188f0321e74b71126a5fd014b12"></a><!-- doxytag: member="pp::Module::InstanceMap" ref="a47cd6188f0321e74b71126a5fd014b12" args="" -->
49 <div class="memproto">
50 <table class="memname">
52 <td class="memname">typedef std::map<PP_Instance, <a class="el" href="classpp_1_1_instance.html">Instance</a>*> <a class="el" href="classpp_1_1_module.html#a47cd6188f0321e74b71126a5fd014b12">pp::Module::InstanceMap</a></td>
59 <hr /><h2>Constructor & Destructor Documentation</h2>
60 <a class="anchor" id="a67b76ad37316a2e89ebd2902a6503686"></a><!-- doxytag: member="pp::Module::Module" ref="a67b76ad37316a2e89ebd2902a6503686" args="()" -->
62 <div class="memproto">
63 <table class="memname">
65 <td class="memname"><a class="el" href="classpp_1_1_module.html#a67b76ad37316a2e89ebd2902a6503686">pp::Module::Module</a> </td>
67 <td class="paramname"></td><td>)</td>
75 <a class="anchor" id="ac3c912841726117a128d2e056f15210e"></a><!-- doxytag: member="pp::Module::~Module" ref="ac3c912841726117a128d2e056f15210e" args="()" -->
77 <div class="memproto">
78 <table class="memname">
80 <td class="memname">virtual <a class="el" href="classpp_1_1_module.html#ac3c912841726117a128d2e056f15210e">pp::Module::~Module</a> </td>
82 <td class="paramname"></td><td>)</td>
83 <td><code> [virtual]</code></td>
90 <hr /><h2>Member Function Documentation</h2>
91 <a class="anchor" id="aeddc6021140b4bdea3a83c36e7b8ec7e"></a><!-- doxytag: member="pp::Module::AddPluginInterface" ref="aeddc6021140b4bdea3a83c36e7b8ec7e" args="(const std::string &interface_name, const void *vtable)" -->
93 <div class="memproto">
94 <table class="memname">
96 <td class="memname">void <a class="el" href="classpp_1_1_module.html#aeddc6021140b4bdea3a83c36e7b8ec7e">pp::Module::AddPluginInterface</a> </td>
98 <td class="paramtype">const std::string & </td>
99 <td class="paramname"><em>interface_name</em>, </td>
102 <td class="paramkey"></td>
104 <td class="paramtype">const void * </td>
105 <td class="paramname"><em>vtable</em> </td>
115 <p><a class="el" href="classpp_1_1_module.html#aeddc6021140b4bdea3a83c36e7b8ec7e" title="AddPluginInterface() adds a handler for a provided interface name.">AddPluginInterface()</a> adds a handler for a provided interface name. </p>
116 <p>When the browser requests that interface name, the provided <code>vtable</code> will be returned.</p>
117 <p>In general, modules will not need to call this directly. Instead, the C++ wrappers for each interface will register themselves with this function.</p>
118 <p>This function may be called more than once with the same interface name and vtable with no effect. However, it may not be used to register a different vtable for an already-registered interface. It will assert for a different registration for an already-registered interface in debug mode, and just ignore the registration in release mode.</p>
119 <dl class="params"><dt><b>Parameters:</b></dt><dd>
120 <table class="params">
121 <tr><td class="paramdir">[in]</td><td class="paramname">interface_name</td><td>The interface name that will receive a handler. </td></tr>
122 <tr><td class="paramdir">[in,out]</td><td class="paramname">vtable</td><td>The vtable to return for <code>interface_name</code>. </td></tr>
128 <a class="anchor" id="afd1d02002faaa6a4531ad06ca0423c9f"></a><!-- doxytag: member="pp::Module::core" ref="afd1d02002faaa6a4531ad06ca0423c9f" args="()" -->
129 <div class="memitem">
130 <div class="memproto">
131 <table class="memname">
133 <td class="memname"><a class="el" href="classpp_1_1_core.html">Core</a>* <a class="el" href="classpp_1_1_module.html#afd1d02002faaa6a4531ad06ca0423c9f">pp::Module::core</a> </td>
135 <td class="paramname"></td><td>)</td>
136 <td><code> [inline]</code></td>
141 <p>The <a class="el" href="classpp_1_1_module.html#afd1d02002faaa6a4531ad06ca0423c9f" title="The core() function returns the core interface for doing basic global operations.">core()</a> function returns the core interface for doing basic global operations. </p>
142 <p>The return value is guaranteed to be non-NULL once the module has successfully initialized and during the <a class="el" href="classpp_1_1_module.html#a873a824f0e462008d1167e34544ad360" title="Init() is automatically called after the object is created.">Init()</a> call.</p>
143 <p>It will be NULL before <a class="el" href="classpp_1_1_module.html#a873a824f0e462008d1167e34544ad360" title="Init() is automatically called after the object is created.">Init()</a> has been called.</p>
144 <dl class="return"><dt><b>Returns:</b></dt><dd>The core interface for doing basic global operations. </dd></dl>
147 <a class="anchor" id="a648f236af50501bac40ce40296611825"></a><!-- doxytag: member="pp::Module::CreateInstance" ref="a648f236af50501bac40ce40296611825" args="(PP_Instance instance)=0" -->
148 <div class="memitem">
149 <div class="memproto">
150 <table class="memname">
152 <td class="memname">virtual <a class="el" href="classpp_1_1_instance.html">Instance</a>* <a class="el" href="classpp_1_1_module.html#a648f236af50501bac40ce40296611825">pp::Module::CreateInstance</a> </td>
154 <td class="paramtype">PP_Instance </td>
155 <td class="paramname"><em>instance</em></td><td>)</td>
156 <td><code> [protected, pure virtual]</code></td>
161 <p><a class="el" href="classpp_1_1_module.html#a648f236af50501bac40ce40296611825" title="CreateInstance() should be overridden to create your own module type.">CreateInstance()</a> should be overridden to create your own module type. </p>
162 <dl class="params"><dt><b>Parameters:</b></dt><dd>
163 <table class="params">
164 <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code>.</td></tr>
168 <dl class="return"><dt><b>Returns:</b></dt><dd>The resulting instance. </dd></dl>
171 <a class="anchor" id="a3b9ec2c079aa51ceeedfe98f4c9e1a98"></a><!-- doxytag: member="pp::Module::current_instances" ref="a3b9ec2c079aa51ceeedfe98f4c9e1a98" args="() const " -->
172 <div class="memitem">
173 <div class="memproto">
174 <table class="memname">
176 <td class="memname">const <a class="el" href="classpp_1_1_module.html#a47cd6188f0321e74b71126a5fd014b12">InstanceMap</a>& <a class="el" href="classpp_1_1_module.html#a3b9ec2c079aa51ceeedfe98f4c9e1a98">pp::Module::current_instances</a> </td>
178 <td class="paramname"></td><td>)</td>
179 <td> const<code> [inline]</code></td>
184 <p>The <a class="el" href="classpp_1_1_module.html#a3b9ec2c079aa51ceeedfe98f4c9e1a98" title="The current_instances() function allows iteration over the current instances in the module...">current_instances()</a> function allows iteration over the current instances in the module. </p>
185 <dl class="return"><dt><b>Returns:</b></dt><dd>An <code>InstanceMap</code> of all instances in the module. </dd></dl>
188 <a class="anchor" id="ac8cca5d744e812ec3221bc391086b026"></a><!-- doxytag: member="pp::Module::Get" ref="ac8cca5d744e812ec3221bc391086b026" args="()" -->
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
193 <td class="memname">static <a class="el" href="classpp_1_1_module.html">Module</a>* <a class="el" href="classpp_1_1_module.html#ac8cca5d744e812ec3221bc391086b026">pp::Module::Get</a> </td>
195 <td class="paramname"></td><td>)</td>
196 <td><code> [static]</code></td>
201 <p><a class="el" href="classpp_1_1_module.html#ac8cca5d744e812ec3221bc391086b026" title="Get() returns the global instance of this module object, or NULL if the module is not initialized yet...">Get()</a> returns the global instance of this module object, or NULL if the module is not initialized yet. </p>
202 <dl class="return"><dt><b>Returns:</b></dt><dd>The global instance of the module object. </dd></dl>
205 <a class="anchor" id="a8955edbfec01524388338b440633850a"></a><!-- doxytag: member="pp::Module::get_browser_interface" ref="a8955edbfec01524388338b440633850a" args="() const " -->
206 <div class="memitem">
207 <div class="memproto">
208 <table class="memname">
210 <td class="memname">PPB_GetInterface <a class="el" href="classpp_1_1_module.html#a8955edbfec01524388338b440633850a">pp::Module::get_browser_interface</a> </td>
212 <td class="paramname"></td><td>)</td>
213 <td> const<code> [inline]</code></td>
218 <p>The <a class="el" href="classpp_1_1_module.html#a8955edbfec01524388338b440633850a" title="The get_browser_interface() function returns the internal get_browser_interface pointer.">get_browser_interface()</a> function returns the internal <code>get_browser_interface</code> pointer. </p>
219 <dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PPB_GetInterface</code> internal pointer. </dd></dl>
222 <a class="anchor" id="a2aece372fdef35ded56d69a4e881a376"></a><!-- doxytag: member="pp::Module::GetBrowserInterface" ref="a2aece372fdef35ded56d69a4e881a376" args="(const char *interface_name)" -->
223 <div class="memitem">
224 <div class="memproto">
225 <table class="memname">
227 <td class="memname">const void* <a class="el" href="classpp_1_1_module.html#a2aece372fdef35ded56d69a4e881a376">pp::Module::GetBrowserInterface</a> </td>
229 <td class="paramtype">const char * </td>
230 <td class="paramname"><em>interface_name</em></td><td>)</td>
236 <p><a class="el" href="classpp_1_1_module.html#a2aece372fdef35ded56d69a4e881a376" title="GetBrowserInterface() returns interfaces which the browser implements (i.e.">GetBrowserInterface()</a> returns interfaces which the browser implements (i.e. </p>
237 <p>PPB interfaces). </p>
238 <dl class="params"><dt><b>Parameters:</b></dt><dd>
239 <table class="params">
240 <tr><td class="paramdir">[in]</td><td class="paramname">interface_name</td><td>The browser interface for the module to get. </td></tr>
246 <a class="anchor" id="a8c8c946f741e140ff7dd21b36b1a42a5"></a><!-- doxytag: member="pp::Module::GetPluginInterface" ref="a8c8c946f741e140ff7dd21b36b1a42a5" args="(const char *interface_name)" -->
247 <div class="memitem">
248 <div class="memproto">
249 <table class="memname">
251 <td class="memname">const void* <a class="el" href="classpp_1_1_module.html#a8c8c946f741e140ff7dd21b36b1a42a5">pp::Module::GetPluginInterface</a> </td>
253 <td class="paramtype">const char * </td>
254 <td class="paramname"><em>interface_name</em></td><td>)</td>
260 <p><a class="el" href="classpp_1_1_module.html#a8c8c946f741e140ff7dd21b36b1a42a5" title="GetPluginInterface() implements GetInterface for the browser to get module interfaces.">GetPluginInterface()</a> implements <code>GetInterface</code> for the browser to get module interfaces. </p>
261 <p>If you need to provide your own implementations of new interfaces, use <a class="el" href="classpp_1_1_module.html#aeddc6021140b4bdea3a83c36e7b8ec7e" title="AddPluginInterface() adds a handler for a provided interface name.">AddPluginInterface()</a> which this function will use.</p>
262 <dl class="params"><dt><b>Parameters:</b></dt><dd>
263 <table class="params">
264 <tr><td class="paramdir">[in]</td><td class="paramname">interface_name</td><td>The module interface for the browser to get. </td></tr>
270 <a class="anchor" id="a873a824f0e462008d1167e34544ad360"></a><!-- doxytag: member="pp::Module::Init" ref="a873a824f0e462008d1167e34544ad360" args="()" -->
271 <div class="memitem">
272 <div class="memproto">
273 <table class="memname">
275 <td class="memname">virtual bool <a class="el" href="classpp_1_1_module.html#a873a824f0e462008d1167e34544ad360">pp::Module::Init</a> </td>
277 <td class="paramname"></td><td>)</td>
278 <td><code> [virtual]</code></td>
283 <p><a class="el" href="classpp_1_1_module.html#a873a824f0e462008d1167e34544ad360" title="Init() is automatically called after the object is created.">Init()</a> is automatically called after the object is created. </p>
284 <p>This is where you can put functions that rely on other parts of the API, now that the module has been created.</p>
285 <dl class="return"><dt><b>Returns:</b></dt><dd>true if successful, otherwise false. </dd></dl>
288 <a class="anchor" id="ab57a787b61cd72fdcea0d232ed88eaef"></a><!-- doxytag: member="pp::Module::InstanceForPPInstance" ref="ab57a787b61cd72fdcea0d232ed88eaef" args="(PP_Instance instance)" -->
289 <div class="memitem">
290 <div class="memproto">
291 <table class="memname">
293 <td class="memname"><a class="el" href="classpp_1_1_instance.html">Instance</a>* <a class="el" href="classpp_1_1_module.html#ab57a787b61cd72fdcea0d232ed88eaef">pp::Module::InstanceForPPInstance</a> </td>
295 <td class="paramtype">PP_Instance </td>
296 <td class="paramname"><em>instance</em></td><td>)</td>
302 <p><a class="el" href="classpp_1_1_module.html#ab57a787b61cd72fdcea0d232ed88eaef" title="InstanceForPPInstance() returns the object associated with this PP_Instance, or NULL if one is not fo...">InstanceForPPInstance()</a> returns the object associated with this <code>PP_Instance</code>, or NULL if one is not found. </p>
303 <p>This should only be called from the main thread! This instance object may be destroyed at any time on the main thread, so using it on other threads may cause a crash.</p>
304 <dl class="params"><dt><b>Parameters:</b></dt><dd>
305 <table class="params">
306 <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>This <code>PP_Instance</code>.</td></tr>
310 <dl class="return"><dt><b>Returns:</b></dt><dd>The object associated with this <code>PP_Instance</code>, or NULL if one is not found. </dd></dl>
313 <a class="anchor" id="acd9a63a4b364c28abfeac39687f2fa1a"></a><!-- doxytag: member="pp::Module::InternalInit" ref="acd9a63a4b364c28abfeac39687f2fa1a" args="(PP_Module mod, PPB_GetInterface get_browser_interface)" -->
314 <div class="memitem">
315 <div class="memproto">
316 <table class="memname">
318 <td class="memname">bool <a class="el" href="classpp_1_1_module.html#acd9a63a4b364c28abfeac39687f2fa1a">pp::Module::InternalInit</a> </td>
320 <td class="paramtype">PP_Module </td>
321 <td class="paramname"><em>mod</em>, </td>
324 <td class="paramkey"></td>
326 <td class="paramtype">PPB_GetInterface </td>
327 <td class="paramname"><em>get_browser_interface</em> </td>
337 <p>function that can be overridden by the base classes. </p>
338 <dl class="params"><dt><b>Parameters:</b></dt><dd>
339 <table class="params">
340 <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>A <code>PP_Module</code>. </td></tr>
341 <tr><td class="paramdir">[in]</td><td class="paramname">get_browser_interface</td><td>The browser interface to set.</td></tr>
345 <dl class="return"><dt><b>Returns:</b></dt><dd>true if successful, otherwise false. </dd></dl>
348 <a class="anchor" id="a95bb3148c925f46938ee0f267b1c66e5"></a><!-- doxytag: member="pp::Module::pp_module" ref="a95bb3148c925f46938ee0f267b1c66e5" args="() const " -->
349 <div class="memitem">
350 <div class="memproto">
351 <table class="memname">
353 <td class="memname">PP_Module <a class="el" href="classpp_1_1_module.html#a95bb3148c925f46938ee0f267b1c66e5">pp::Module::pp_module</a> </td>
355 <td class="paramname"></td><td>)</td>
356 <td> const<code> [inline]</code></td>
361 <p>The <a class="el" href="classpp_1_1_module.html#a95bb3148c925f46938ee0f267b1c66e5" title="The pp_module() function returns the internal module handle.">pp_module()</a> function returns the internal module handle. </p>
362 <dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Module</code> internal module handle. </dd></dl>
365 <hr /><h2>Friends And Related Function Documentation</h2>
366 <a class="anchor" id="ab0f2ba24fd03fa31fc2e47d4f8ceb158"></a><!-- doxytag: member="pp::Module::Instance_DidCreate" ref="ab0f2ba24fd03fa31fc2e47d4f8ceb158" args="(PP_Instance pp_instance, uint32_t argc, const char *argn[], const char *argv[])" -->
367 <div class="memitem">
368 <div class="memproto">
369 <table class="memname">
371 <td class="memname">PP_Bool <a class="el" href="classpp_1_1_module.html#ab0f2ba24fd03fa31fc2e47d4f8ceb158">Instance_DidCreate</a> </td>
373 <td class="paramtype">PP_Instance </td>
374 <td class="paramname"><em>pp_instance</em>, </td>
377 <td class="paramkey"></td>
379 <td class="paramtype">uint32_t </td>
380 <td class="paramname"><em>argc</em>, </td>
383 <td class="paramkey"></td>
385 <td class="paramtype">const char * </td>
386 <td class="paramname"><em>argn</em>[], </td>
389 <td class="paramkey"></td>
391 <td class="paramtype">const char * </td>
392 <td class="paramname"><em>argv</em>[] </td>
397 <td></td><td><code> [friend]</code></td>
404 <a class="anchor" id="accf4ce5410f02db9c87dcca045043128"></a><!-- doxytag: member="pp::Module::Instance_DidDestroy" ref="accf4ce5410f02db9c87dcca045043128" args="(PP_Instance instance)" -->
405 <div class="memitem">
406 <div class="memproto">
407 <table class="memname">
409 <td class="memname">void <a class="el" href="classpp_1_1_module.html#accf4ce5410f02db9c87dcca045043128">Instance_DidDestroy</a> </td>
411 <td class="paramtype">PP_Instance </td>
412 <td class="paramname"><em>instance</em></td><td>)</td>
413 <td><code> [friend]</code></td>
420 <hr />The documentation for this class was generated from the following file:<ul>
421 <li><a class="el" href="module_8h.html">module.h</a></li>
423 </div><!-- contents -->
424 {{/partials.standard_nacl_article}}