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

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

Issue 10081020: PPAPI: Make blocking completion callbacks work. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: try again Created 8 years, 7 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/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/shared_impl/tracked_callback.h"
7 #include "ppapi/thunk/enter.h" 8 #include "ppapi/thunk/enter.h"
8 #include "ppapi/thunk/thunk.h" 9 #include "ppapi/thunk/thunk.h"
9 #include "ppapi/thunk/ppb_transport_api.h" 10 #include "ppapi/thunk/ppb_transport_api.h"
10 #include "ppapi/thunk/resource_creation_api.h" 11 #include "ppapi/thunk/resource_creation_api.h"
11 12
12 namespace ppapi { 13 namespace ppapi {
13 namespace thunk { 14 namespace thunk {
14 15
15 namespace { 16 namespace {
16 17
(...skipping 24 matching lines...) Expand all
41 EnterTransport enter(transport, true); 42 EnterTransport enter(transport, true);
42 if (enter.failed()) 43 if (enter.failed())
43 return enter.retval(); 44 return enter.retval();
44 return enter.object()->SetProperty(property, value); 45 return enter.object()->SetProperty(property, value);
45 } 46 }
46 47
47 int32_t Connect(PP_Resource transport, PP_CompletionCallback callback) { 48 int32_t Connect(PP_Resource transport, PP_CompletionCallback callback) {
48 EnterTransport enter(transport, callback, true); 49 EnterTransport enter(transport, callback, true);
49 if (enter.failed()) 50 if (enter.failed())
50 return enter.retval(); 51 return enter.retval();
51 return enter.SetResult(enter.object()->Connect(callback)); 52 return enter.SetResult(enter.object()->Connect(enter.callback()));
52 } 53 }
53 54
54 int32_t GetNextAddress(PP_Resource transport, PP_Var* address, 55 int32_t GetNextAddress(PP_Resource transport, PP_Var* address,
55 PP_CompletionCallback callback) { 56 PP_CompletionCallback callback) {
56 EnterTransport enter(transport, callback, true); 57 EnterTransport enter(transport, callback, true);
57 if (enter.failed()) 58 if (enter.failed())
58 return enter.retval(); 59 return enter.retval();
59 return enter.SetResult(enter.object()->GetNextAddress(address, callback)); 60 return enter.SetResult(enter.object()->GetNextAddress(address,
61 enter.callback()));
60 } 62 }
61 63
62 int32_t ReceiveRemoteAddress(PP_Resource transport, PP_Var address) { 64 int32_t ReceiveRemoteAddress(PP_Resource transport, PP_Var address) {
63 EnterTransport enter(transport, true); 65 EnterTransport enter(transport, true);
64 if (enter.failed()) 66 if (enter.failed())
65 return enter.retval(); 67 return enter.retval();
66 return enter.object()->ReceiveRemoteAddress(address); 68 return enter.object()->ReceiveRemoteAddress(address);
67 } 69 }
68 70
69 int32_t Recv(PP_Resource transport, void* data, uint32_t len, 71 int32_t Recv(PP_Resource transport, void* data, uint32_t len,
70 PP_CompletionCallback callback) { 72 PP_CompletionCallback callback) {
71 EnterTransport enter(transport, callback, true); 73 EnterTransport enter(transport, callback, true);
72 if (enter.failed()) 74 if (enter.failed())
73 return enter.retval(); 75 return enter.retval();
74 return enter.SetResult(enter.object()->Recv(data, len, callback)); 76 return enter.SetResult(enter.object()->Recv(data, len, enter.callback()));
75 } 77 }
76 78
77 int32_t Send(PP_Resource transport, const void* data, uint32_t len, 79 int32_t Send(PP_Resource transport, const void* data, uint32_t len,
78 PP_CompletionCallback callback) { 80 PP_CompletionCallback callback) {
79 EnterTransport enter(transport, callback, true); 81 EnterTransport enter(transport, callback, true);
80 if (enter.failed()) 82 if (enter.failed())
81 return enter.retval(); 83 return enter.retval();
82 return enter.SetResult(enter.object()->Send(data, len, callback)); 84 return enter.SetResult(enter.object()->Send(data, len, enter.callback()));
83 } 85 }
84 86
85 int32_t Close(PP_Resource transport) { 87 int32_t Close(PP_Resource transport) {
86 EnterTransport enter(transport, true); 88 EnterTransport enter(transport, true);
87 if (enter.failed()) 89 if (enter.failed())
88 return enter.retval(); 90 return enter.retval();
89 return enter.object()->Close(); 91 return enter.object()->Close();
90 } 92 }
91 93
92 const PPB_Transport_Dev g_ppb_transport_thunk = { 94 const PPB_Transport_Dev g_ppb_transport_thunk = {
(...skipping 10 matching lines...) Expand all
103 }; 105 };
104 106
105 } // namespace 107 } // namespace
106 108
107 const PPB_Transport_Dev_0_7* GetPPB_Transport_Dev_0_7_Thunk() { 109 const PPB_Transport_Dev_0_7* GetPPB_Transport_Dev_0_7_Thunk() {
108 return &g_ppb_transport_thunk; 110 return &g_ppb_transport_thunk;
109 } 111 }
110 112
111 } // namespace thunk 113 } // namespace thunk
112 } // namespace ppapi 114 } // namespace ppapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698