| // 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_ |