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

Side by Side Diff: mojo/public/cpp/bindings/lib/interface_ptr_state.h

Issue 2056153002: Convert PageLoadMetrics to Mojo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 5 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
« no previous file with comments | « ipc/ipc_message_start.h ('k') | mojo/public/cpp/bindings/tests/interface_ptr_unittest.cc » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_PTR_STATE_H_ 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_PTR_STATE_H_
6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_PTR_STATE_H_ 6 #define MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_PTR_STATE_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> // For |std::swap()|. 10 #include <algorithm> // For |std::swap()|.
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 86
87 void Swap(InterfacePtrState* other) { 87 void Swap(InterfacePtrState* other) {
88 using std::swap; 88 using std::swap;
89 swap(other->proxy_, proxy_); 89 swap(other->proxy_, proxy_);
90 swap(other->router_, router_); 90 swap(other->router_, router_);
91 handle_.swap(other->handle_); 91 handle_.swap(other->handle_);
92 runner_.swap(other->runner_); 92 runner_.swap(other->runner_);
93 swap(other->version_, version_); 93 swap(other->version_, version_);
94 } 94 }
95 95
96 void Bind(InterfacePtrInfo<Interface> info, 96 bool WaitForIncomingResponse() override {
97 scoped_refptr<base::SingleThreadTaskRunner> runner) { 97 ConfigureProxyIfNecessary();
98 DCHECK(!proxy_);
99 DCHECK(!router_);
100 DCHECK(!handle_.is_valid());
101 DCHECK_EQ(0u, version_);
102 DCHECK(info.is_valid());
103 98
104 handle_ = info.PassHandle(); 99 handle_ = info.PassHandle();
105 version_ = info.version(); 100 version_ = info.version();
106 runner_ = std::move(runner); 101 runner_ = std::move(runner);
107 } 102 }
108 103
109 bool HasAssociatedInterfaces() const { return false; } 104 bool HasAssociatedInterfaces() const { return false; }
110 105
111 // After this method is called, the object is in an invalid state and 106 // After this method is called, the object is in an invalid state and
112 // shouldn't be reused. 107 // shouldn't be reused.
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 246
252 handle_ = info.PassHandle(); 247 handle_ = info.PassHandle();
253 version_ = info.version(); 248 version_ = info.version();
254 runner_ = std::move(runner); 249 runner_ = std::move(runner);
255 } 250 }
256 251
257 bool HasAssociatedInterfaces() const { 252 bool HasAssociatedInterfaces() const {
258 return router_ ? router_->HasAssociatedEndpoints() : false; 253 return router_ ? router_->HasAssociatedEndpoints() : false;
259 } 254 }
260 255
256 bool WaitForIncomingResponse() {
257 ConfigureProxyIfNecessary();
258
259 DCHECK(router_);
260 return router_->WaitForIncomingMessage(MOJO_DEADLINE_INDEFINITE);
261 }
262
261 // After this method is called, the object is in an invalid state and 263 // After this method is called, the object is in an invalid state and
262 // shouldn't be reused. 264 // shouldn't be reused.
263 InterfacePtrInfo<Interface> PassInterface() { 265 InterfacePtrInfo<Interface> PassInterface() {
264 endpoint_client_.reset(); 266 endpoint_client_.reset();
265 proxy_.reset(); 267 proxy_.reset();
266 return InterfacePtrInfo<Interface>( 268 return InterfacePtrInfo<Interface>(
267 router_ ? router_->PassMessagePipe() : std::move(handle_), version_); 269 router_ ? router_->PassMessagePipe() : std::move(handle_), version_);
268 } 270 }
269 271
270 bool is_bound() const { return handle_.is_valid() || endpoint_client_; } 272 bool is_bound() const { return handle_.is_valid() || endpoint_client_; }
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 341
340 uint32_t version_; 342 uint32_t version_;
341 343
342 DISALLOW_COPY_AND_ASSIGN(InterfacePtrState); 344 DISALLOW_COPY_AND_ASSIGN(InterfacePtrState);
343 }; 345 };
344 346
345 } // namespace internal 347 } // namespace internal
346 } // namespace mojo 348 } // namespace mojo
347 349
348 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_PTR_STATE_H_ 350 #endif // MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_PTR_STATE_H_
OLDNEW
« no previous file with comments | « ipc/ipc_message_start.h ('k') | mojo/public/cpp/bindings/tests/interface_ptr_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698