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

Side by Side Diff: ppapi/thunk/ppb_tcp_socket_private_thunk.cc

Issue 10081020: PPAPI: Make blocking completion callbacks work. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: export AssertLockHeld Created 8 years, 6 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
« no previous file with comments | « ppapi/thunk/ppb_tcp_socket_private_api.h ('k') | ppapi/thunk/ppb_udp_socket_private_api.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/c/pp_completion_callback.h" 5 #include "ppapi/c/pp_completion_callback.h"
6 #include "ppapi/c/pp_errors.h" 6 #include "ppapi/c/pp_errors.h"
7 #include "ppapi/c/private/ppb_tcp_socket_private.h" 7 #include "ppapi/c/private/ppb_tcp_socket_private.h"
8 #include "ppapi/shared_impl/tracked_callback.h"
8 #include "ppapi/thunk/enter.h" 9 #include "ppapi/thunk/enter.h"
9 #include "ppapi/thunk/thunk.h" 10 #include "ppapi/thunk/thunk.h"
10 #include "ppapi/thunk/ppb_tcp_socket_private_api.h" 11 #include "ppapi/thunk/ppb_tcp_socket_private_api.h"
11 #include "ppapi/thunk/resource_creation_api.h" 12 #include "ppapi/thunk/resource_creation_api.h"
12 13
13 namespace ppapi { 14 namespace ppapi {
14 namespace thunk { 15 namespace thunk {
15 16
16 namespace { 17 namespace {
17 18
(...skipping 11 matching lines...) Expand all
29 return PP_FromBool(enter.succeeded()); 30 return PP_FromBool(enter.succeeded());
30 } 31 }
31 32
32 int32_t Connect(PP_Resource tcp_socket, 33 int32_t Connect(PP_Resource tcp_socket,
33 const char* host, 34 const char* host,
34 uint16_t port, 35 uint16_t port,
35 PP_CompletionCallback callback) { 36 PP_CompletionCallback callback) {
36 EnterTCP enter(tcp_socket, callback, true); 37 EnterTCP enter(tcp_socket, callback, true);
37 if (enter.failed()) 38 if (enter.failed())
38 return enter.retval(); 39 return enter.retval();
39 return enter.SetResult(enter.object()->Connect(host, port, callback)); 40 return enter.SetResult(enter.object()->Connect(host, port, enter.callback()));
40 } 41 }
41 42
42 int32_t ConnectWithNetAddress(PP_Resource tcp_socket, 43 int32_t ConnectWithNetAddress(PP_Resource tcp_socket,
43 const PP_NetAddress_Private* addr, 44 const PP_NetAddress_Private* addr,
44 PP_CompletionCallback callback) { 45 PP_CompletionCallback callback) {
45 EnterTCP enter(tcp_socket, callback, true); 46 EnterTCP enter(tcp_socket, callback, true);
46 if (enter.failed()) 47 if (enter.failed())
47 return enter.retval(); 48 return enter.retval();
48 return enter.SetResult(enter.object()->ConnectWithNetAddress(addr, callback)); 49 return enter.SetResult(
50 enter.object()->ConnectWithNetAddress(addr, enter.callback()));
49 } 51 }
50 52
51 PP_Bool GetLocalAddress(PP_Resource tcp_socket, 53 PP_Bool GetLocalAddress(PP_Resource tcp_socket,
52 PP_NetAddress_Private* local_addr) { 54 PP_NetAddress_Private* local_addr) {
53 EnterTCP enter(tcp_socket, true); 55 EnterTCP enter(tcp_socket, true);
54 if (enter.failed()) 56 if (enter.failed())
55 return PP_FALSE; 57 return PP_FALSE;
56 return enter.object()->GetLocalAddress(local_addr); 58 return enter.object()->GetLocalAddress(local_addr);
57 } 59 }
58 60
59 PP_Bool GetRemoteAddress(PP_Resource tcp_socket, 61 PP_Bool GetRemoteAddress(PP_Resource tcp_socket,
60 PP_NetAddress_Private* remote_addr) { 62 PP_NetAddress_Private* remote_addr) {
61 EnterTCP enter(tcp_socket, true); 63 EnterTCP enter(tcp_socket, true);
62 if (enter.failed()) 64 if (enter.failed())
63 return PP_FALSE; 65 return PP_FALSE;
64 return enter.object()->GetRemoteAddress(remote_addr); 66 return enter.object()->GetRemoteAddress(remote_addr);
65 } 67 }
66 68
67 int32_t SSLHandshake(PP_Resource tcp_socket, 69 int32_t SSLHandshake(PP_Resource tcp_socket,
68 const char* server_name, 70 const char* server_name,
69 uint16_t server_port, 71 uint16_t server_port,
70 PP_CompletionCallback callback) { 72 PP_CompletionCallback callback) {
71 EnterTCP enter(tcp_socket, callback, true); 73 EnterTCP enter(tcp_socket, callback, true);
72 if (enter.failed()) 74 if (enter.failed())
73 return enter.retval(); 75 return enter.retval();
74 return enter.SetResult(enter.object()->SSLHandshake(server_name, server_port, 76 return enter.SetResult(enter.object()->SSLHandshake(server_name, server_port,
75 callback)); 77 enter.callback()));
76 } 78 }
77 79
78 PP_Resource GetServerCertificate(PP_Resource tcp_socket) { 80 PP_Resource GetServerCertificate(PP_Resource tcp_socket) {
79 EnterTCP enter(tcp_socket, true); 81 EnterTCP enter(tcp_socket, true);
80 if (enter.failed()) 82 if (enter.failed())
81 return 0; 83 return 0;
82 return enter.object()->GetServerCertificate(); 84 return enter.object()->GetServerCertificate();
83 } 85 }
84 86
85 PP_Bool AddChainBuildingCertificate(PP_Resource tcp_socket, 87 PP_Bool AddChainBuildingCertificate(PP_Resource tcp_socket,
86 PP_Resource certificate, 88 PP_Resource certificate,
87 PP_Bool trusted) { 89 PP_Bool trusted) {
88 EnterTCP enter(tcp_socket, true); 90 EnterTCP enter(tcp_socket, true);
89 if (enter.failed()) 91 if (enter.failed())
90 return PP_FALSE; 92 return PP_FALSE;
91 return enter.object()->AddChainBuildingCertificate(certificate, trusted); 93 return enter.object()->AddChainBuildingCertificate(certificate, trusted);
92 } 94 }
93 95
94 int32_t Read(PP_Resource tcp_socket, 96 int32_t Read(PP_Resource tcp_socket,
95 char* buffer, 97 char* buffer,
96 int32_t bytes_to_read, 98 int32_t bytes_to_read,
97 PP_CompletionCallback callback) { 99 PP_CompletionCallback callback) {
98 EnterTCP enter(tcp_socket, callback, true); 100 EnterTCP enter(tcp_socket, callback, true);
99 if (enter.failed()) 101 if (enter.failed())
100 return enter.retval(); 102 return enter.retval();
101 return enter.SetResult(enter.object()->Read(buffer, bytes_to_read, callback)); 103 return enter.SetResult(enter.object()->Read(buffer, bytes_to_read,
104 enter.callback()));
102 } 105 }
103 106
104 int32_t Write(PP_Resource tcp_socket, 107 int32_t Write(PP_Resource tcp_socket,
105 const char* buffer, 108 const char* buffer,
106 int32_t bytes_to_write, 109 int32_t bytes_to_write,
107 PP_CompletionCallback callback) { 110 PP_CompletionCallback callback) {
108 EnterTCP enter(tcp_socket, callback, true); 111 EnterTCP enter(tcp_socket, callback, true);
109 if (enter.failed()) 112 if (enter.failed())
110 return enter.retval(); 113 return enter.retval();
111 return enter.SetResult(enter.object()->Write(buffer, bytes_to_write, 114 return enter.SetResult(enter.object()->Write(buffer, bytes_to_write,
112 callback)); 115 enter.callback()));
113 } 116 }
114 117
115 void Disconnect(PP_Resource tcp_socket) { 118 void Disconnect(PP_Resource tcp_socket) {
116 EnterTCP enter(tcp_socket, true); 119 EnterTCP enter(tcp_socket, true);
117 if (enter.succeeded()) 120 if (enter.succeeded())
118 enter.object()->Disconnect(); 121 enter.object()->Disconnect();
119 } 122 }
120 123
121 const PPB_TCPSocket_Private_0_3 g_ppb_tcp_socket_thunk_0_3 = { 124 const PPB_TCPSocket_Private_0_3 g_ppb_tcp_socket_thunk_0_3 = {
122 &Create, 125 &Create,
(...skipping 28 matching lines...) Expand all
151 const PPB_TCPSocket_Private_0_3* GetPPB_TCPSocket_Private_0_3_Thunk() { 154 const PPB_TCPSocket_Private_0_3* GetPPB_TCPSocket_Private_0_3_Thunk() {
152 return &g_ppb_tcp_socket_thunk_0_3; 155 return &g_ppb_tcp_socket_thunk_0_3;
153 } 156 }
154 157
155 const PPB_TCPSocket_Private_0_4* GetPPB_TCPSocket_Private_0_4_Thunk() { 158 const PPB_TCPSocket_Private_0_4* GetPPB_TCPSocket_Private_0_4_Thunk() {
156 return &g_ppb_tcp_socket_thunk_0_4; 159 return &g_ppb_tcp_socket_thunk_0_4;
157 } 160 }
158 161
159 } // namespace thunk 162 } // namespace thunk
160 } // namespace ppapi 163 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/thunk/ppb_tcp_socket_private_api.h ('k') | ppapi/thunk/ppb_udp_socket_private_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698