Pepper_31_C_interfaces
ppb_ext_socket_dev.h
Go to the documentation of this file.
1 /* Copyright (c) 2013 The Chromium Authors. All rights reserved.
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  */
5 
6 /* From extensions/dev/ppb_ext_socket_dev.idl,
7  * modified Tue May 21 16:00:11 2013.
8  */
9 
10 #ifndef PPAPI_C_EXTENSIONS_DEV_PPB_EXT_SOCKET_DEV_H_
11 #define PPAPI_C_EXTENSIONS_DEV_PPB_EXT_SOCKET_DEV_H_
12 
13 #include "ppapi/c/pp_bool.h"
14 #include "ppapi/c/pp_completion_callback.h"
15 #include "ppapi/c/pp_instance.h"
16 #include "ppapi/c/pp_macros.h"
17 #include "ppapi/c/pp_stdint.h"
18 #include "ppapi/c/pp_var.h"
19 
20 #define PPB_EXT_SOCKET_DEV_INTERFACE_0_1 "PPB_Ext_Socket(Dev);0.1"
21 #define PPB_EXT_SOCKET_DEV_INTERFACE_0_2 "PPB_Ext_Socket(Dev);0.2"
22 #define PPB_EXT_SOCKET_DEV_INTERFACE PPB_EXT_SOCKET_DEV_INTERFACE_0_2
23 
24 /**
25  * @file
26  * This file defines the Pepper equivalent of the <code>chrome.socket</code>
27  * extension API.
28  */
29 
30 
31 /**
32  * @addtogroup Typedefs
33  * @{
34  */
35 /**
36  * A string <code>PP_Var</code> which has one of the following values:
37  * - "tcp"
38  * - "udp"
39  */
41 
42 /**
43  * A dictionary <code>PP_Var</code>.
44  */
46 
47 /**
48  * A dictionary <code>PP_Var</code> which contains
49  * - "socketId" : integer <code>PP_Var</code>
50  * The id of the newly created socket.
51  */
53 
54 /**
55  * A dictionary <code>PP_Var</code> which contains
56  * - "resultCode" : integer <code>PP_Var</code>
57  * - "socketId" : integer or undefined <code>PP_Var</code>
58  * The id of the accepted socket.
59  */
61 
62 /**
63  * A dictionary <code>PP_Var</code> which contains
64  * - "resultCode" : integer <code>PP_Var</code>
65  * The resultCode returned from the underlying read() call.
66  * - "data" : array buffer <code>PP_Var</code>
67  */
69 
70 /**
71  * A dictionary <code>PP_Var</code> which contains
72  * - "bytesWritten" : integer <code>PP_Var</code>
73  * The number of bytes sent, or a negative error code.
74  */
76 
77 /**
78  * A dictionary <code>PP_Var</code> which contains
79  * - "resultCode" : integer <code>PP_Var</code>
80  * The resultCode returned from the underlying recvfrom() call.
81  * - "data": array buffer <code>PP_Var</code>
82  * - "address": string <code>PP_Var</code>
83  * The address of the remote machine.
84  * - "port": integer <code>PP_Var</code>
85  */
87 
88 /**
89  * A dictionary <code>PP_Var</code> which contains
90  * - "socketType" : string <code>PP_Var</code> which matches the description of
91  * <code>PP_Ext_Socket_SocketType_Dev</code>
92  * The type of the passed socket. This will be <code>tcp</code> or
93  * <code>udp</code>.
94  * - "connected" : boolean <code>PP_Var</code>
95  * Whether or not the underlying socket is connected.
96  *
97  * For <code>tcp</code> sockets, this will remain true even if the remote peer
98  * has disconnected. Reading or writing to the socket may then result in an
99  * error, hinting that this socket should be disconnected via
100  * <code>Disconnect()</code>.
101  *
102  * For <code>udp</code> sockets, this just represents whether a default remote
103  * address has been specified for reading and writing packets.
104  * - "peerAddress" : string or undefined <code>PP_Var</code>
105  * If the underlying socket is connected, contains the IPv4/6 address of the
106  * peer.
107  * - "peerPort" : integer or undefined <code>PP_Var</code>
108  * If the underlying socket is connected, contains the port of the connected
109  * peer.
110  * - "localAddress" : string or undefined <code>PP_Var</code>
111  * If the underlying socket is bound or connected, contains its local IPv4/6
112  * address.
113  * - "localPort" : integer or undefined <code>PP_Var</code>
114  * If the underlying socket is bound or connected, contains its local port.
115  */
117 
118 /**
119  * A dictionary <code>PP_Var</code> which contains
120  * - "name" : string <code>PP_Var</code>
121  * The underlying name of the adapter. On *nix, this will typically be "eth0",
122  * "lo", etc.
123  * - "address": string <code>PP_Var</code>
124  * The available IPv4/6 address.
125  */
127 
128 /**
129  * An array <code>PP_Var</code> which contains elements of
130  * <code>PP_Ext_Socket_NetworkInterface_Dev</code>.
131  */
133 /**
134  * @}
135  */
136 
137 /**
138  * @addtogroup Interfaces
139  * @{
140  */
142  /**
143  * Creates a socket of the specified type that will connect to the specified
144  * remote machine.
145  *
146  * @param[in] instance A <code>PP_Instance</code>.
147  * @param[in] type A <code>PP_Ext_Socket_SocketType_Dev</code>. The type of
148  * socket to create. Must be <code>tcp</code> or <code>udp</code>.
149  * @param[in] options An undefined <code>PP_Var</code> or
150  * <code>PP_Ext_Socket_CreateOptions_Dev</code>. The socket options.
151  * @param[out] create_info A <code>PP_Ext_Socket_CreateInfo_Dev</code>.
152  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
153  * upon completion.
154  *
155  * @return An error code from <code>pp_errors.h</code>.
156  */
157  int32_t (*Create)(PP_Instance instance,
160  PP_Ext_Socket_CreateInfo_Dev* create_info,
161  struct PP_CompletionCallback callback);
162  /**
163  * Destroys the socket. Each socket created should be destroyed after use.
164  *
165  * @param[in] instance A <code>PP_Instance</code>.
166  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
167  */
168  void (*Destroy)(PP_Instance instance, struct PP_Var socket_id);
169  /**
170  * Connects the socket to the remote machine (for a <code>tcp</code> socket).
171  * For a <code>udp</code> socket, this sets the default address which packets
172  * are sent to and read from for <code>Read()</code> and <code>Write()</code>
173  * calls.
174  *
175  * @param[in] instance A <code>PP_Instance</code>.
176  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
177  * @param[in] hostname A string <code>PP_Var</code>. The hostname or IP
178  * address of the remote machine.
179  * @param[in] port An integer <code>PP_Var</code>. The port of the remote
180  * machine.
181  * @param[out] result An integer <code>PP_Var</code>.
182  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
183  * upon completion.
184  *
185  * @return An error code from <code>pp_errors.h</code>.
186  */
187  int32_t (*Connect)(PP_Instance instance,
188  struct PP_Var socket_id,
189  struct PP_Var hostname,
190  struct PP_Var port,
191  struct PP_Var* result,
192  struct PP_CompletionCallback callback);
193  /**
194  * Binds the local address for socket. Currently, it does not support TCP
195  * socket.
196  *
197  * @param[in] instance A <code>PP_Instance</code>.
198  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
199  * @param[in] address A string <code>PP_Var</code>. The address of the local
200  * machine.
201  * @param[in] port An integer <code>PP_Var</code>. The port of the local
202  * machine.
203  * @param[out] result An integer <code>PP_Var</code>.
204  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
205  * upon completion.
206  *
207  * @return An error code from <code>pp_errors.h</code>.
208  */
209  int32_t (*Bind)(PP_Instance instance,
210  struct PP_Var socket_id,
211  struct PP_Var address,
212  struct PP_Var port,
213  struct PP_Var* result,
214  struct PP_CompletionCallback callback);
215  /**
216  * Disconnects the socket. For UDP sockets, <code>Disconnect</code> is a
217  * non-operation but is safe to call.
218  *
219  * @param[in] instance A <code>PP_Instance</code>.
220  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
221  */
222  void (*Disconnect)(PP_Instance instance, struct PP_Var socket_id);
223  /**
224  * Reads data from the given connected socket.
225  *
226  * @param[in] instance A <code>PP_Instance</code>.
227  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
228  * @param[in] buffer_size An undefined or integer <code>PP_Var</code>. The
229  * read buffer size.
230  * @param[out] read_info A <code>PP_Ext_Socket_ReadInfo_Dev</code>.
231  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
232  * upon completion.
233  *
234  * @return An error code from <code>pp_errors.h</code>.
235  */
236  int32_t (*Read)(PP_Instance instance,
237  struct PP_Var socket_id,
238  struct PP_Var buffer_size,
239  PP_Ext_Socket_ReadInfo_Dev* read_info,
240  struct PP_CompletionCallback callback);
241  /**
242  * Writes data on the given connected socket.
243  *
244  * @param[in] instance A <code>PP_Instance</code>.
245  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
246  * @param[in] data An array buffer <code>PP_Var</code>. The data to write.
247  * @param[out] write_info A <code>PP_Ext_Socket_WriteInfo_Dev</code>.
248  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
249  * upon completion.
250  *
251  * @return An error code from <code>pp_errors.h</code>.
252  */
253  int32_t (*Write)(PP_Instance instance,
254  struct PP_Var socket_id,
255  struct PP_Var data,
256  PP_Ext_Socket_WriteInfo_Dev* write_info,
257  struct PP_CompletionCallback callback);
258  /**
259  * Receives data from the given UDP socket.
260  *
261  * @param[in] instance A <code>PP_Instance</code>.
262  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
263  * @param[in] buffer_size An undefined or integer <code>PP_Var</code>. The
264  * receive buffer size.
265  * @param[out] recv_from_info A <code>PP_Ext_Socket_RecvFromInfo_Dev</code>.
266  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
267  * upon completion.
268  *
269  * @return An error code from <code>pp_errors.h</code>.
270  */
271  int32_t (*RecvFrom)(PP_Instance instance,
272  struct PP_Var socket_id,
273  struct PP_Var buffer_size,
274  PP_Ext_Socket_RecvFromInfo_Dev* recv_from_info,
275  struct PP_CompletionCallback callback);
276  /**
277  * Sends data on the given UDP socket to the given address and port.
278  *
279  * @param[in] instance A <code>PP_Instance</code>.
280  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
281  * @param[in] data An array buffer <code>PP_Var</code>.
282  * @param[in] address A string <code>PP_Var</code>. The address of the remote
283  * machine.
284  * @param[in] port An integer <code>PP_Var</code>. The port of the remote
285  * machine.
286  * @param[out] write_info A <code>PP_Ext_Socket_WriteInfo_Dev</code>.
287  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
288  * upon completion.
289  *
290  * @return An error code from <code>pp_errors.h</code>.
291  */
292  int32_t (*SendTo)(PP_Instance instance,
293  struct PP_Var socket_id,
294  struct PP_Var data,
295  struct PP_Var address,
296  struct PP_Var port,
297  PP_Ext_Socket_WriteInfo_Dev* write_info,
298  struct PP_CompletionCallback callback);
299  /**
300  * This method applies to TCP sockets only.
301  * Listens for connections on the specified port and address. This effectively
302  * makes this a server socket, and client socket functions (Connect, Read,
303  * Write) can no longer be used on this socket.
304  *
305  * @param[in] instance A <code>PP_Instance</code>.
306  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
307  * @param[in] address A string <code>PP_Var</code>. The address of the local
308  * machine.
309  * @param[in] port An integer <code>PP_Var</code>. The port of the local
310  * machine.
311  * @param[in] backlog An undefined or integer <code>PP_Var</code>. Length of
312  * the socket's listen queue.
313  * @param[out] result An integer <code>PP_Var</code>.
314  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
315  * upon completion.
316  *
317  * @return An error code from <code>pp_errors.h</code>.
318  */
319  int32_t (*Listen)(PP_Instance instance,
320  struct PP_Var socket_id,
321  struct PP_Var address,
322  struct PP_Var port,
323  struct PP_Var backlog,
324  struct PP_Var* result,
325  struct PP_CompletionCallback callback);
326  /**
327  * This method applies to TCP sockets only.
328  * Registers a callback function to be called when a connection is accepted on
329  * this listening server socket. Listen must be called first.
330  * If there is already an active accept callback, this callback will be
331  * invoked immediately with an error as the resultCode.
332  *
333  * @param[in] instance A <code>PP_Instance</code>.
334  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
335  * @param[out] accept_info A <code>PP_Ext_Socket_AcceptInfo_Dev</code>.
336  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
337  * upon completion.
338  *
339  * @return An error code from <code>pp_errors.h</code>.
340  */
341  int32_t (*Accept)(PP_Instance instance,
342  struct PP_Var socket_id,
343  PP_Ext_Socket_AcceptInfo_Dev* accept_info,
344  struct PP_CompletionCallback callback);
345  /**
346  * Enables or disables the keep-alive functionality for a TCP connection.
347  *
348  * @param[in] instance A <code>PP_Instance</code>.
349  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
350  * @param[in] enable A boolean <code>PP_Var</code>. If true, enable keep-alive
351  * functionality.
352  * @param[in] delay An undefined or integer <code>PP_Var</code>. Set the delay
353  * seconds between the last data packet received and the first keepalive
354  * probe. Default is 0.
355  * @param[out] result A boolean <code>PP_Var</code>.
356  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
357  * upon completion.
358  *
359  * @return An error code from <code>pp_errors.h</code>.
360  */
361  int32_t (*SetKeepAlive)(PP_Instance instance,
362  struct PP_Var socket_id,
363  struct PP_Var enable,
364  struct PP_Var delay,
365  struct PP_Var* result,
366  struct PP_CompletionCallback callback);
367  /**
368  * Sets or clears <code>TCP_NODELAY</code> for a TCP connection. Nagle's
369  * algorithm will be disabled when <code>TCP_NODELAY</code> is set.
370  *
371  * @param[in] instance A <code>PP_Instance</code>.
372  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
373  * @param[in] no_delay A boolean <code>PP_Var</code>.
374  * @param[out] result A boolean <code>PP_Var</code>.
375  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
376  * upon completion.
377  *
378  * @return An error code from <code>pp_errors.h</code>.
379  */
380  int32_t (*SetNoDelay)(PP_Instance instance,
381  struct PP_Var socket_id,
382  struct PP_Var no_delay,
383  struct PP_Var* result,
384  struct PP_CompletionCallback callback);
385  /**
386  * Retrieves the state of the given socket.
387  *
388  * @param[in] instance A <code>PP_Instance</code>.
389  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
390  * @param[out] result A <code>PP_Ext_Socket_SocketInfo_Dev</code>.
391  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
392  * upon completion.
393  *
394  * @return An error code from <code>pp_errors.h</code>.
395  */
396  int32_t (*GetInfo)(PP_Instance instance,
397  struct PP_Var socket_id,
399  struct PP_CompletionCallback callback);
400  /**
401  * Retrieves information about local adapters on this system.
402  *
403  * @param[in] instance A <code>PP_Instance</code>.
404  * @param[out] result A <code>PP_Ext_Socket_NetworkInterface_Dev_Array</code>.
405  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
406  * upon completion.
407  *
408  * @return An error code from <code>pp_errors.h</code>.
409  */
410  int32_t (*GetNetworkList)(PP_Instance instance,
412  struct PP_CompletionCallback callback);
413  /**
414  * Joins the multicast group and starts to receive packets from that group.
415  * The socket must be of UDP type and must be bound to a local port before
416  * calling this method.
417  *
418  * @param[in] instance A <code>PP_Instance</code>.
419  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
420  * @param[in] address A string <code>PP_Var</code>. The group address to join.
421  * Domain names are not supported.
422  * @param[out] result An integer <code>PP_Var</code>.
423  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
424  * upon completion.
425  *
426  * @return An error code from <code>pp_errors.h</code>.
427  */
428  int32_t (*JoinGroup)(PP_Instance instance,
429  struct PP_Var socket_id,
430  struct PP_Var address,
431  struct PP_Var* result,
432  struct PP_CompletionCallback callback);
433  /**
434  * Leaves the multicast group previously joined using <code>JoinGroup</code>.
435  * It's not necessary to leave the multicast group before destroying the
436  * socket or exiting. This is automatically called by the OS.
437  *
438  * Leaving the group will prevent the router from sending multicast datagrams
439  * to the local host, presuming no other process on the host is still joined
440  * to the group.
441  *
442  * @param[in] instance A <code>PP_Instance</code>.
443  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
444  * @param[in] address A string <code>PP_Var</code>. The group address to
445  * leave. Domain names are not supported.
446  * @param[out] result An integer <code>PP_Var</code>.
447  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
448  * upon completion.
449  *
450  * @return An error code from <code>pp_errors.h</code>.
451  */
452  int32_t (*LeaveGroup)(PP_Instance instance,
453  struct PP_Var socket_id,
454  struct PP_Var address,
455  struct PP_Var* result,
456  struct PP_CompletionCallback callback);
457  /**
458  * Sets the time-to-live of multicast packets sent to the multicast group.
459  *
460  * Calling this method does not require multicast permissions.
461  *
462  * @param[in] instance A <code>PP_Instance</code>.
463  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
464  * @param[in] ttl An integer <code>PP_Var</code>. The time-to-live value.
465  * @param[out] result An integer <code>PP_Var</code>.
466  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
467  * upon completion.
468  *
469  * @return An error code from <code>pp_errors.h</code>.
470  */
471  int32_t (*SetMulticastTimeToLive)(PP_Instance instance,
472  struct PP_Var socket_id,
473  struct PP_Var ttl,
474  struct PP_Var* result,
475  struct PP_CompletionCallback callback);
476  /**
477  * Sets whether multicast packets sent from the host to the multicast group
478  * will be looped back to the host.
479  *
480  * Note: the behavior of <code>SetMulticastLoopbackMode</code> is slightly
481  * different between Windows and Unix-like systems. The inconsistency
482  * happens only when there is more than one application on the same host
483  * joined to the same multicast group while having different settings on
484  * multicast loopback mode. On Windows, the applications with loopback off
485  * will not RECEIVE the loopback packets; while on Unix-like systems, the
486  * applications with loopback off will not SEND the loopback packets to
487  * other applications on the same host. See MSDN: http://goo.gl/6vqbj
488  *
489  * Calling this method does not require multicast permissions.
490  *
491  * @param[in] instance A <code>PP_Instance</code>.
492  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
493  * @param[in] enabled A boolean <code>PP_Var</code>. Indicates whether to
494  * enable loopback mode.
495  * @param[out] result An integer <code>PP_Var</code>.
496  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
497  * upon completion.
498  *
499  * @return An error code from <code>pp_errors.h</code>.
500  */
502  struct PP_Var socket_id,
503  struct PP_Var enabled,
504  struct PP_Var* result,
505  struct PP_CompletionCallback callback);
506  /**
507  * Gets the multicast group addresses the socket is currently joined to.
508  *
509  * @param[in] instance A <code>PP_Instance</code>.
510  * @param[in] socket_id An integer <code>PP_Var</code>. The socket ID.
511  * @param[out] groups An array <code>PP_Var</code> of string
512  * <code>PP_Var</code>s.
513  * @param[in] callback A <code>PP_CompletionCallback</code> to be called
514  * upon completion.
515  *
516  * @return An error code from <code>pp_errors.h</code>.
517  */
518  int32_t (*GetJoinedGroups)(PP_Instance instance,
519  struct PP_Var socket_id,
520  struct PP_Var* groups,
521  struct PP_CompletionCallback callback);
522 };
523 
525 
527  int32_t (*Create)(PP_Instance instance,
530  PP_Ext_Socket_CreateInfo_Dev* create_info,
531  struct PP_CompletionCallback callback);
532  void (*Destroy)(PP_Instance instance, struct PP_Var socket_id);
533  int32_t (*Connect)(PP_Instance instance,
534  struct PP_Var socket_id,
535  struct PP_Var hostname,
536  struct PP_Var port,
537  struct PP_Var* result,
538  struct PP_CompletionCallback callback);
539  int32_t (*Bind)(PP_Instance instance,
540  struct PP_Var socket_id,
541  struct PP_Var address,
542  struct PP_Var port,
543  struct PP_Var* result,
544  struct PP_CompletionCallback callback);
545  void (*Disconnect)(PP_Instance instance, struct PP_Var socket_id);
546  int32_t (*Read)(PP_Instance instance,
547  struct PP_Var socket_id,
548  struct PP_Var buffer_size,
549  PP_Ext_Socket_ReadInfo_Dev* read_info,
550  struct PP_CompletionCallback callback);
551  int32_t (*Write)(PP_Instance instance,
552  struct PP_Var socket_id,
553  struct PP_Var data,
554  PP_Ext_Socket_WriteInfo_Dev* write_info,
555  struct PP_CompletionCallback callback);
556  int32_t (*RecvFrom)(PP_Instance instance,
557  struct PP_Var socket_id,
558  struct PP_Var buffer_size,
559  PP_Ext_Socket_RecvFromInfo_Dev* recv_from_info,
560  struct PP_CompletionCallback callback);
561  int32_t (*SendTo)(PP_Instance instance,
562  struct PP_Var socket_id,
563  struct PP_Var data,
564  struct PP_Var address,
565  struct PP_Var port,
566  PP_Ext_Socket_WriteInfo_Dev* write_info,
567  struct PP_CompletionCallback callback);
568  int32_t (*Listen)(PP_Instance instance,
569  struct PP_Var socket_id,
570  struct PP_Var address,
571  struct PP_Var port,
572  struct PP_Var backlog,
573  struct PP_Var* result,
574  struct PP_CompletionCallback callback);
575  int32_t (*Accept)(PP_Instance instance,
576  struct PP_Var socket_id,
577  PP_Ext_Socket_AcceptInfo_Dev* accept_info,
578  struct PP_CompletionCallback callback);
579  int32_t (*SetKeepAlive)(PP_Instance instance,
580  struct PP_Var socket_id,
581  struct PP_Var enable,
582  struct PP_Var delay,
583  struct PP_Var* result,
584  struct PP_CompletionCallback callback);
585  int32_t (*SetNoDelay)(PP_Instance instance,
586  struct PP_Var socket_id,
587  struct PP_Var no_delay,
588  struct PP_Var* result,
589  struct PP_CompletionCallback callback);
590  int32_t (*GetInfo)(PP_Instance instance,
591  struct PP_Var socket_id,
593  struct PP_CompletionCallback callback);
594  int32_t (*GetNetworkList)(PP_Instance instance,
596  struct PP_CompletionCallback callback);
597 };
598 /**
599  * @}
600  */
601 
602 #endif /* PPAPI_C_EXTENSIONS_DEV_PPB_EXT_SOCKET_DEV_H_ */
603 
int32_t(* Write)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var data, PP_Ext_Socket_WriteInfo_Dev *write_info, struct PP_CompletionCallback callback)
int32_t(* RecvFrom)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var buffer_size, PP_Ext_Socket_RecvFromInfo_Dev *recv_from_info, struct PP_CompletionCallback callback)
int32_t(* Write)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var data, PP_Ext_Socket_WriteInfo_Dev *write_info, struct PP_CompletionCallback callback)
int32_t(* Bind)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var port, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* LeaveGroup)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* GetNetworkList)(PP_Instance instance, PP_Ext_Socket_NetworkInterface_Dev_Array *result, struct PP_CompletionCallback callback)
int32_t(* Read)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var buffer_size, PP_Ext_Socket_ReadInfo_Dev *read_info, struct PP_CompletionCallback callback)
int32_t(* SetNoDelay)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var no_delay, struct PP_Var *result, struct PP_CompletionCallback callback)
void(* Destroy)(PP_Instance instance, struct PP_Var socket_id)
int32_t(* GetNetworkList)(PP_Instance instance, PP_Ext_Socket_NetworkInterface_Dev_Array *result, struct PP_CompletionCallback callback)
int32_t(* SetKeepAlive)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var enable, struct PP_Var delay, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* Create)(PP_Instance instance, PP_Ext_Socket_SocketType_Dev type, PP_Ext_Socket_CreateOptions_Dev options, PP_Ext_Socket_CreateInfo_Dev *create_info, struct PP_CompletionCallback callback)
int32_t(* Connect)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var hostname, struct PP_Var port, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* Bind)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var port, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* GetInfo)(PP_Instance instance, struct PP_Var socket_id, PP_Ext_Socket_SocketInfo_Dev *result, struct PP_CompletionCallback callback)
int32_t(* Read)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var buffer_size, PP_Ext_Socket_ReadInfo_Dev *read_info, struct PP_CompletionCallback callback)
int32_t(* SendTo)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var data, struct PP_Var address, struct PP_Var port, PP_Ext_Socket_WriteInfo_Dev *write_info, struct PP_CompletionCallback callback)
int32_t(* Connect)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var hostname, struct PP_Var port, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* Listen)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var port, struct PP_Var backlog, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* SetMulticastTimeToLive)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var ttl, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* SendTo)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var data, struct PP_Var address, struct PP_Var port, PP_Ext_Socket_WriteInfo_Dev *write_info, struct PP_CompletionCallback callback)
int32_t(* GetJoinedGroups)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var *groups, struct PP_CompletionCallback callback)
int32_t(* Accept)(PP_Instance instance, struct PP_Var socket_id, PP_Ext_Socket_AcceptInfo_Dev *accept_info, struct PP_CompletionCallback callback)
void(* Destroy)(PP_Instance instance, struct PP_Var socket_id)
Definition: pp_var.h:155
int32_t(* RecvFrom)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var buffer_size, PP_Ext_Socket_RecvFromInfo_Dev *recv_from_info, struct PP_CompletionCallback callback)
int32_t PP_Instance
Definition: pp_instance.h:34
int32_t(* JoinGroup)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* Listen)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var address, struct PP_Var port, struct PP_Var backlog, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* SetMulticastLoopbackMode)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var enabled, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* Accept)(PP_Instance instance, struct PP_Var socket_id, PP_Ext_Socket_AcceptInfo_Dev *accept_info, struct PP_CompletionCallback callback)
void(* Disconnect)(PP_Instance instance, struct PP_Var socket_id)
int32_t(* SetNoDelay)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var no_delay, struct PP_Var *result, struct PP_CompletionCallback callback)
int32_t(* SetKeepAlive)(PP_Instance instance, struct PP_Var socket_id, struct PP_Var enable, struct PP_Var delay, struct PP_Var *result, struct PP_CompletionCallback callback)
void(* Disconnect)(PP_Instance instance, struct PP_Var socket_id)
int32_t(* GetInfo)(PP_Instance instance, struct PP_Var socket_id, PP_Ext_Socket_SocketInfo_Dev *result, struct PP_CompletionCallback callback)
int32_t(* Create)(PP_Instance instance, PP_Ext_Socket_SocketType_Dev type, PP_Ext_Socket_CreateOptions_Dev options, PP_Ext_Socket_CreateInfo_Dev *create_info, struct PP_CompletionCallback callback)