classpp_1_1_host_resolver.html revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
1{{+bindTo:partials.standard_nacl_article}}
2<h1>pp::HostResolver Class 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::HostResolver" --><!-- doxytag: inherits="pp::Resource" --><div class="dynheader">
14Inheritance diagram for pp::HostResolver:</div>
15<div class="dyncontent">
16<div class="center"><img src="classpp_1_1_host_resolver__inherit__graph.png" border="0" usemap="#pp_1_1_host_resolver_inherit__map" alt="Inheritance graph" /></div>
17<map name="pp_1_1_host_resolver_inherit__map" id="pp_1_1_host_resolver_inherit__map">
18<area shape="rect" id="node2" href="classpp_1_1_resource.html" title="A reference counted module resource." alt="" coords="17,5,121,35"></area></map>
19<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
20<p><a href="classpp_1_1_host_resolver-members.html">List of all members.</a></p>
21<h2>
22Public Member Functions</h2><table class="memberdecls">
23
24<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#a98885c5eb6ba873ee54cbb657f9e43f5">HostResolver</a> ()</td></tr>
25<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#aea32a40269f4ad3dc9d9cbadc89bea4f">HostResolver</a> (const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;instance)</td></tr>
26<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#adc4f2b44c8281920fbce2c4b93eddce2">HostResolver</a> (<a class="el" href="namespacepp.html#a339083c1beec620267bf8b3c55decaa5">PassRef</a>, PP_Resource resource)</td></tr>
27<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#a74ea3a85ad41ded8128b188c821cdb28">HostResolver</a> (const <a class="el" href="classpp_1_1_host_resolver.html">HostResolver</a> &amp;other)</td></tr>
28<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#ad4d39f4e863917bc881fc98c236c9f84">~HostResolver</a> ()</td></tr>
29<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpp_1_1_host_resolver.html">HostResolver</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#ab773cb42d3130d6973a8743bc7aba7bd">operator=</a> (const <a class="el" href="classpp_1_1_host_resolver.html">HostResolver</a> &amp;other)</td></tr>
30<tr><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98">Resolve</a> (const char *host, uint16_t port, const PP_HostResolver_Hint &amp;hint, const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;callback)</td></tr>
31<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpp_1_1_var.html">Var</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#aaa2e0834d48b8356f8f3185bc615611d">GetCanonicalName</a> () const </td></tr>
32<tr><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#ace959e4cb6fd0a51669f6eff64e08ae3">GetNetAddressCount</a> () const </td></tr>
33<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpp_1_1_net_address.html">NetAddress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#a3680cf97d53a80a536c5dc6441a4c6e7">GetNetAddress</a> (uint32_t index) const </td></tr>
34</table><h2>
35Static Public Member Functions</h2><table class="memberdecls">
36<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpp_1_1_host_resolver.html#ad56c139fa37d665cbb7e33f4d592b421">IsAvailable</a> ()</td></tr>
37</table>
38<hr /><a name="details" id="details"></a><h2>Detailed Description</h2>
39<div class="textblock"><p>The <code><a class="el" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution.">HostResolver</a></code> class supports host name resolution. </p>
40<p>Permissions: In order to run <code><a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98" title="Requests resolution of a host name.">Resolve()</a></code>, apps permission <code>socket</code> with subrule <code>resolve-host</code> is required. For more details about network communication permissions, please see: <a href="http://developer.chrome.com/apps/app_network.html">http://developer.chrome.com/apps/app_network.html</a> </p>
41</div><hr /><h2>Constructor &amp; Destructor Documentation</h2>
42<a class="anchor" id="a98885c5eb6ba873ee54cbb657f9e43f5"></a><!-- doxytag: member="pp::HostResolver::HostResolver" ref="a98885c5eb6ba873ee54cbb657f9e43f5" args="()" -->
43<div class="memitem">
44<div class="memproto">
45<table class="memname">
46<tr>
47<td class="memname"><a class="el" href="classpp_1_1_host_resolver.html#a98885c5eb6ba873ee54cbb657f9e43f5">pp::HostResolver::HostResolver</a> </td>
48<td>(</td>
49<td class="paramname"></td><td>)</td>
50<td></td>
51</tr>
52</table>
53</div>
54<div class="memdoc">
55<p>Default constructor for creating an <a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9" title="This functions determines if this resource is invalid or uninitialized.">is_null()</a> <code><a class="el" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution.">HostResolver</a></code> object. </p>
56</div>
57</div>
58<a class="anchor" id="aea32a40269f4ad3dc9d9cbadc89bea4f"></a><!-- doxytag: member="pp::HostResolver::HostResolver" ref="aea32a40269f4ad3dc9d9cbadc89bea4f" args="(const InstanceHandle &amp;instance)" -->
59<div class="memitem">
60<div class="memproto">
61<table class="memname">
62<tr>
63<td class="memname"><a class="el" href="classpp_1_1_host_resolver.html#a98885c5eb6ba873ee54cbb657f9e43f5">pp::HostResolver::HostResolver</a> </td>
64<td>(</td>
65<td class="paramtype">const <a class="el" href="classpp_1_1_instance_handle.html">InstanceHandle</a> &amp;&#160;</td>
66<td class="paramname"><em>instance</em></td><td>)</td>
67<td><code> [explicit]</code></td>
68</tr>
69</table>
70</div>
71<div class="memdoc">
72<p>A constructor used to create a <code><a class="el" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution.">HostResolver</a></code> object. </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">instance</td><td>The instance with which this resource will be associated. </td></tr>
76</table>
77</dd>
78</dl>
79</div>
80</div>
81<a class="anchor" id="adc4f2b44c8281920fbce2c4b93eddce2"></a><!-- doxytag: member="pp::HostResolver::HostResolver" ref="adc4f2b44c8281920fbce2c4b93eddce2" args="(PassRef, PP_Resource resource)" -->
82<div class="memitem">
83<div class="memproto">
84<table class="memname">
85<tr>
86<td class="memname"><a class="el" href="classpp_1_1_host_resolver.html#a98885c5eb6ba873ee54cbb657f9e43f5">pp::HostResolver::HostResolver</a> </td>
87<td>(</td>
88<td class="paramtype"><a class="el" href="namespacepp.html#a339083c1beec620267bf8b3c55decaa5">PassRef</a>&#160;</td>
89<td class="paramname">, </td>
90</tr>
91<tr>
92<td class="paramkey"></td>
93<td></td>
94<td class="paramtype">PP_Resource&#160;</td>
95<td class="paramname"><em>resource</em>&#160;</td>
96</tr>
97<tr>
98<td></td>
99<td>)</td>
100<td></td><td></td>
101</tr>
102</table>
103</div>
104<div class="memdoc">
105<p>A constructor used when you have received a <code>PP_Resource</code> as a return value that has had 1 ref added for you. </p>
106<dl class="params"><dt><b>Parameters:</b></dt><dd>
107<table class="params">
108<tr><td class="paramdir">[in]</td><td class="paramname">resource</td><td>A <code>PPB_HostResolver</code> resource. </td></tr>
109</table>
110</dd>
111</dl>
112</div>
113</div>
114<a class="anchor" id="a74ea3a85ad41ded8128b188c821cdb28"></a><!-- doxytag: member="pp::HostResolver::HostResolver" ref="a74ea3a85ad41ded8128b188c821cdb28" args="(const HostResolver &amp;other)" -->
115<div class="memitem">
116<div class="memproto">
117<table class="memname">
118<tr>
119<td class="memname"><a class="el" href="classpp_1_1_host_resolver.html#a98885c5eb6ba873ee54cbb657f9e43f5">pp::HostResolver::HostResolver</a> </td>
120<td>(</td>
121<td class="paramtype">const <a class="el" href="classpp_1_1_host_resolver.html">HostResolver</a> &amp;&#160;</td>
122<td class="paramname"><em>other</em></td><td>)</td>
123<td></td>
124</tr>
125</table>
126</div>
127<div class="memdoc">
128<p>The copy constructor for <code><a class="el" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution.">HostResolver</a></code>. </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">other</td><td>A reference to another <code><a class="el" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution.">HostResolver</a></code>. </td></tr>
132</table>
133</dd>
134</dl>
135</div>
136</div>
137<a class="anchor" id="ad4d39f4e863917bc881fc98c236c9f84"></a><!-- doxytag: member="pp::HostResolver::~HostResolver" ref="ad4d39f4e863917bc881fc98c236c9f84" args="()" -->
138<div class="memitem">
139<div class="memproto">
140<table class="memname">
141<tr>
142<td class="memname">virtual <a class="el" href="classpp_1_1_host_resolver.html#ad4d39f4e863917bc881fc98c236c9f84">pp::HostResolver::~HostResolver</a> </td>
143<td>(</td>
144<td class="paramname"></td><td>)</td>
145<td><code> [virtual]</code></td>
146</tr>
147</table>
148</div>
149<div class="memdoc">
150<p>The destructor. </p>
151</div>
152</div>
153<hr /><h2>Member Function Documentation</h2>
154<a class="anchor" id="aaa2e0834d48b8356f8f3185bc615611d"></a><!-- doxytag: member="pp::HostResolver::GetCanonicalName" ref="aaa2e0834d48b8356f8f3185bc615611d" args="() const " -->
155<div class="memitem">
156<div class="memproto">
157<table class="memname">
158<tr>
159<td class="memname"><a class="el" href="classpp_1_1_var.html">Var</a> <a class="el" href="classpp_1_1_host_resolver.html#aaa2e0834d48b8356f8f3185bc615611d">pp::HostResolver::GetCanonicalName</a> </td>
160<td>(</td>
161<td class="paramname"></td><td>)</td>
162<td> const</td>
163</tr>
164</table>
165</div>
166<div class="memdoc">
167<p>Gets the canonical name of the host. </p>
168<dl class="return"><dt><b>Returns:</b></dt><dd>A string <code><a class="el" href="classpp_1_1_var.html" title="A generic type used for passing data types between the module and the page.">Var</a></code> on success, which is an empty string if <code>PP_HOSTRESOLVER_FLAG_CANONNAME</code> is not set in the hint flags when calling <code><a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98" title="Requests resolution of a host name.">Resolve()</a></code>; an undefined <code><a class="el" href="classpp_1_1_var.html" title="A generic type used for passing data types between the module and the page.">Var</a></code> if there is a pending <code><a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98" title="Requests resolution of a host name.">Resolve()</a></code> call or the previous <code><a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98" title="Requests resolution of a host name.">Resolve()</a></code> call failed. </dd></dl>
169</div>
170</div>
171<a class="anchor" id="a3680cf97d53a80a536c5dc6441a4c6e7"></a><!-- doxytag: member="pp::HostResolver::GetNetAddress" ref="a3680cf97d53a80a536c5dc6441a4c6e7" args="(uint32_t index) const " -->
172<div class="memitem">
173<div class="memproto">
174<table class="memname">
175<tr>
176<td class="memname"><a class="el" href="classpp_1_1_net_address.html">NetAddress</a> <a class="el" href="classpp_1_1_host_resolver.html#a3680cf97d53a80a536c5dc6441a4c6e7">pp::HostResolver::GetNetAddress</a> </td>
177<td>(</td>
178<td class="paramtype">uint32_t&#160;</td>
179<td class="paramname"><em>index</em></td><td>)</td>
180<td> const</td>
181</tr>
182</table>
183</div>
184<div class="memdoc">
185<p>Gets a network address. </p>
186<dl class="params"><dt><b>Parameters:</b></dt><dd>
187<table class="params">
188<tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>An index indicating which address to return.</td></tr>
189</table>
190</dd>
191</dl>
192<dl class="return"><dt><b>Returns:</b></dt><dd>A <code><a class="el" href="classpp_1_1_net_address.html" title="The NetAddress class represents a network address.">NetAddress</a></code> object. The object will be null (i.e., <a class="el" href="classpp_1_1_resource.html#a859068e34cdc2dc0b78754c255323aa9" title="This functions determines if this resource is invalid or uninitialized.">is_null()</a> returns true) if there is a pending <code><a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98" title="Requests resolution of a host name.">Resolve()</a></code> call or the previous <code><a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98" title="Requests resolution of a host name.">Resolve()</a></code> call failed, or the specified index is out of range. </dd></dl>
193</div>
194</div>
195<a class="anchor" id="ace959e4cb6fd0a51669f6eff64e08ae3"></a><!-- doxytag: member="pp::HostResolver::GetNetAddressCount" ref="ace959e4cb6fd0a51669f6eff64e08ae3" args="() const " -->
196<div class="memitem">
197<div class="memproto">
198<table class="memname">
199<tr>
200<td class="memname">uint32_t <a class="el" href="classpp_1_1_host_resolver.html#ace959e4cb6fd0a51669f6eff64e08ae3">pp::HostResolver::GetNetAddressCount</a> </td>
201<td>(</td>
202<td class="paramname"></td><td>)</td>
203<td> const</td>
204</tr>
205</table>
206</div>
207<div class="memdoc">
208<p>Gets the number of network addresses. </p>
209<dl class="return"><dt><b>Returns:</b></dt><dd>The number of available network addresses on success; 0 if there is a pending <code><a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98" title="Requests resolution of a host name.">Resolve()</a></code> call or the previous <code><a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98" title="Requests resolution of a host name.">Resolve()</a></code> call failed. </dd></dl>
210</div>
211</div>
212<a class="anchor" id="ad56c139fa37d665cbb7e33f4d592b421"></a><!-- doxytag: member="pp::HostResolver::IsAvailable" ref="ad56c139fa37d665cbb7e33f4d592b421" args="()" -->
213<div class="memitem">
214<div class="memproto">
215<table class="memname">
216<tr>
217<td class="memname">static bool <a class="el" href="classpp_1_1_host_resolver.html#ad56c139fa37d665cbb7e33f4d592b421">pp::HostResolver::IsAvailable</a> </td>
218<td>(</td>
219<td class="paramname"></td><td>)</td>
220<td><code> [static]</code></td>
221</tr>
222</table>
223</div>
224<div class="memdoc">
225<p>Static function for determining whether the browser supports the <code>PPB_HostResolver</code> interface. </p>
226<dl class="return"><dt><b>Returns:</b></dt><dd>true if the interface is available, false otherwise. </dd></dl>
227</div>
228</div>
229<a class="anchor" id="ab773cb42d3130d6973a8743bc7aba7bd"></a><!-- doxytag: member="pp::HostResolver::operator=" ref="ab773cb42d3130d6973a8743bc7aba7bd" args="(const HostResolver &amp;other)" -->
230<div class="memitem">
231<div class="memproto">
232<table class="memname">
233<tr>
234<td class="memname"><a class="el" href="classpp_1_1_host_resolver.html">HostResolver</a>&amp; pp::HostResolver::operator= </td>
235<td>(</td>
236<td class="paramtype">const <a class="el" href="classpp_1_1_host_resolver.html">HostResolver</a> &amp;&#160;</td>
237<td class="paramname"><em>other</em></td><td>)</td>
238<td></td>
239</tr>
240</table>
241</div>
242<div class="memdoc">
243<p>The assignment operator for <code><a class="el" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution.">HostResolver</a></code>. </p>
244<dl class="params"><dt><b>Parameters:</b></dt><dd>
245<table class="params">
246<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>A reference to another <code><a class="el" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution.">HostResolver</a></code>.</td></tr>
247</table>
248</dd>
249</dl>
250<dl class="return"><dt><b>Returns:</b></dt><dd>A reference to this <code><a class="el" href="classpp_1_1_host_resolver.html" title="The HostResolver class supports host name resolution.">HostResolver</a></code> object. </dd></dl>
251</div>
252</div>
253<a class="anchor" id="a894d4ae712b4b30e639f6d838c2f9d98"></a><!-- doxytag: member="pp::HostResolver::Resolve" ref="a894d4ae712b4b30e639f6d838c2f9d98" args="(const char *host, uint16_t port, const PP_HostResolver_Hint &amp;hint, const CompletionCallback &amp;callback)" -->
254<div class="memitem">
255<div class="memproto">
256<table class="memname">
257<tr>
258<td class="memname">int32_t <a class="el" href="classpp_1_1_host_resolver.html#a894d4ae712b4b30e639f6d838c2f9d98">pp::HostResolver::Resolve</a> </td>
259<td>(</td>
260<td class="paramtype">const char *&#160;</td>
261<td class="paramname"><em>host</em>, </td>
262</tr>
263<tr>
264<td class="paramkey"></td>
265<td></td>
266<td class="paramtype">uint16_t&#160;</td>
267<td class="paramname"><em>port</em>, </td>
268</tr>
269<tr>
270<td class="paramkey"></td>
271<td></td>
272<td class="paramtype">const PP_HostResolver_Hint &amp;&#160;</td>
273<td class="paramname"><em>hint</em>, </td>
274</tr>
275<tr>
276<td class="paramkey"></td>
277<td></td>
278<td class="paramtype">const <a class="el" href="classpp_1_1_completion_callback.html">CompletionCallback</a> &amp;&#160;</td>
279<td class="paramname"><em>callback</em>&#160;</td>
280</tr>
281<tr>
282<td></td>
283<td>)</td>
284<td></td><td></td>
285</tr>
286</table>
287</div>
288<div class="memdoc">
289<p>Requests resolution of a host name. </p>
290<p>If the call completes successully, the results can be retrieved by <code><a class="el" href="classpp_1_1_host_resolver.html#aaa2e0834d48b8356f8f3185bc615611d" title="Gets the canonical name of the host.">GetCanonicalName()</a></code>, <code><a class="el" href="classpp_1_1_host_resolver.html#ace959e4cb6fd0a51669f6eff64e08ae3" title="Gets the number of network addresses.">GetNetAddressCount()</a></code> and <code><a class="el" href="classpp_1_1_host_resolver.html#a3680cf97d53a80a536c5dc6441a4c6e7" title="Gets a network address.">GetNetAddress()</a></code>.</p>
291<dl class="params"><dt><b>Parameters:</b></dt><dd>
292<table class="params">
293<tr><td class="paramdir">[in]</td><td class="paramname">host</td><td>The host name (or IP address literal) to resolve. </td></tr>
294<tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>The port number to be set in the resulting network addresses. </td></tr>
295<tr><td class="paramdir">[in]</td><td class="paramname">hint</td><td>A <code>PP_HostResolver_Hint</code> structure providing hints for host resolution. </td></tr>
296<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>A <code><a class="el" href="classpp_1_1_completion_callback.html" title="This API enables you to implement and receive callbacks when Pepper operations complete asynchronousl...">CompletionCallback</a></code> to be called upon completion.</td></tr>
297</table>
298</dd>
299</dl>
300<dl class="return"><dt><b>Returns:</b></dt><dd>An int32_t containing an error code from <code>pp_errors.h</code>. <code>PP_ERROR_NOACCESS</code> will be returned if the caller doesn't have required permissions. <code>PP_ERROR_NAME_NOT_RESOLVED</code> will be returned if the host name couldn't be resolved. </dd></dl>
301</div>
302</div>
303<hr />The documentation for this class was generated from the following file:<ul>
304<li><a class="el" href="host__resolver_8h.html">host_resolver.h</a></li>
305</ul>
306</div><!-- contents -->
307</div>
308{{/partials.standard_nacl_article}}
309