1 {{+bindTo:partials.standard_nacl_api}}
2 <h1>pp::MessageHandler 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::MessageHandler" -->
14 <p><a href="classpp_1_1_message_handler-members.html">List of all members.</a></p>
16 Public Member Functions</h2><table class="memberdecls">
18 <tr><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_message_handler.html#a7dca8d4b899382782aaa163fb2654b83">~MessageHandler</a> ()</td></tr>
19 <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_message_handler.html#a1040f95297420067a69000612bbe6c06">HandleMessage</a> (<a class="el" href="classpp_1_1_instance_handle.html">pp::InstanceHandle</a> instance, const <a class="el" href="classpp_1_1_var.html">Var</a> &message_data)=0</td></tr>
20 <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classpp_1_1_var.html">pp::Var</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_message_handler.html#a37212226dba86f1bf900016116fabdfe">HandleBlockingMessage</a> (<a class="el" href="classpp_1_1_instance_handle.html">pp::InstanceHandle</a> instance, const <a class="el" href="classpp_1_1_var.html">Var</a> &message_data)=0</td></tr>
21 <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_message_handler.html#ac19edb6318796c337865e39d764ed322">WasUnregistered</a> (<a class="el" href="classpp_1_1_instance_handle.html">pp::InstanceHandle</a> instance)=0</td></tr>
23 <hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
24 <div class="textblock"><p><code><a class="el" href="classpp_1_1_message_handler.html" title="MessageHandler is an abstract base class that the plugin may implement if it wants to receive message...">MessageHandler</a></code> is an abstract base class that the plugin may implement if it wants to receive messages from JavaScript on a background thread when JavaScript invokes postMessage() or postMessageAndAwaitResponse(). </p>
25 <p>See <a class="el" href="classpp_1_1_instance.html#a5b5b1a66eda2d0e6884de8f7e25e2346" title="Dev-Channel Only.">pp::Instance::RegisterMessageHandler()</a> for usage. </p>
26 </div><hr /><h2>Constructor & Destructor Documentation</h2>
27 <a class="anchor" id="a7dca8d4b899382782aaa163fb2654b83"></a><!-- doxytag: member="pp::MessageHandler::~MessageHandler" ref="a7dca8d4b899382782aaa163fb2654b83" args="()" -->
29 <div class="memproto">
30 <table class="memname">
32 <td class="memname">virtual <a class="el" href="classpp_1_1_message_handler.html#a7dca8d4b899382782aaa163fb2654b83">pp::MessageHandler::~MessageHandler</a> </td>
34 <td class="paramname"></td><td>)</td>
35 <td><code> [inline, virtual]</code></td>
42 <hr /><h2>Member Function Documentation</h2>
43 <a class="anchor" id="a37212226dba86f1bf900016116fabdfe"></a><!-- doxytag: member="pp::MessageHandler::HandleBlockingMessage" ref="a37212226dba86f1bf900016116fabdfe" args="(pp::InstanceHandle instance, const Var &message_data)=0" -->
45 <div class="memproto">
46 <table class="memname">
48 <td class="memname">virtual <a class="el" href="classpp_1_1_var.html">pp::Var</a> <a class="el" href="classpp_1_1_message_handler.html#a37212226dba86f1bf900016116fabdfe">pp::MessageHandler::HandleBlockingMessage</a> </td>
50 <td class="paramtype"><a class="el" href="classpp_1_1_instance_handle.html">pp::InstanceHandle</a> </td>
51 <td class="paramname"><em>instance</em>, </td>
54 <td class="paramkey"></td>
56 <td class="paramtype">const <a class="el" href="classpp_1_1_var.html">Var</a> & </td>
57 <td class="paramname"><em>message_data</em> </td>
62 <td></td><td><code> [pure virtual]</code></td>
67 <p>Invoked as a result of JavaScript invoking postMessageAndAwaitResponse() on the plugin's DOM element. </p>
68 <p>NOTE: JavaScript execution is blocked during the duration of this call. Hence, the plugin should respond as quickly as possible. For this reason, blocking completion callbacks are disallowed while handling a blocking message.</p>
69 <dl class="params"><dt><b>Parameters:</b></dt><dd>
70 <table class="params">
71 <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>An <code><a class="el" href="classpp_1_1_instance_handle.html" title="An instance handle identifies an instance in a constructor for a resource.">InstanceHandle</a></code> identifying one instance of a module. </td></tr>
72 <tr><td class="paramdir">[in]</td><td class="paramname">message_data</td><td>A copy of the parameter that JavaScript provided to postMessage(). </td></tr>
76 <dl class="return"><dt><b>Returns:</b></dt><dd>Returns a <a class="el" href="classpp_1_1_var.html" title="A generic type used for passing data types between the module and the page.">pp::Var</a> that is then copied to a JavaScript object which is returned as the result of JavaScript's call of postMessageAndAwaitResponse(). </dd></dl>
79 <a class="anchor" id="a1040f95297420067a69000612bbe6c06"></a><!-- doxytag: member="pp::MessageHandler::HandleMessage" ref="a1040f95297420067a69000612bbe6c06" args="(pp::InstanceHandle instance, const Var &message_data)=0" -->
81 <div class="memproto">
82 <table class="memname">
84 <td class="memname">virtual void <a class="el" href="classpp_1_1_message_handler.html#a1040f95297420067a69000612bbe6c06">pp::MessageHandler::HandleMessage</a> </td>
86 <td class="paramtype"><a class="el" href="classpp_1_1_instance_handle.html">pp::InstanceHandle</a> </td>
87 <td class="paramname"><em>instance</em>, </td>
90 <td class="paramkey"></td>
92 <td class="paramtype">const <a class="el" href="classpp_1_1_var.html">Var</a> & </td>
93 <td class="paramname"><em>message_data</em> </td>
98 <td></td><td><code> [pure virtual]</code></td>
103 <p>Invoked as a result of JavaScript invoking postMessage() on the plugin's DOM element. </p>
104 <dl class="params"><dt><b>Parameters:</b></dt><dd>
105 <table class="params">
106 <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>An <code><a class="el" href="classpp_1_1_instance_handle.html" title="An instance handle identifies an instance in a constructor for a resource.">InstanceHandle</a></code> identifying one instance of a module. </td></tr>
107 <tr><td class="paramdir">[in]</td><td class="paramname">message_data</td><td>A copy of the parameter that JavaScript provided to postMessage(). </td></tr>
113 <a class="anchor" id="ac19edb6318796c337865e39d764ed322"></a><!-- doxytag: member="pp::MessageHandler::WasUnregistered" ref="ac19edb6318796c337865e39d764ed322" args="(pp::InstanceHandle instance)=0" -->
114 <div class="memitem">
115 <div class="memproto">
116 <table class="memname">
118 <td class="memname">virtual void <a class="el" href="classpp_1_1_message_handler.html#ac19edb6318796c337865e39d764ed322">pp::MessageHandler::WasUnregistered</a> </td>
120 <td class="paramtype"><a class="el" href="classpp_1_1_instance_handle.html">pp::InstanceHandle</a> </td>
121 <td class="paramname"><em>instance</em></td><td>)</td>
122 <td><code> [pure virtual]</code></td>
127 <p>Invoked when this <a class="el" href="classpp_1_1_message_handler.html" title="MessageHandler is an abstract base class that the plugin may implement if it wants to receive message...">MessageHandler</a> is no longer needed. </p>
128 <p>After this, no more calls will be made to this object.</p>
129 <dl class="params"><dt><b>Parameters:</b></dt><dd>
130 <table class="params">
131 <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>An <code><a class="el" href="classpp_1_1_instance_handle.html" title="An instance handle identifies an instance in a constructor for a resource.">InstanceHandle</a></code> identifying one instance of a module. </td></tr>
137 <hr />The documentation for this class was generated from the following file:<ul>
138 <li><a class="el" href="message__handler_8h.html">message_handler.h</a></li>
140 </div><!-- contents -->
142 {{/partials.standard_nacl_api}}