Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Side by Side Diff: native_client_sdk/doc_generated/devguide/coding/native-client-modules.html

Issue 438403003: [NaCl SDK Docs] Only generate one top-level <section> element. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 {{+bindTo:partials.standard_nacl_article}} 1 {{+bindTo:partials.standard_nacl_article}}
2 2
3 <section id="native-client-modules"> 3 <section id="native-client-modules">
4 <span id="devcycle-native-client-modules"></span><h1 id="native-client-modules"> <span id="devcycle-native-client-modules"></span>Native Client Modules</h1> 4 <span id="devcycle-native-client-modules"></span><h1 id="native-client-modules"> <span id="devcycle-native-client-modules"></span>Native Client Modules</h1>
5 <p>This document describes the classes and functions that you need to implement in 5 <p>This document describes the classes and functions that you need to implement in
6 a Native Client module in order for Chrome to load, initialize, and run it. The 6 a Native Client module in order for Chrome to load, initialize, and run it. The
7 requirements are the same regardless of whether or not the module uses PNaCl, 7 requirements are the same regardless of whether or not the module uses PNaCl,
8 but depend on whether the module is written in C or C++.</p> 8 but depend on whether the module is written in C or C++.</p>
9 <div class="contents local" id="contents" style="display: none"> 9 <div class="contents local" id="contents" style="display: none">
10 <ul class="small-gap"> 10 <ul class="small-gap">
11 <li><a class="reference internal" href="#introduction" id="id2">Introduction</a> </li> 11 <li><a class="reference internal" href="#introduction" id="id2">Introduction</a> </li>
12 <li><a class="reference internal" href="#writing-modules-in-c" id="id3">Writing modules in C</a></li> 12 <li><a class="reference internal" href="#writing-modules-in-c" id="id3">Writing modules in C</a></li>
13 <li><a class="reference internal" href="#id1" id="id4">Writing modules in C++</a ></li> 13 <li><a class="reference internal" href="#id1" id="id4">Writing modules in C++</a ></li>
14 </ul> 14 </ul>
15 15
16 </div><section id="introduction"> 16 </div><h2 id="introduction">Introduction</h2>
17 <h2 id="introduction">Introduction</h2>
18 <p>Native Client modules do not have a <code>main()</code> function. When a modu le loads, 17 <p>Native Client modules do not have a <code>main()</code> function. When a modu le loads,
19 the Native Client runtime calls the code in the module to create an instance and 18 the Native Client runtime calls the code in the module to create an instance and
20 initialize the interfaces for the APIs the module uses. This initialization 19 initialize the interfaces for the APIs the module uses. This initialization
21 sequence depends on whether the module is written in C or C++ and requires that 20 sequence depends on whether the module is written in C or C++ and requires that
22 you implement specific functions in each case.</p> 21 you implement specific functions in each case.</p>
23 </section><section id="writing-modules-in-c">
24 <h2 id="writing-modules-in-c">Writing modules in C</h2> 22 <h2 id="writing-modules-in-c">Writing modules in C</h2>
25 <p>The C API uses a prefix convention to show whether an interface is implemente d 23 <p>The C API uses a prefix convention to show whether an interface is implemente d
26 in the browser or in a module. Interfaces starting with <code>PPB_</code> (which can be 24 in the browser or in a module. Interfaces starting with <code>PPB_</code> (which can be
27 read as &#8220;Pepper <em>browser</em>&#8221;) are implemented in the browser an d they are called 25 read as &#8220;Pepper <em>browser</em>&#8221;) are implemented in the browser an d they are called
28 from your module. Interfaces starting with <code>PPP_</code> (&#8220;Pepper <em> plugin</em>&#8221;) are 26 from your module. Interfaces starting with <code>PPP_</code> (&#8220;Pepper <em> plugin</em>&#8221;) are
29 implemented in the module; they are called from the browser and will execute on 27 implemented in the module; they are called from the browser and will execute on
30 the main thread of the module instance.</p> 28 the main thread of the module instance.</p>
31 <p>When you implement a Native Client module in C you must include these compone nts:</p> 29 <p>When you implement a Native Client module in C you must include these compone nts:</p>
32 <ul class="small-gap"> 30 <ul class="small-gap">
33 <li>The functions <code>PPP_InitializeModule</code> and <code>PPP_GetInterface</ code></li> 31 <li>The functions <code>PPP_InitializeModule</code> and <code>PPP_GetInterface</ code></li>
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 } 102 }
105 103
106 // Define PPP_InitializeModule, the entry point of your module. 104 // Define PPP_InitializeModule, the entry point of your module.
107 // Retrieve the API for the browser-side (PPB) interfaces you will use. 105 // Retrieve the API for the browser-side (PPB) interfaces you will use.
108 PP_EXPORT int32_t PPP_InitializeModule(PP_Module a_module_id, PPB_GetInterface g et_browser) { 106 PP_EXPORT int32_t PPP_InitializeModule(PP_Module a_module_id, PPB_GetInterface g et_browser) {
109 ppb_instance_interface = (PPB_Instance*)(get_browser(PPB_INSTANCE_INTERF ACE)); 107 ppb_instance_interface = (PPB_Instance*)(get_browser(PPB_INSTANCE_INTERF ACE));
110 ppb_input_event_interface = (PPB_InputEvent*)(get_browser(PPB_INPUT_EVEN T_INTERFACE)); 108 ppb_input_event_interface = (PPB_InputEvent*)(get_browser(PPB_INPUT_EVEN T_INTERFACE));
111 return PP_OK; 109 return PP_OK;
112 } 110 }
113 </pre> 111 </pre>
114 </section><section id="id1">
115 <h2 id="id1">Writing modules in C++</h2> 112 <h2 id="id1">Writing modules in C++</h2>
116 <p>When you implement a Native Client module in C++ you must include these compo nents:</p> 113 <p>When you implement a Native Client module in C++ you must include these compo nents:</p>
117 <ul class="small-gap"> 114 <ul class="small-gap">
118 <li>The factory function called <code>CreateModule()</code></li> 115 <li>The factory function called <code>CreateModule()</code></li>
119 <li>Code that defines your own Module class (derived from the <code>pp::Module</ code> 116 <li>Code that defines your own Module class (derived from the <code>pp::Module</ code>
120 class)</li> 117 class)</li>
121 <li>Code that defines your own Instance class (derived from the <code>pp:Instanc e</code> 118 <li>Code that defines your own Instance class (derived from the <code>pp:Instanc e</code>
122 class)</li> 119 class)</li>
123 </ul> 120 </ul>
124 <p>In the &#8220;Hello tutorial&#8221; example (in the <code>getting_started/par t1</code> directory of 121 <p>In the &#8220;Hello tutorial&#8221; example (in the <code>getting_started/par t1</code> directory of
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 an implementation of the <code>HandleMessage()</code> function. The browser call s an 163 an implementation of the <code>HandleMessage()</code> function. The browser call s an
167 instance&#8217;s <code>HandleMessage()</code> function every time the JavaScript code in an 164 instance&#8217;s <code>HandleMessage()</code> function every time the JavaScript code in an
168 application calls <code>postMessage()</code> to send a message to the instance. See the 165 application calls <code>postMessage()</code> to send a message to the instance. See the
169 <a class="reference internal" href="/native-client/devguide/coding/message-syste m.html"><em>Native Client messaging system</em></a> for more information about 166 <a class="reference internal" href="/native-client/devguide/coding/message-syste m.html"><em>Native Client messaging system</em></a> for more information about
170 how to send messages between JavaScript code and Native Client modules.</p> 167 how to send messages between JavaScript code and Native Client modules.</p>
171 <p>While the <code>CreateModule()</code> factory function, the <code>Module</cod e> class, and the 168 <p>While the <code>CreateModule()</code> factory function, the <code>Module</cod e> class, and the
172 <code>Instance</code> class are required for a Native Client application, the co de 169 <code>Instance</code> class are required for a Native Client application, the co de
173 samples shown above don&#8217;t actually do anything. Subsequent documents in th e 170 samples shown above don&#8217;t actually do anything. Subsequent documents in th e
174 Developer&#8217;s Guide build on these code samples and add more interesting 171 Developer&#8217;s Guide build on these code samples and add more interesting
175 functionality.</p> 172 functionality.</p>
176 </section></section> 173 </section>
177 174
178 {{/partials.standard_nacl_article}} 175 {{/partials.standard_nacl_article}}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698