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..6704cfc86b311ad70be9785ab966f0cf2cbd912c 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,17 +48,14 @@ 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_4>()) { |
yzshen1
2013/02/08 21:51:11
I am not sure whether we want to make this change.
Wez
2013/02/10 04:47:02
This change was suggested by dmichael@ - let's dis
yzshen1
2013/02/12 17:39:58
Sounds good.
On 2013/02/10 04:47:02, Wez wrote:
|
- return get_interface<PPB_TCPSocket_Private_0_4>()->Connect( |
- pp_resource(), host, port, callback.pp_completion_callback()); |
- } |
if (has_interface<PPB_TCPSocket_Private_0_3>()) { |
return get_interface<PPB_TCPSocket_Private_0_3>()->Connect( |
pp_resource(), host, port, callback.pp_completion_callback()); |
@@ -62,10 +66,6 @@ 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_4>()) { |
- return get_interface<PPB_TCPSocket_Private_0_4>()->ConnectWithNetAddress( |
- pp_resource(), addr, callback.pp_completion_callback()); |
- } |
if (has_interface<PPB_TCPSocket_Private_0_3>()) { |
return get_interface<PPB_TCPSocket_Private_0_3>()->ConnectWithNetAddress( |
pp_resource(), addr, callback.pp_completion_callback()); |
@@ -74,11 +74,6 @@ int32_t TCPSocketPrivate::ConnectWithNetAddress( |
} |
bool TCPSocketPrivate::GetLocalAddress(PP_NetAddress_Private* local_addr) { |
- if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
- PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()-> |
- GetLocalAddress(pp_resource(), local_addr); |
- return PP_ToBool(result); |
- } |
if (has_interface<PPB_TCPSocket_Private_0_3>()) { |
PP_Bool result = get_interface<PPB_TCPSocket_Private_0_3>()-> |
GetLocalAddress(pp_resource(), local_addr); |
@@ -88,11 +83,6 @@ bool TCPSocketPrivate::GetLocalAddress(PP_NetAddress_Private* local_addr) { |
} |
bool TCPSocketPrivate::GetRemoteAddress(PP_NetAddress_Private* remote_addr) { |
- if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
- PP_Bool result = get_interface<PPB_TCPSocket_Private_0_4>()-> |
- GetRemoteAddress(pp_resource(), remote_addr); |
- return PP_ToBool(result); |
- } |
if (has_interface<PPB_TCPSocket_Private_0_3>()) { |
PP_Bool result = get_interface<PPB_TCPSocket_Private_0_3>()-> |
GetRemoteAddress(pp_resource(), remote_addr); |
@@ -104,11 +94,6 @@ 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_4>()) { |
- return get_interface<PPB_TCPSocket_Private_0_4>()->SSLHandshake( |
- pp_resource(), server_name, server_port, |
- callback.pp_completion_callback()); |
- } |
if (has_interface<PPB_TCPSocket_Private_0_3>()) { |
return get_interface<PPB_TCPSocket_Private_0_3>()->SSLHandshake( |
pp_resource(), server_name, server_port, |
@@ -140,11 +125,6 @@ bool TCPSocketPrivate::AddChainBuildingCertificate( |
int32_t TCPSocketPrivate::Read(char* buffer, |
int32_t bytes_to_read, |
const CompletionCallback& callback) { |
- if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
- return get_interface<PPB_TCPSocket_Private_0_4>()->Read( |
- pp_resource(), buffer, bytes_to_read, |
- callback.pp_completion_callback()); |
- } |
if (has_interface<PPB_TCPSocket_Private_0_3>()) { |
return get_interface<PPB_TCPSocket_Private_0_3>()->Read( |
pp_resource(), buffer, bytes_to_read, |
@@ -156,11 +136,6 @@ 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_4>()) { |
- return get_interface<PPB_TCPSocket_Private_0_4>()->Write( |
- pp_resource(), buffer, bytes_to_write, |
- callback.pp_completion_callback()); |
- } |
if (has_interface<PPB_TCPSocket_Private_0_3>()) { |
return get_interface<PPB_TCPSocket_Private_0_3>()->Write( |
pp_resource(), buffer, bytes_to_write, |
@@ -170,14 +145,20 @@ int32_t TCPSocketPrivate::Write(const char* buffer, |
} |
void TCPSocketPrivate::Disconnect() { |
- if (has_interface<PPB_TCPSocket_Private_0_4>()) { |
- return get_interface<PPB_TCPSocket_Private_0_4>()->Disconnect( |
- pp_resource()); |
- } |
if (has_interface<PPB_TCPSocket_Private_0_3>()) { |
return get_interface<PPB_TCPSocket_Private_0_3>()->Disconnect( |
pp_resource()); |
} |
} |
+int32_t TCPSocketPrivate::SetSocketFeature(PP_TCPSocketFeature_Private name, |
+ const Var& value, |
+ const CompletionCallback& callback) { |
+ if (has_interface<PPB_TCPSocket_Private_0_5>()) { |
+ return get_interface<PPB_TCPSocket_Private_0_5>()->SetSocketFeature( |
+ pp_resource(), name, value.pp_var(), callback.pp_completion_callback()); |
+ } |
+ return callback.MayForce(PP_ERROR_NOINTERFACE); |
+} |
+ |
} // namespace pp |