| // 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. |
| |
| #ifndef PPAPI_CPP_PRIVATE_TCP_SOCKET_PRIVATE_H_ |
| #define PPAPI_CPP_PRIVATE_TCP_SOCKET_PRIVATE_H_ |
| |
| #include "ppapi/c/pp_stdint.h" |
| #include "ppapi/c/private/ppb_tcp_socket_private.h" |
| #include "ppapi/cpp/pass_ref.h" |
| #include "ppapi/cpp/private/x509_certificate_private.h" |
| #include "ppapi/cpp/resource.h" |
| |
| namespace pp { |
| |
| class CompletionCallback; |
| class InstanceHandle; |
| |
| class TCPSocketPrivate : public Resource { |
| public: |
| explicit TCPSocketPrivate(const InstanceHandle& instance); |
| |
| TCPSocketPrivate(PassRef, PP_Resource resource); |
| |
| // Returns true if the required interface is available. |
| static bool IsAvailable(); |
| |
| int32_t Connect(const char* host, |
| uint16_t port, |
| const CompletionCallback& callback); |
| int32_t ConnectWithNetAddress(const PP_NetAddress_Private* addr, |
| const CompletionCallback& callback); |
| bool GetLocalAddress(PP_NetAddress_Private* local_addr); |
| bool GetRemoteAddress(PP_NetAddress_Private* remote_addr); |
| int32_t SSLHandshake(const char* server_name, |
| uint16_t server_port, |
| const CompletionCallback& callback); |
| X509CertificatePrivate GetServerCertificate(); |
| bool AddChainBuildingCertificate(const X509CertificatePrivate& cert, |
| bool trusted); |
| |
| int32_t Read(char* buffer, |
| int32_t bytes_to_read, |
| const CompletionCallback& callback); |
| int32_t Write(const char* buffer, |
| int32_t bytes_to_write, |
| const CompletionCallback& callback); |
| void Disconnect(); |
| int32_t SetOption(PP_TCPSocketOption_Private name, |
| const Var& value, |
| const CompletionCallback& callback); |
| }; |
| |
| } // namespace pp |
| |
| #endif // PPAPI_CPP_PRIVATE_TCP_SOCKET_PRIVATE_H_ |