Index: ppapi/cpp/private/tcp_socket_private.cc |
diff --git a/ppapi/cpp/private/tcp_socket_private.cc b/ppapi/cpp/private/tcp_socket_private.cc |
index f60f2ef71643468c505ce4e2dca68a19980820dd..996e0a0f513f7c76d452e11b03963709033a0241 100644 |
--- a/ppapi/cpp/private/tcp_socket_private.cc |
+++ b/ppapi/cpp/private/tcp_socket_private.cc |
@@ -15,6 +15,10 @@ namespace pp { |
namespace { |
+template <> const char* interface_name<PPB_TCPSocket_Private_0_5>() { |
+ return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_5; |
+} |
+ |
template <> const char* interface_name<PPB_TCPSocket_Private_0_4>() { |
return PPB_TCPSOCKET_PRIVATE_INTERFACE_0_4; |
} |
@@ -26,7 +30,10 @@ template <> const char* interface_name<PPB_TCPSocket_Private_0_3>() { |
} // namespace |
TCPSocketPrivate::TCPSocketPrivate(const InstanceHandle& instance) { |
- if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ PassRefFromConstructor(get_interface<PPB_TCPSocket_Private_0_5>()->Create( |
+ instance.pp_instance())); |
+ } else if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
PassRefFromConstructor(get_interface<PPB_TCPSocket_Private_0_4>()->Create( |
instance.pp_instance())); |
} else if (has_interface<PPB_TCPSocket_Private_0_3>()) { |
@@ -41,13 +48,18 @@ TCPSocketPrivate::TCPSocketPrivate(PassRef, PP_Resource resource) |
// static |
bool TCPSocketPrivate::IsAvailable() { |
- return has_interface<PPB_TCPSocket_Private_0_4>() || |
+ return has_interface<PPB_TCPSocket_Private_0_5>() || |
+ has_interface<PPB_TCPSocket_Private_0_4>() || |
has_interface<PPB_TCPSocket_Private_0_3>(); |
} |
int32_t TCPSocketPrivate::Connect(const char* host, |
uint16_t port, |
const CompletionCallback& callback) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return get_interface<PPB_TCPSocket_Private_0_5>()->Connect( |
+ pp_resource(), host, port, callback.pp_completion_callback()); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
return get_interface<PPB_TCPSocket_Private_0_4>()->Connect( |
pp_resource(), host, port, callback.pp_completion_callback()); |
@@ -62,6 +74,10 @@ int32_t TCPSocketPrivate::Connect(const char* host, |
int32_t TCPSocketPrivate::ConnectWithNetAddress( |
const PP_NetAddress_Private* addr, |
const CompletionCallback& callback) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return get_interface<PPB_TCPSocket_Private_0_5>()->ConnectWithNetAddress( |
+ pp_resource(), addr, callback.pp_completion_callback()); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
return get_interface<PPB_TCPSocket_Private_0_4>()->ConnectWithNetAddress( |
pp_resource(), addr, callback.pp_completion_callback()); |
@@ -74,6 +90,11 @@ int32_t TCPSocketPrivate::ConnectWithNetAddress( |
} |
bool TCPSocketPrivate::GetLocalAddress(PP_NetAddress_Private* local_addr) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ PP_Bool result = get_interface<PPB_TCPSocket_Private_0_5>()-> |
+ GetLocalAddress(pp_resource(), local_addr); |
+ return PP_ToBool(result); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()-> |
GetLocalAddress(pp_resource(), local_addr); |
@@ -88,6 +109,11 @@ bool TCPSocketPrivate::GetLocalAddress(PP_NetAddress_Private* local_addr) { |
} |
bool TCPSocketPrivate::GetRemoteAddress(PP_NetAddress_Private* remote_addr) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ PP_Bool result = get_interface<PPB_TCPSocket_Private_0_5>()-> |
+ GetRemoteAddress(pp_resource(), remote_addr); |
+ return PP_ToBool(result); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()-> |
GetRemoteAddress(pp_resource(), remote_addr); |
@@ -104,6 +130,11 @@ bool TCPSocketPrivate::GetRemoteAddress(PP_NetAddress_Private* remote_addr) { |
int32_t TCPSocketPrivate::SSLHandshake(const char* server_name, |
uint16_t server_port, |
const CompletionCallback& callback) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return get_interface<PPB_TCPSocket_Private_0_5>()->SSLHandshake( |
+ pp_resource(), server_name, server_port, |
+ callback.pp_completion_callback()); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
return get_interface<PPB_TCPSocket_Private_0_4>()->SSLHandshake( |
pp_resource(), server_name, server_port, |
@@ -118,6 +149,11 @@ int32_t TCPSocketPrivate::SSLHandshake(const char* server_name, |
} |
X509CertificatePrivate TCPSocketPrivate::GetServerCertificate() { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return X509CertificatePrivate(PASS_REF, |
+ get_interface<PPB_TCPSocket_Private_0_5>()->GetServerCertificate( |
+ pp_resource())); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
return X509CertificatePrivate(PASS_REF, |
get_interface<PPB_TCPSocket_Private_0_4>()->GetServerCertificate( |
@@ -129,6 +165,11 @@ X509CertificatePrivate TCPSocketPrivate::GetServerCertificate() { |
bool TCPSocketPrivate::AddChainBuildingCertificate( |
const X509CertificatePrivate& cert, |
bool trusted) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return PP_ToBool(get_interface<PPB_TCPSocket_Private_0_5>()-> |
+ AddChainBuildingCertificate(pp_resource(), cert.pp_resource(), |
+ PP_FromBool(trusted))); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
return PP_ToBool(get_interface<PPB_TCPSocket_Private_0_4>()-> |
AddChainBuildingCertificate(pp_resource(), cert.pp_resource(), |
@@ -140,6 +181,11 @@ bool TCPSocketPrivate::AddChainBuildingCertificate( |
int32_t TCPSocketPrivate::Read(char* buffer, |
int32_t bytes_to_read, |
const CompletionCallback& callback) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return get_interface<PPB_TCPSocket_Private_0_5>()->Read( |
+ pp_resource(), buffer, bytes_to_read, |
+ callback.pp_completion_callback()); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
return get_interface<PPB_TCPSocket_Private_0_4>()->Read( |
pp_resource(), buffer, bytes_to_read, |
@@ -156,6 +202,11 @@ int32_t TCPSocketPrivate::Read(char* buffer, |
int32_t TCPSocketPrivate::Write(const char* buffer, |
int32_t bytes_to_write, |
const CompletionCallback& callback) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return get_interface<PPB_TCPSocket_Private_0_5>()->Write( |
+ pp_resource(), buffer, bytes_to_write, |
+ callback.pp_completion_callback()); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
return get_interface<PPB_TCPSocket_Private_0_4>()->Write( |
pp_resource(), buffer, bytes_to_write, |
@@ -170,6 +221,10 @@ int32_t TCPSocketPrivate::Write(const char* buffer, |
} |
void TCPSocketPrivate::Disconnect() { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return get_interface<PPB_TCPSocket_Private_0_5>()->Disconnect( |
+ pp_resource()); |
+ } |
if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
return get_interface<PPB_TCPSocket_Private_0_4>()->Disconnect( |
pp_resource()); |
@@ -180,4 +235,14 @@ void TCPSocketPrivate::Disconnect() { |
} |
} |
+int32_t TCPSocketPrivate::SetOption(PP_TCPSocketOption_Private name, |
+ const Var& value, |
+ const CompletionCallback& callback) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return get_interface<PPB_TCPSocket_Private_0_5>()->SetOption( |
+ pp_resource(), name, value.pp_var(), callback.pp_completion_callback()); |
+ } |
+ return callback.MayForce(PP_ERROR_NOINTERFACE); |
+} |
+ |
} // namespace pp |