7 #include "ppapi/c/pp_bool.h"
8 #include "ppapi/c/pp_errors.h"
18 template <>
const char* interface_name<PPB_TCPSocket_Private_0_5>() {
19 return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5;
22 template <>
const char* interface_name<PPB_TCPSocket_Private_0_4>() {
23 return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4;
26 template <>
const char* interface_name<PPB_TCPSocket_Private_0_3>() {
27 return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_3;
33 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
36 }
else if (has_interface<PPB_TCPSocket_Private_0_4>()) {
39 }
else if (has_interface<PPB_TCPSocket_Private_0_3>()) {
51 return has_interface<PPB_TCPSocket_Private_0_5>() ||
52 has_interface<PPB_TCPSocket_Private_0_4>() ||
53 has_interface<PPB_TCPSocket_Private_0_3>();
59 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
60 return get_interface<PPB_TCPSocket_Private_0_5>()->
Connect(
63 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
64 return get_interface<PPB_TCPSocket_Private_0_4>()->
Connect(
67 if (has_interface<PPB_TCPSocket_Private_0_3>()) {
68 return get_interface<PPB_TCPSocket_Private_0_3>()->
Connect(
71 return callback.
MayForce(PP_ERROR_NOINTERFACE);
75 const PP_NetAddress_Private* addr,
77 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
81 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
85 if (has_interface<PPB_TCPSocket_Private_0_3>()) {
89 return callback.
MayForce(PP_ERROR_NOINTERFACE);
93 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
94 PP_Bool result = get_interface<PPB_TCPSocket_Private_0_5>()->
96 return PP_ToBool(result);
98 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
99 PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()->
101 return PP_ToBool(result);
103 if (has_interface<PPB_TCPSocket_Private_0_3>()) {
104 PP_Bool result = get_interface<PPB_TCPSocket_Private_0_3>()->
106 return PP_ToBool(result);
112 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
113 PP_Bool result = get_interface<PPB_TCPSocket_Private_0_5>()->
115 return PP_ToBool(result);
117 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
118 PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()->
120 return PP_ToBool(result);
122 if (has_interface<PPB_TCPSocket_Private_0_3>()) {
123 PP_Bool result = get_interface<PPB_TCPSocket_Private_0_3>()->
125 return PP_ToBool(result);
131 uint16_t server_port,
133 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
134 return get_interface<PPB_TCPSocket_Private_0_5>()->
SSLHandshake(
138 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
139 return get_interface<PPB_TCPSocket_Private_0_4>()->
SSLHandshake(
143 if (has_interface<PPB_TCPSocket_Private_0_3>()) {
144 return get_interface<PPB_TCPSocket_Private_0_3>()->
SSLHandshake(
148 return callback.
MayForce(PP_ERROR_NOINTERFACE);
152 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
157 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
168 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
169 return PP_ToBool(get_interface<PPB_TCPSocket_Private_0_5>()->
171 PP_FromBool(trusted)));
173 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
174 return PP_ToBool(get_interface<PPB_TCPSocket_Private_0_4>()->
176 PP_FromBool(trusted)));
184 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
185 return get_interface<PPB_TCPSocket_Private_0_5>()->
Read(
189 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
190 return get_interface<PPB_TCPSocket_Private_0_4>()->
Read(
194 if (has_interface<PPB_TCPSocket_Private_0_3>()) {
195 return get_interface<PPB_TCPSocket_Private_0_3>()->
Read(
199 return callback.
MayForce(PP_ERROR_NOINTERFACE);
205 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
206 return get_interface<PPB_TCPSocket_Private_0_5>()->
Write(
210 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
211 return get_interface<PPB_TCPSocket_Private_0_4>()->
Write(
215 if (has_interface<PPB_TCPSocket_Private_0_3>()) {
216 return get_interface<PPB_TCPSocket_Private_0_3>()->
Write(
220 return callback.
MayForce(PP_ERROR_NOINTERFACE);
224 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
225 return get_interface<PPB_TCPSocket_Private_0_5>()->
Disconnect(
228 if (has_interface<PPB_TCPSocket_Private_0_4>()) {
229 return get_interface<PPB_TCPSocket_Private_0_4>()->
Disconnect(
232 if (has_interface<PPB_TCPSocket_Private_0_3>()) {
233 return get_interface<PPB_TCPSocket_Private_0_3>()->
Disconnect(
241 if (has_interface<PPB_TCPSocket_Private_0_5>()) {
242 return get_interface<PPB_TCPSocket_Private_0_5>()->
SetOption(
245 return callback.
MayForce(PP_ERROR_NOINTERFACE);
static bool IsAvailable()
bool GetRemoteAddress(PP_NetAddress_Private *remote_addr)
void PassRefFromConstructor(PP_Resource resource)
int32_t SetOption(PP_TCPSocketOption_Private name, const Var &value, const CompletionCallback &callback)
int32_t Connect(const char *host, uint16_t port, const CompletionCallback &callback)
int32_t MayForce(int32_t result) const
const PP_CompletionCallback & pp_completion_callback() const
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)
const PP_Var & pp_var() const
X509CertificatePrivate GetServerCertificate()
bool GetLocalAddress(PP_NetAddress_Private *local_addr)
PP_Resource pp_resource() const
TCPSocketPrivate(const InstanceHandle &instance)
A generic type used for passing data types between the module and the page.
int32_t SSLHandshake(const char *server_name, uint16_t server_port, const CompletionCallback &callback)
PP_Instance pp_instance() const
int32_t ConnectWithNetAddress(const PP_NetAddress_Private *addr, const CompletionCallback &callback)
A reference counted module resource.
bool AddChainBuildingCertificate(const X509CertificatePrivate &cert, bool trusted)