1 {{+bindTo:partials.standard_nacl_article}}
2 <h1>pp::Module Class Reference</h1>
4 {{- dummy div to appease doxygen -}}
6 <!-- Generated by Doxygen 1.7.6.1 -->
12 <div class="contents">
13 <!-- doxytag: class="pp::Module" -->
14 <p><a href="classpp_1_1_module-members.html">List of all members.</a></p>
16 Public Types</h2><table class="memberdecls">
18 <tr><td class="memItemLeft" align="right" valign="top">typedef std::map< PP_Instance, <br class="typebreak" />
19 <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>
21 Public Member Functions</h2><table class="memberdecls">
22 <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>
23 <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>
24 <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>
25 <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>
26 <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>
27 <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>
28 <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>
29 <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>
30 <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>
31 <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>
32 <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>
33 <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>
35 Static Public Member Functions</h2><table class="memberdecls">
36 <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>
38 Protected Member Functions</h2><table class="memberdecls">
39 <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>
41 Friends</h2><table class="memberdecls">
42 <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>
43 <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>
45 <hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
46 <div class="textblock"><p>The <a class="el" href="classpp_1_1_module.html" title="The Module class.">Module</a> class. </p>
47 <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>
48 </div><hr /><h2>Member Typedef Documentation</h2>
49 <a class="anchor" id="a47cd6188f0321e74b71126a5fd014b12"></a><!-- doxytag: member="pp::Module::InstanceMap" ref="a47cd6188f0321e74b71126a5fd014b12" args="" -->
51 <div class="memproto">
52 <table class="memname">
54 <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>
61 <hr /><h2>Constructor & Destructor Documentation</h2>
62 <a class="anchor" id="a67b76ad37316a2e89ebd2902a6503686"></a><!-- doxytag: member="pp::Module::Module" ref="a67b76ad37316a2e89ebd2902a6503686" args="()" -->
64 <div class="memproto">
65 <table class="memname">
67 <td class="memname"><a class="el" href="classpp_1_1_module.html#a67b76ad37316a2e89ebd2902a6503686">pp::Module::Module</a> </td>
69 <td class="paramname"></td><td>)</td>
77 <a class="anchor" id="ac3c912841726117a128d2e056f15210e"></a><!-- doxytag: member="pp::Module::~Module" ref="ac3c912841726117a128d2e056f15210e" args="()" -->
79 <div class="memproto">
80 <table class="memname">
82 <td class="memname">virtual <a class="el" href="classpp_1_1_module.html#ac3c912841726117a128d2e056f15210e">pp::Module::~Module</a> </td>
84 <td class="paramname"></td><td>)</td>
85 <td><code> [virtual]</code></td>
92 <hr /><h2>Member Function Documentation</h2>
93 <a class="anchor" id="aeddc6021140b4bdea3a83c36e7b8ec7e"></a><!-- doxytag: member="pp::Module::AddPluginInterface" ref="aeddc6021140b4bdea3a83c36e7b8ec7e" args="(const std::string &interface_name, const void *vtable)" -->
95 <div class="memproto">
96 <table class="memname">
98 <td class="memname">void <a class="el" href="classpp_1_1_module.html#aeddc6021140b4bdea3a83c36e7b8ec7e">pp::Module::AddPluginInterface</a> </td>
100 <td class="paramtype">const std::string & </td>
101 <td class="paramname"><em>interface_name</em>, </td>
104 <td class="paramkey"></td>
106 <td class="paramtype">const void * </td>
107 <td class="paramname"><em>vtable</em> </td>
117 <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>
118 <p>When the browser requests that interface name, the provided <code>vtable</code> will be returned.</p>
119 <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>
120 <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>
121 <dl class="params"><dt><b>Parameters:</b></dt><dd>
122 <table class="params">
123 <tr><td class="paramdir">[in]</td><td class="paramname">interface_name</td><td>The interface name that will receive a handler. </td></tr>
124 <tr><td class="paramdir">[in,out]</td><td class="paramname">vtable</td><td>The vtable to return for <code>interface_name</code>. </td></tr>
130 <a class="anchor" id="afd1d02002faaa6a4531ad06ca0423c9f"></a><!-- doxytag: member="pp::Module::core" ref="afd1d02002faaa6a4531ad06ca0423c9f" args="()" -->
131 <div class="memitem">
132 <div class="memproto">
133 <table class="memname">
135 <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>
137 <td class="paramname"></td><td>)</td>
138 <td><code> [inline]</code></td>
143 <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>
144 <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>
145 <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>
146 <dl class="return"><dt><b>Returns:</b></dt><dd>The core interface for doing basic global operations. </dd></dl>
149 <a class="anchor" id="a648f236af50501bac40ce40296611825"></a><!-- doxytag: member="pp::Module::CreateInstance" ref="a648f236af50501bac40ce40296611825" args="(PP_Instance instance)=0" -->
150 <div class="memitem">
151 <div class="memproto">
152 <table class="memname">
154 <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>
156 <td class="paramtype">PP_Instance </td>
157 <td class="paramname"><em>instance</em></td><td>)</td>
158 <td><code> [protected, pure virtual]</code></td>
163 <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>
164 <dl class="params"><dt><b>Parameters:</b></dt><dd>
165 <table class="params">
166 <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>A <code>PP_Instance</code>.</td></tr>
170 <dl class="return"><dt><b>Returns:</b></dt><dd>The resulting instance. </dd></dl>
173 <a class="anchor" id="a3b9ec2c079aa51ceeedfe98f4c9e1a98"></a><!-- doxytag: member="pp::Module::current_instances" ref="a3b9ec2c079aa51ceeedfe98f4c9e1a98" args="() const " -->
174 <div class="memitem">
175 <div class="memproto">
176 <table class="memname">
178 <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>
180 <td class="paramname"></td><td>)</td>
181 <td> const<code> [inline]</code></td>
186 <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>
187 <dl class="return"><dt><b>Returns:</b></dt><dd>An <code>InstanceMap</code> of all instances in the module. </dd></dl>
190 <a class="anchor" id="ac8cca5d744e812ec3221bc391086b026"></a><!-- doxytag: member="pp::Module::Get" ref="ac8cca5d744e812ec3221bc391086b026" args="()" -->
191 <div class="memitem">
192 <div class="memproto">
193 <table class="memname">
195 <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>
197 <td class="paramname"></td><td>)</td>
198 <td><code> [static]</code></td>
203 <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>
204 <dl class="return"><dt><b>Returns:</b></dt><dd>The global instance of the module object. </dd></dl>
207 <a class="anchor" id="a8955edbfec01524388338b440633850a"></a><!-- doxytag: member="pp::Module::get_browser_interface" ref="a8955edbfec01524388338b440633850a" args="() const " -->
208 <div class="memitem">
209 <div class="memproto">
210 <table class="memname">
212 <td class="memname">PPB_GetInterface <a class="el" href="classpp_1_1_module.html#a8955edbfec01524388338b440633850a">pp::Module::get_browser_interface</a> </td>
214 <td class="paramname"></td><td>)</td>
215 <td> const<code> [inline]</code></td>
220 <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>
221 <dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PPB_GetInterface</code> internal pointer. </dd></dl>
224 <a class="anchor" id="a2aece372fdef35ded56d69a4e881a376"></a><!-- doxytag: member="pp::Module::GetBrowserInterface" ref="a2aece372fdef35ded56d69a4e881a376" args="(const char *interface_name)" -->
225 <div class="memitem">
226 <div class="memproto">
227 <table class="memname">
229 <td class="memname">const void* <a class="el" href="classpp_1_1_module.html#a2aece372fdef35ded56d69a4e881a376">pp::Module::GetBrowserInterface</a> </td>
231 <td class="paramtype">const char * </td>
232 <td class="paramname"><em>interface_name</em></td><td>)</td>
238 <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>
239 <p>PPB interfaces). </p>
240 <dl class="params"><dt><b>Parameters:</b></dt><dd>
241 <table class="params">
242 <tr><td class="paramdir">[in]</td><td class="paramname">interface_name</td><td>The browser interface for the module to get. </td></tr>
248 <a class="anchor" id="a8c8c946f741e140ff7dd21b36b1a42a5"></a><!-- doxytag: member="pp::Module::GetPluginInterface" ref="a8c8c946f741e140ff7dd21b36b1a42a5" args="(const char *interface_name)" -->
249 <div class="memitem">
250 <div class="memproto">
251 <table class="memname">
253 <td class="memname">const void* <a class="el" href="classpp_1_1_module.html#a8c8c946f741e140ff7dd21b36b1a42a5">pp::Module::GetPluginInterface</a> </td>
255 <td class="paramtype">const char * </td>
256 <td class="paramname"><em>interface_name</em></td><td>)</td>
262 <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>
263 <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>
264 <dl class="params"><dt><b>Parameters:</b></dt><dd>
265 <table class="params">
266 <tr><td class="paramdir">[in]</td><td class="paramname">interface_name</td><td>The module interface for the browser to get. </td></tr>
272 <a class="anchor" id="a873a824f0e462008d1167e34544ad360"></a><!-- doxytag: member="pp::Module::Init" ref="a873a824f0e462008d1167e34544ad360" args="()" -->
273 <div class="memitem">
274 <div class="memproto">
275 <table class="memname">
277 <td class="memname">virtual bool <a class="el" href="classpp_1_1_module.html#a873a824f0e462008d1167e34544ad360">pp::Module::Init</a> </td>
279 <td class="paramname"></td><td>)</td>
280 <td><code> [virtual]</code></td>
285 <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>
286 <p>This is where you can put functions that rely on other parts of the API, now that the module has been created.</p>
287 <dl class="return"><dt><b>Returns:</b></dt><dd>true if successful, otherwise false. </dd></dl>
290 <a class="anchor" id="ab57a787b61cd72fdcea0d232ed88eaef"></a><!-- doxytag: member="pp::Module::InstanceForPPInstance" ref="ab57a787b61cd72fdcea0d232ed88eaef" args="(PP_Instance instance)" -->
291 <div class="memitem">
292 <div class="memproto">
293 <table class="memname">
295 <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>
297 <td class="paramtype">PP_Instance </td>
298 <td class="paramname"><em>instance</em></td><td>)</td>
304 <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>
305 <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>
306 <dl class="params"><dt><b>Parameters:</b></dt><dd>
307 <table class="params">
308 <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>This <code>PP_Instance</code>.</td></tr>
312 <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>
315 <a class="anchor" id="acd9a63a4b364c28abfeac39687f2fa1a"></a><!-- doxytag: member="pp::Module::InternalInit" ref="acd9a63a4b364c28abfeac39687f2fa1a" args="(PP_Module mod, PPB_GetInterface get_browser_interface)" -->
316 <div class="memitem">
317 <div class="memproto">
318 <table class="memname">
320 <td class="memname">bool <a class="el" href="classpp_1_1_module.html#acd9a63a4b364c28abfeac39687f2fa1a">pp::Module::InternalInit</a> </td>
322 <td class="paramtype">PP_Module </td>
323 <td class="paramname"><em>mod</em>, </td>
326 <td class="paramkey"></td>
328 <td class="paramtype">PPB_GetInterface </td>
329 <td class="paramname"><em>get_browser_interface</em> </td>
339 <p>function that can be overridden by the base classes. </p>
340 <dl class="params"><dt><b>Parameters:</b></dt><dd>
341 <table class="params">
342 <tr><td class="paramdir">[in]</td><td class="paramname">mod</td><td>A <code>PP_Module</code>. </td></tr>
343 <tr><td class="paramdir">[in]</td><td class="paramname">get_browser_interface</td><td>The browser interface to set.</td></tr>
347 <dl class="return"><dt><b>Returns:</b></dt><dd>true if successful, otherwise false. </dd></dl>
350 <a class="anchor" id="a95bb3148c925f46938ee0f267b1c66e5"></a><!-- doxytag: member="pp::Module::pp_module" ref="a95bb3148c925f46938ee0f267b1c66e5" args="() const " -->
351 <div class="memitem">
352 <div class="memproto">
353 <table class="memname">
355 <td class="memname">PP_Module <a class="el" href="classpp_1_1_module.html#a95bb3148c925f46938ee0f267b1c66e5">pp::Module::pp_module</a> </td>
357 <td class="paramname"></td><td>)</td>
358 <td> const<code> [inline]</code></td>
363 <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>
364 <dl class="return"><dt><b>Returns:</b></dt><dd>A <code>PP_Module</code> internal module handle. </dd></dl>
367 <hr /><h2>Friends And Related Function Documentation</h2>
368 <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[])" -->
369 <div class="memitem">
370 <div class="memproto">
371 <table class="memname">
373 <td class="memname">PP_Bool <a class="el" href="classpp_1_1_module.html#ab0f2ba24fd03fa31fc2e47d4f8ceb158">Instance_DidCreate</a> </td>
375 <td class="paramtype">PP_Instance </td>
376 <td class="paramname"><em>pp_instance</em>, </td>
379 <td class="paramkey"></td>
381 <td class="paramtype">uint32_t </td>
382 <td class="paramname"><em>argc</em>, </td>
385 <td class="paramkey"></td>
387 <td class="paramtype">const char * </td>
388 <td class="paramname"><em>argn</em>[], </td>
391 <td class="paramkey"></td>
393 <td class="paramtype">const char * </td>
394 <td class="paramname"><em>argv</em>[] </td>
399 <td></td><td><code> [friend]</code></td>
406 <a class="anchor" id="accf4ce5410f02db9c87dcca045043128"></a><!-- doxytag: member="pp::Module::Instance_DidDestroy" ref="accf4ce5410f02db9c87dcca045043128" args="(PP_Instance instance)" -->
407 <div class="memitem">
408 <div class="memproto">
409 <table class="memname">
411 <td class="memname">void <a class="el" href="classpp_1_1_module.html#accf4ce5410f02db9c87dcca045043128">Instance_DidDestroy</a> </td>
413 <td class="paramtype">PP_Instance </td>
414 <td class="paramname"><em>instance</em></td><td>)</td>
415 <td><code> [friend]</code></td>
422 <hr />The documentation for this class was generated from the following file:<ul>
423 <li><a class="el" href="module_8h.html">module.h</a></li>
425 </div><!-- contents -->
427 {{/partials.standard_nacl_article}}