| Index: libraries/nacl-mounts/ppapi/c/private/ppb_tcp_socket_private.h
|
| ===================================================================
|
| --- libraries/nacl-mounts/ppapi/c/private/ppb_tcp_socket_private.h (revision 0)
|
| +++ libraries/nacl-mounts/ppapi/c/private/ppb_tcp_socket_private.h (revision 0)
|
| @@ -0,0 +1,131 @@
|
| +/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +/* From private/ppb_tcp_socket_private.idl modified Wed Nov 16 15:27:20 2011. */
|
| +
|
| +#ifndef PPAPI_C_PRIVATE_PPB_TCP_SOCKET_PRIVATE_H_
|
| +#define PPAPI_C_PRIVATE_PPB_TCP_SOCKET_PRIVATE_H_
|
| +
|
| +#include "ppapi/c/private/ppb_net_address_private.h"
|
| +#include "ppapi/c/pp_bool.h"
|
| +#include "ppapi/c/pp_completion_callback.h"
|
| +#include "ppapi/c/pp_instance.h"
|
| +#include "ppapi/c/pp_macros.h"
|
| +#include "ppapi/c/pp_resource.h"
|
| +#include "ppapi/c/pp_stdint.h"
|
| +
|
| +#define PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3 "PPB_TCPSocket_Private;0.3"
|
| +#define PPB_TCPSOCKET_PRIVATE_INTERFACE PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3
|
| +
|
| +/**
|
| + * @file
|
| + * This file defines the <code>PPB_TCPSocket_Private</code> interface.
|
| + */
|
| +
|
| +
|
| +/**
|
| + * @addtogroup Interfaces
|
| + * @{
|
| + */
|
| +/**
|
| + * The <code>PPB_TCPSocket_Private</code> interface provides TCP socket
|
| + * operations.
|
| + */
|
| +struct PPB_TCPSocket_Private_0_3 {
|
| + /**
|
| + * Allocates a TCP socket resource.
|
| + */
|
| + PP_Resource (*Create)(PP_Instance instance);
|
| + /**
|
| + * Determines if a given resource is TCP socket.
|
| + */
|
| + PP_Bool (*IsTCPSocket)(PP_Resource resource);
|
| + /**
|
| + * Connects to a TCP port given as a host-port pair.
|
| + * When a proxy server is used, |host| and |port| refer to the proxy server
|
| + * instead of the destination server.
|
| + */
|
| + int32_t (*Connect)(PP_Resource tcp_socket,
|
| + const char* host,
|
| + uint16_t port,
|
| + struct PP_CompletionCallback callback);
|
| + /**
|
| + * Same as Connect(), but connecting to the address given by |addr|. A typical
|
| + * use-case would be for reconnections.
|
| + */
|
| + int32_t (*ConnectWithNetAddress)(PP_Resource tcp_socket,
|
| + const struct PP_NetAddress_Private* addr,
|
| + struct PP_CompletionCallback callback);
|
| + /**
|
| + * Gets the local address of the socket, if it has been connected.
|
| + * Returns PP_TRUE on success.
|
| + */
|
| + PP_Bool (*GetLocalAddress)(PP_Resource tcp_socket,
|
| + struct PP_NetAddress_Private* local_addr);
|
| + /**
|
| + * Gets the remote address of the socket, if it has been connected.
|
| + * Returns PP_TRUE on success.
|
| + */
|
| + PP_Bool (*GetRemoteAddress)(PP_Resource tcp_socket,
|
| + struct PP_NetAddress_Private* remote_addr);
|
| + /**
|
| + * Does SSL handshake and moves to sending and receiving encrypted data. The
|
| + * socket must have been successfully connected. |server_name| will be
|
| + * compared with the name(s) in the server's certificate during the SSL
|
| + * handshake. |server_port| is only used to identify an SSL server in the SSL
|
| + * session cache.
|
| + * When a proxy server is used, |server_name| and |server_port| refer to the
|
| + * destination server.
|
| + * If the socket is not connected, or there are pending read/write requests,
|
| + * SSLHandshake() will fail without starting a handshake. Otherwise, any
|
| + * failure during the handshake process will cause the socket to be
|
| + * disconnected.
|
| + */
|
| + int32_t (*SSLHandshake)(PP_Resource tcp_socket,
|
| + const char* server_name,
|
| + uint16_t server_port,
|
| + struct PP_CompletionCallback callback);
|
| + /**
|
| + * Reads data from the socket. The size of |buffer| must be at least as large
|
| + * as |bytes_to_read|. May perform a partial read. Returns the number of bytes
|
| + * read or an error code. If the return value is 0, then it indicates that
|
| + * end-of-file was reached.
|
| + * This method won't return more than 1 megabyte, so if |bytes_to_read|
|
| + * exceeds 1 megabyte, it will always perform a partial read.
|
| + * Multiple outstanding read requests are not supported.
|
| + */
|
| + int32_t (*Read)(PP_Resource tcp_socket,
|
| + char* buffer,
|
| + int32_t bytes_to_read,
|
| + struct PP_CompletionCallback callback);
|
| + /**
|
| + * Writes data to the socket. May perform a partial write. Returns the number
|
| + * of bytes written or an error code.
|
| + * This method won't write more than 1 megabyte, so if |bytes_to_write|
|
| + * exceeds 1 megabyte, it will always perform a partial write.
|
| + * Multiple outstanding write requests are not supported.
|
| + */
|
| + int32_t (*Write)(PP_Resource tcp_socket,
|
| + const char* buffer,
|
| + int32_t bytes_to_write,
|
| + struct PP_CompletionCallback callback);
|
| + /**
|
| + * Cancels any IO that may be pending, and disconnects the socket. Any pending
|
| + * callbacks will still run, reporting PP_Error_Aborted if pending IO was
|
| + * interrupted. It is NOT valid to call Connect() again after a call to this
|
| + * method. Note: If the socket is destroyed when it is still connected, then
|
| + * it will be implicitly disconnected, so you are not required to call this
|
| + * method.
|
| + */
|
| + void (*Disconnect)(PP_Resource tcp_socket);
|
| +};
|
| +
|
| +typedef struct PPB_TCPSocket_Private_0_3 PPB_TCPSocket_Private;
|
| +/**
|
| + * @}
|
| + */
|
| +
|
| +#endif /* PPAPI_C_PRIVATE_PPB_TCP_SOCKET_PRIVATE_H_ */
|
| +
|
|
|