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

Side by Side Diff: mojo/public/cpp/bindings/binding.h

Issue 1535943002: Convert Pass()→std::move() in //mojo/public/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Regenerate correctly Created 4 years, 11 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
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_BINDING_H_ 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_BINDING_H_
6 #define MOJO_PUBLIC_CPP_BINDINGS_BINDING_H_ 6 #define MOJO_PUBLIC_CPP_BINDINGS_BINDING_H_
7 7
8 #include <utility>
9
8 #include "base/macros.h" 10 #include "base/macros.h"
9 #include "mojo/public/c/environment/async_waiter.h" 11 #include "mojo/public/c/environment/async_waiter.h"
10 #include "mojo/public/cpp/bindings/callback.h" 12 #include "mojo/public/cpp/bindings/callback.h"
11 #include "mojo/public/cpp/bindings/interface_ptr.h" 13 #include "mojo/public/cpp/bindings/interface_ptr.h"
12 #include "mojo/public/cpp/bindings/interface_ptr_info.h" 14 #include "mojo/public/cpp/bindings/interface_ptr_info.h"
13 #include "mojo/public/cpp/bindings/interface_request.h" 15 #include "mojo/public/cpp/bindings/interface_request.h"
14 #include "mojo/public/cpp/bindings/lib/binding_state.h" 16 #include "mojo/public/cpp/bindings/lib/binding_state.h"
15 #include "mojo/public/cpp/system/core.h" 17 #include "mojo/public/cpp/system/core.h"
16 18
17 namespace mojo { 19 namespace mojo {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 // Does not take ownership of |impl|, which must outlive the binding. 68 // Does not take ownership of |impl|, which must outlive the binding.
67 explicit Binding(Interface* impl) : internal_state_(impl) {} 69 explicit Binding(Interface* impl) : internal_state_(impl) {}
68 70
69 // Constructs a completed binding of message pipe |handle| to implementation 71 // Constructs a completed binding of message pipe |handle| to implementation
70 // |impl|. Does not take ownership of |impl|, which must outlive the binding. 72 // |impl|. Does not take ownership of |impl|, which must outlive the binding.
71 // See class comment for definition of |waiter|. 73 // See class comment for definition of |waiter|.
72 Binding(Interface* impl, 74 Binding(Interface* impl,
73 ScopedMessagePipeHandle handle, 75 ScopedMessagePipeHandle handle,
74 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) 76 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter())
75 : Binding(impl) { 77 : Binding(impl) {
76 Bind(handle.Pass(), waiter); 78 Bind(std::move(handle), waiter);
77 } 79 }
78 80
79 // Constructs a completed binding of |impl| to a new message pipe, passing the 81 // Constructs a completed binding of |impl| to a new message pipe, passing the
80 // client end to |ptr|, which takes ownership of it. The caller is expected to 82 // client end to |ptr|, which takes ownership of it. The caller is expected to
81 // pass |ptr| on to the client of the service. Does not take ownership of any 83 // pass |ptr| on to the client of the service. Does not take ownership of any
82 // of the parameters. |impl| must outlive the binding. |ptr| only needs to 84 // of the parameters. |impl| must outlive the binding. |ptr| only needs to
83 // last until the constructor returns. See class comment for definition of 85 // last until the constructor returns. See class comment for definition of
84 // |waiter|. 86 // |waiter|.
85 Binding(Interface* impl, 87 Binding(Interface* impl,
86 InterfacePtr<Interface>* ptr, 88 InterfacePtr<Interface>* ptr,
(...skipping 16 matching lines...) Expand all
103 // Tears down the binding, closing the message pipe and leaving the interface 105 // Tears down the binding, closing the message pipe and leaving the interface
104 // implementation unbound. 106 // implementation unbound.
105 ~Binding() {} 107 ~Binding() {}
106 108
107 // Completes a binding that was constructed with only an interface 109 // Completes a binding that was constructed with only an interface
108 // implementation. Takes ownership of |handle| and binds it to the previously 110 // implementation. Takes ownership of |handle| and binds it to the previously
109 // specified implementation. See class comment for definition of |waiter|. 111 // specified implementation. See class comment for definition of |waiter|.
110 void Bind( 112 void Bind(
111 ScopedMessagePipeHandle handle, 113 ScopedMessagePipeHandle handle,
112 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) { 114 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
113 internal_state_.Bind(handle.Pass(), waiter); 115 internal_state_.Bind(std::move(handle), waiter);
114 } 116 }
115 117
116 // Completes a binding that was constructed with only an interface 118 // Completes a binding that was constructed with only an interface
117 // implementation by creating a new message pipe, binding one end of it to the 119 // implementation by creating a new message pipe, binding one end of it to the
118 // previously specified implementation, and passing the other to |ptr|, which 120 // previously specified implementation, and passing the other to |ptr|, which
119 // takes ownership of it. The caller is expected to pass |ptr| on to the 121 // takes ownership of it. The caller is expected to pass |ptr| on to the
120 // eventual client of the service. Does not take ownership of |ptr|. See 122 // eventual client of the service. Does not take ownership of |ptr|. See
121 // class comment for definition of |waiter|. 123 // class comment for definition of |waiter|.
122 void Bind( 124 void Bind(
123 InterfacePtr<Interface>* ptr, 125 InterfacePtr<Interface>* ptr,
124 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) { 126 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
125 MessagePipe pipe; 127 MessagePipe pipe;
126 ptr->Bind( 128 ptr->Bind(InterfacePtrInfo<Interface>(std::move(pipe.handle0),
127 InterfacePtrInfo<Interface>(pipe.handle0.Pass(), Interface::Version_), 129 Interface::Version_),
128 waiter); 130 waiter);
129 Bind(pipe.handle1.Pass(), waiter); 131 Bind(std::move(pipe.handle1), waiter);
130 } 132 }
131 133
132 // Completes a binding that was constructed with only an interface 134 // Completes a binding that was constructed with only an interface
133 // implementation by removing the message pipe endpoint from |request| and 135 // implementation by removing the message pipe endpoint from |request| and
134 // binding it to the previously specified implementation. See class comment 136 // binding it to the previously specified implementation. See class comment
135 // for definition of |waiter|. 137 // for definition of |waiter|.
136 void Bind( 138 void Bind(
137 InterfaceRequest<GenericInterface> request, 139 InterfaceRequest<GenericInterface> request,
138 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) { 140 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
139 Bind(request.PassMessagePipe(), waiter); 141 Bind(request.PassMessagePipe(), waiter);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 private: 234 private:
233 internal::BindingState<Interface, Interface::PassesAssociatedKinds_> 235 internal::BindingState<Interface, Interface::PassesAssociatedKinds_>
234 internal_state_; 236 internal_state_;
235 237
236 DISALLOW_COPY_AND_ASSIGN(Binding); 238 DISALLOW_COPY_AND_ASSIGN(Binding);
237 }; 239 };
238 240
239 } // namespace mojo 241 } // namespace mojo
240 242
241 #endif // MOJO_PUBLIC_CPP_BINDINGS_BINDING_H_ 243 #endif // MOJO_PUBLIC_CPP_BINDINGS_BINDING_H_
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/associated_interface_request.h ('k') | mojo/public/cpp/bindings/interface_ptr.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698