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

Side by Side Diff: webkit/plugins/ppapi/ppb_transport_impl.cc

Issue 6899055: PPAPI: Force async callback invocation option. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "webkit/plugins/ppapi/ppb_transport_impl.h" 5 #include "webkit/plugins/ppapi/ppb_transport_impl.h"
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 46
47 PP_Bool IsWritable(PP_Resource resource) { 47 PP_Bool IsWritable(PP_Resource resource) {
48 scoped_refptr<PPB_Transport_Impl> t( 48 scoped_refptr<PPB_Transport_Impl> t(
49 Resource::GetAs<PPB_Transport_Impl>(resource)); 49 Resource::GetAs<PPB_Transport_Impl>(resource));
50 return BoolToPPBool((t.get()) ? t->IsWritable() : false); 50 return BoolToPPBool((t.get()) ? t->IsWritable() : false);
51 } 51 }
52 52
53 int32_t Connect(PP_Resource resource, PP_CompletionCallback callback) { 53 int32_t Connect(PP_Resource resource, PP_CompletionCallback callback) {
54 scoped_refptr<PPB_Transport_Impl> t( 54 scoped_refptr<PPB_Transport_Impl> t(
55 Resource::GetAs<PPB_Transport_Impl>(resource)); 55 Resource::GetAs<PPB_Transport_Impl>(resource));
56 return (t.get()) ? t->Connect(callback) : PP_ERROR_BADRESOURCE; 56 if (!t.get())
57 return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
58 return MayForceCallback(callback, t->Connect(callback));
57 } 59 }
58 60
59 int32_t GetNextAddress(PP_Resource resource, PP_Var* address, 61 int32_t GetNextAddress(PP_Resource resource, PP_Var* address,
60 PP_CompletionCallback callback) { 62 PP_CompletionCallback callback) {
61 scoped_refptr<PPB_Transport_Impl> t( 63 scoped_refptr<PPB_Transport_Impl> t(
62 Resource::GetAs<PPB_Transport_Impl>(resource)); 64 Resource::GetAs<PPB_Transport_Impl>(resource));
63 return (t.get())? t->GetNextAddress(address, callback) : PP_ERROR_BADRESOURCE; 65 if (!t.get())
66 return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
67 return MayForceCallback(callback, t->GetNextAddress(address, callback));
64 } 68 }
65 69
66 int32_t ReceiveRemoteAddress(PP_Resource resource, PP_Var address) { 70 int32_t ReceiveRemoteAddress(PP_Resource resource, PP_Var address) {
67 scoped_refptr<PPB_Transport_Impl> t( 71 scoped_refptr<PPB_Transport_Impl> t(
68 Resource::GetAs<PPB_Transport_Impl>(resource)); 72 Resource::GetAs<PPB_Transport_Impl>(resource));
69 return (t.get())? t->ReceiveRemoteAddress(address) : PP_ERROR_BADRESOURCE; 73 return (t.get())? t->ReceiveRemoteAddress(address) : PP_ERROR_BADRESOURCE;
70 } 74 }
71 75
72 int32_t Recv(PP_Resource resource, void* data, uint32_t len, 76 int32_t Recv(PP_Resource resource, void* data, uint32_t len,
73 PP_CompletionCallback callback) { 77 PP_CompletionCallback callback) {
74 scoped_refptr<PPB_Transport_Impl> t( 78 scoped_refptr<PPB_Transport_Impl> t(
75 Resource::GetAs<PPB_Transport_Impl>(resource)); 79 Resource::GetAs<PPB_Transport_Impl>(resource));
76 return (t.get())? t->Recv(data, len, callback) : PP_ERROR_BADRESOURCE; 80 if (!t.get())
81 return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
82 return MayForceCallback(callback, t->Recv(data, len, callback));
77 } 83 }
78 84
79 int32_t Send(PP_Resource resource, const void* data, uint32_t len, 85 int32_t Send(PP_Resource resource, const void* data, uint32_t len,
80 PP_CompletionCallback callback) { 86 PP_CompletionCallback callback) {
81 scoped_refptr<PPB_Transport_Impl> t( 87 scoped_refptr<PPB_Transport_Impl> t(
82 Resource::GetAs<PPB_Transport_Impl>(resource)); 88 Resource::GetAs<PPB_Transport_Impl>(resource));
83 return (t.get())? t->Send(data, len, callback) : PP_ERROR_BADRESOURCE; 89 if (!t.get())
90 return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
91 return MayForceCallback(callback, t->Send(data, len, callback));
84 } 92 }
85 93
86 // Disconnects from the remote peer. 94 // Disconnects from the remote peer.
87 int32_t Close(PP_Resource resource) { 95 int32_t Close(PP_Resource resource) {
88 scoped_refptr<PPB_Transport_Impl> t( 96 scoped_refptr<PPB_Transport_Impl> t(
89 Resource::GetAs<PPB_Transport_Impl>(resource)); 97 Resource::GetAs<PPB_Transport_Impl>(resource));
90 return (t.get())? t->Close() : PP_ERROR_BADRESOURCE; 98 return (t.get())? t->Close() : PP_ERROR_BADRESOURCE;
91 } 99 }
92 100
93 const PPB_Transport_Dev ppb_transport = { 101 const PPB_Transport_Dev ppb_transport = {
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 void PPB_Transport_Impl::OnWritten(int result) { 329 void PPB_Transport_Impl::OnWritten(int result) {
322 DCHECK(send_callback_.get() && !send_callback_->completed()); 330 DCHECK(send_callback_.get() && !send_callback_->completed());
323 331
324 scoped_refptr<TrackedCompletionCallback> callback; 332 scoped_refptr<TrackedCompletionCallback> callback;
325 callback.swap(send_callback_); 333 callback.swap(send_callback_);
326 callback->Run(MapNetError(result)); 334 callback->Run(MapNetError(result));
327 } 335 }
328 336
329 } // namespace ppapi 337 } // namespace ppapi
330 } // namespace webkit 338 } // namespace webkit
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698