Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1058)

Unified Diff: ppapi/cpp/private/tcp_socket_private.cc

Issue 12220050: Provide a way to disable Nagle's algorithm on Pepper TCP sockets. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « ppapi/cpp/private/tcp_socket_private.h ('k') | ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_shim.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698