| OLD | NEW | 
|---|
| 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 <algorithm>  // For |std::swap()|. | 8 #include <algorithm>  // For |std::swap()|. | 
| 9 | 9 | 
| 10 #include "base/logging.h" | 10 #include "base/logging.h" | 
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 313     // The object hasn't been bound. | 313     // The object hasn't been bound. | 
| 314     if (!waiter_) { | 314     if (!waiter_) { | 
| 315       DCHECK(!handle_.is_valid()); | 315       DCHECK(!handle_.is_valid()); | 
| 316       return; | 316       return; | 
| 317     } | 317     } | 
| 318 | 318 | 
| 319     router_ = new MultiplexRouter(true, handle_.Pass(), waiter_); | 319     router_ = new MultiplexRouter(true, handle_.Pass(), waiter_); | 
| 320     endpoint_client_.reset(new InterfaceEndpointClient( | 320     endpoint_client_.reset(new InterfaceEndpointClient( | 
| 321         router_->CreateLocalEndpointHandle(kMasterInterfaceId), nullptr, | 321         router_->CreateLocalEndpointHandle(kMasterInterfaceId), nullptr, | 
| 322         make_scoped_ptr(new typename Interface::ResponseValidator_()))); | 322         make_scoped_ptr(new typename Interface::ResponseValidator_()))); | 
| 323     proxy_.reset(new Proxy(endpoint_client_.get(), endpoint_client_->router())); | 323     proxy_.reset(new Proxy(endpoint_client_.get())); | 
|  | 324     proxy_->serialization_context()->router = endpoint_client_->router(); | 
| 324 | 325 | 
| 325     waiter_ = nullptr; | 326     waiter_ = nullptr; | 
| 326   } | 327   } | 
| 327 | 328 | 
| 328   scoped_refptr<MultiplexRouter> router_; | 329   scoped_refptr<MultiplexRouter> router_; | 
| 329 | 330 | 
| 330   scoped_ptr<InterfaceEndpointClient> endpoint_client_; | 331   scoped_ptr<InterfaceEndpointClient> endpoint_client_; | 
| 331   scoped_ptr<Proxy> proxy_; | 332   scoped_ptr<Proxy> proxy_; | 
| 332 | 333 | 
| 333   // |router_| (as well as other members above) is not initialized until | 334   // |router_| (as well as other members above) is not initialized until | 
| 334   // read/write with the message pipe handle is needed. |handle_| and |waiter_| | 335   // read/write with the message pipe handle is needed. |handle_| and |waiter_| | 
| 335   // are valid between the Bind() call and the initialization of |router_|. | 336   // are valid between the Bind() call and the initialization of |router_|. | 
| 336   ScopedMessagePipeHandle handle_; | 337   ScopedMessagePipeHandle handle_; | 
| 337   const MojoAsyncWaiter* waiter_; | 338   const MojoAsyncWaiter* waiter_; | 
| 338 | 339 | 
| 339   uint32_t version_; | 340   uint32_t version_; | 
| 340 | 341 | 
| 341   DISALLOW_COPY_AND_ASSIGN(InterfacePtrState); | 342   DISALLOW_COPY_AND_ASSIGN(InterfacePtrState); | 
| 342 }; | 343 }; | 
| 343 | 344 | 
| 344 }  // namespace internal | 345 }  // namespace internal | 
| 345 }  // namespace mojo | 346 }  // namespace mojo | 
| 346 | 347 | 
| 347 #endif  // MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_PTR_STATE_H_ | 348 #endif  // MOJO_PUBLIC_CPP_BINDINGS_LIB_INTERFACE_PTR_STATE_H_ | 
| OLD | NEW | 
|---|