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

Side by Side Diff: ppapi/cpp/private/udp_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: Add missing completion callback implementation. 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ppapi/cpp/private/udp_socket_private.h" 5 #include "ppapi/cpp/private/udp_socket_private.h"
6 6
7 #include "ppapi/c/pp_bool.h" 7 #include "ppapi/c/pp_bool.h"
8 #include "ppapi/c/pp_errors.h" 8 #include "ppapi/c/pp_errors.h"
9 #include "ppapi/cpp/completion_callback.h" 9 #include "ppapi/cpp/completion_callback.h"
10 #include "ppapi/cpp/instance_handle.h" 10 #include "ppapi/cpp/instance_handle.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 const Var& value) { 46 const Var& value) {
47 if (has_interface<PPB_UDPSocket_Private_0_4>()) { 47 if (has_interface<PPB_UDPSocket_Private_0_4>()) {
48 return get_interface<PPB_UDPSocket_Private_0_4>()->SetSocketFeature( 48 return get_interface<PPB_UDPSocket_Private_0_4>()->SetSocketFeature(
49 pp_resource(), name, value.pp_var()); 49 pp_resource(), name, value.pp_var());
50 } 50 }
51 return PP_ERROR_NOINTERFACE; 51 return PP_ERROR_NOINTERFACE;
52 } 52 }
53 53
54 int32_t UDPSocketPrivate::Bind(const PP_NetAddress_Private* addr, 54 int32_t UDPSocketPrivate::Bind(const PP_NetAddress_Private* addr,
55 const CompletionCallback& callback) { 55 const CompletionCallback& callback) {
56 if (has_interface<PPB_UDPSocket_Private_0_4>()) {
yzshen1 2013/02/08 21:51:11 Please see my comment in tcp_socket_private.cc
57 return get_interface<PPB_UDPSocket_Private_0_4>()->Bind(
58 pp_resource(), addr, callback.pp_completion_callback());
59 }
60 if (has_interface<PPB_UDPSocket_Private_0_3>()) { 56 if (has_interface<PPB_UDPSocket_Private_0_3>()) {
61 return get_interface<PPB_UDPSocket_Private_0_3>()->Bind( 57 return get_interface<PPB_UDPSocket_Private_0_3>()->Bind(
62 pp_resource(), addr, callback.pp_completion_callback()); 58 pp_resource(), addr, callback.pp_completion_callback());
63 } 59 }
64 return callback.MayForce(PP_ERROR_NOINTERFACE); 60 return callback.MayForce(PP_ERROR_NOINTERFACE);
65 } 61 }
66 62
67 bool UDPSocketPrivate::GetBoundAddress(PP_NetAddress_Private* addr) { 63 bool UDPSocketPrivate::GetBoundAddress(PP_NetAddress_Private* addr) {
68 if (has_interface<PPB_UDPSocket_Private_0_4>()) {
69 PP_Bool result =
70 get_interface<PPB_UDPSocket_Private_0_4>()->GetBoundAddress(
71 pp_resource(), addr);
72 return PP_ToBool(result);
73 }
74 if (has_interface<PPB_UDPSocket_Private_0_3>()) { 64 if (has_interface<PPB_UDPSocket_Private_0_3>()) {
75 PP_Bool result = 65 PP_Bool result =
76 get_interface<PPB_UDPSocket_Private_0_3>()->GetBoundAddress( 66 get_interface<PPB_UDPSocket_Private_0_3>()->GetBoundAddress(
77 pp_resource(), addr); 67 pp_resource(), addr);
78 return PP_ToBool(result); 68 return PP_ToBool(result);
79 } 69 }
80 return false; 70 return false;
81 } 71 }
82 72
83 int32_t UDPSocketPrivate::RecvFrom(char* buffer, 73 int32_t UDPSocketPrivate::RecvFrom(char* buffer,
84 int32_t num_bytes, 74 int32_t num_bytes,
85 const CompletionCallback& callback) { 75 const CompletionCallback& callback) {
86 if (has_interface<PPB_UDPSocket_Private_0_4>()) {
87 return get_interface<PPB_UDPSocket_Private_0_4>()->RecvFrom(
88 pp_resource(), buffer, num_bytes, callback.pp_completion_callback());
89 }
90 if (has_interface<PPB_UDPSocket_Private_0_3>()) { 76 if (has_interface<PPB_UDPSocket_Private_0_3>()) {
91 return get_interface<PPB_UDPSocket_Private_0_3>()->RecvFrom( 77 return get_interface<PPB_UDPSocket_Private_0_3>()->RecvFrom(
92 pp_resource(), buffer, num_bytes, callback.pp_completion_callback()); 78 pp_resource(), buffer, num_bytes, callback.pp_completion_callback());
93 } 79 }
94 return callback.MayForce(PP_ERROR_NOINTERFACE); 80 return callback.MayForce(PP_ERROR_NOINTERFACE);
95 } 81 }
96 82
97 bool UDPSocketPrivate::GetRecvFromAddress(PP_NetAddress_Private* addr) { 83 bool UDPSocketPrivate::GetRecvFromAddress(PP_NetAddress_Private* addr) {
98 if (has_interface<PPB_UDPSocket_Private_0_4>()) {
99 PP_Bool result =
100 get_interface<PPB_UDPSocket_Private_0_4>()->GetRecvFromAddress(
101 pp_resource(), addr);
102 return PP_ToBool(result);
103 }
104 if (has_interface<PPB_UDPSocket_Private_0_3>()) { 84 if (has_interface<PPB_UDPSocket_Private_0_3>()) {
105 PP_Bool result = 85 PP_Bool result =
106 get_interface<PPB_UDPSocket_Private_0_3>()->GetRecvFromAddress( 86 get_interface<PPB_UDPSocket_Private_0_3>()->GetRecvFromAddress(
107 pp_resource(), addr); 87 pp_resource(), addr);
108 return PP_ToBool(result); 88 return PP_ToBool(result);
109 } 89 }
110 return false; 90 return false;
111 } 91 }
112 92
113 int32_t UDPSocketPrivate::SendTo(const char* buffer, 93 int32_t UDPSocketPrivate::SendTo(const char* buffer,
114 int32_t num_bytes, 94 int32_t num_bytes,
115 const PP_NetAddress_Private* addr, 95 const PP_NetAddress_Private* addr,
116 const CompletionCallback& callback) { 96 const CompletionCallback& callback) {
117 if (has_interface<PPB_UDPSocket_Private_0_4>()) {
118 return get_interface<PPB_UDPSocket_Private_0_4>()->SendTo(
119 pp_resource(), buffer, num_bytes, addr,
120 callback.pp_completion_callback());
121 }
122 if (has_interface<PPB_UDPSocket_Private_0_3>()) { 97 if (has_interface<PPB_UDPSocket_Private_0_3>()) {
123 return get_interface<PPB_UDPSocket_Private_0_3>()->SendTo( 98 return get_interface<PPB_UDPSocket_Private_0_3>()->SendTo(
124 pp_resource(), buffer, num_bytes, addr, 99 pp_resource(), buffer, num_bytes, addr,
125 callback.pp_completion_callback()); 100 callback.pp_completion_callback());
126 } 101 }
127 return callback.MayForce(PP_ERROR_NOINTERFACE); 102 return callback.MayForce(PP_ERROR_NOINTERFACE);
128 } 103 }
129 104
130 void UDPSocketPrivate::Close() { 105 void UDPSocketPrivate::Close() {
131 if (has_interface<PPB_UDPSocket_Private_0_4>())
132 return get_interface<PPB_UDPSocket_Private_0_4>()->Close(pp_resource());
133 if (has_interface<PPB_UDPSocket_Private_0_3>()) 106 if (has_interface<PPB_UDPSocket_Private_0_3>())
134 return get_interface<PPB_UDPSocket_Private_0_3>()->Close(pp_resource()); 107 return get_interface<PPB_UDPSocket_Private_0_3>()->Close(pp_resource());
135 } 108 }
136 109
137 } // namespace pp 110 } // namespace pp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698