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

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

Issue 1501793003: Rename MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: move-name: todos Created 5 years 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_INTERFACE_PTR_H_ 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_
6 #define MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_ 6 #define MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_
7 7
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "mojo/public/cpp/bindings/callback.h" 10 #include "mojo/public/cpp/bindings/callback.h"
(...skipping 11 matching lines...) Expand all
22 // bound to a message pipe before the interface methods can be called. 22 // bound to a message pipe before the interface methods can be called.
23 // 23 //
24 // This class is thread hostile, as is the local proxy it manages. All calls to 24 // This class is thread hostile, as is the local proxy it manages. All calls to
25 // this class or the proxy should be from the same thread that created it. If 25 // this class or the proxy should be from the same thread that created it. If
26 // you need to move the proxy to a different thread, extract the 26 // you need to move the proxy to a different thread, extract the
27 // InterfacePtrInfo (containing just the message pipe and any version 27 // InterfacePtrInfo (containing just the message pipe and any version
28 // information) using PassInterface(), pass it to a different thread, and 28 // information) using PassInterface(), pass it to a different thread, and
29 // create and bind a new InterfacePtr from that thread. 29 // create and bind a new InterfacePtr from that thread.
30 template <typename Interface> 30 template <typename Interface>
31 class InterfacePtr { 31 class InterfacePtr {
32 MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(InterfacePtr) 32 DISALLOW_COPY_AND_ASSIGN_WITH_MOVE_FOR_BIND(InterfacePtr)
33 33
34 public: 34 public:
35 // Constructs an unbound InterfacePtr. 35 // Constructs an unbound InterfacePtr.
36 InterfacePtr() {} 36 InterfacePtr() {}
37 InterfacePtr(decltype(nullptr)) {} 37 InterfacePtr(decltype(nullptr)) {}
38 38
39 // Takes over the binding of another InterfacePtr. 39 // Takes over the binding of another InterfacePtr.
40 InterfacePtr(InterfacePtr&& other) { 40 InterfacePtr(InterfacePtr&& other) {
41 internal_state_.Swap(&other.internal_state_); 41 internal_state_.Swap(&other.internal_state_);
42 } 42 }
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) { 205 const MojoAsyncWaiter* waiter = Environment::GetDefaultAsyncWaiter()) {
206 InterfacePtr<Interface> ptr; 206 InterfacePtr<Interface> ptr;
207 if (info.is_valid()) 207 if (info.is_valid())
208 ptr.Bind(info.Pass(), waiter); 208 ptr.Bind(info.Pass(), waiter);
209 return ptr.Pass(); 209 return ptr.Pass();
210 } 210 }
211 211
212 } // namespace mojo 212 } // namespace mojo
213 213
214 #endif // MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_ 214 #endif // MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698