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

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

Issue 2727733004: [IndexedDB] Closing mojo connections when renderer quits (Closed)
Patch Set: comments Created 3 years, 8 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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_ASSOCIATED_BINDING_H_ 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_ASSOCIATED_BINDING_H_
6 #define MOJO_PUBLIC_CPP_BINDINGS_ASSOCIATED_BINDING_H_ 6 #define MOJO_PUBLIC_CPP_BINDINGS_ASSOCIATED_BINDING_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 // synchrounous method calls may not be run from this task runner, when they 89 // synchrounous method calls may not be run from this task runner, when they
90 // reenter outgoing synchrounous calls on the same thread. 90 // reenter outgoing synchrounous calls on the same thread.
91 template <typename Interface, 91 template <typename Interface,
92 typename ImplRefTraits = RawPtrImplRefTraits<Interface>> 92 typename ImplRefTraits = RawPtrImplRefTraits<Interface>>
93 class AssociatedBinding : public AssociatedBindingBase { 93 class AssociatedBinding : public AssociatedBindingBase {
94 public: 94 public:
95 using ImplPointerType = typename ImplRefTraits::PointerType; 95 using ImplPointerType = typename ImplRefTraits::PointerType;
96 96
97 // Constructs an incomplete associated binding that will use the 97 // Constructs an incomplete associated binding that will use the
98 // implementation |impl|. It may be completed with a subsequent call to the 98 // implementation |impl|. It may be completed with a subsequent call to the
99 // |Bind| method. Does not take ownership of |impl|, which must outlive this 99 // |Bind| method.
100 // object. 100 explicit AssociatedBinding(ImplPointerType impl) {
101 explicit AssociatedBinding(ImplPointerType impl) { stub_.set_sink(impl); } 101 stub_.set_sink(std::move(impl));
102 }
102 103
103 // Constructs a completed associated binding of |impl|. The output |ptr_info| 104 // Constructs a completed associated binding of |impl|. The output |ptr_info|
104 // should be sent by another interface. |impl| must outlive this object. 105 // should be sent by another interface. |impl| must outlive this object.
105 AssociatedBinding(ImplPointerType impl, 106 AssociatedBinding(ImplPointerType impl,
106 AssociatedInterfacePtrInfo<Interface>* ptr_info, 107 AssociatedInterfacePtrInfo<Interface>* ptr_info,
107 scoped_refptr<base::SingleThreadTaskRunner> runner = 108 scoped_refptr<base::SingleThreadTaskRunner> runner =
108 base::ThreadTaskRunnerHandle::Get()) 109 base::ThreadTaskRunnerHandle::Get())
109 : AssociatedBinding(std::move(impl)) { 110 : AssociatedBinding(std::move(impl)) {
110 Bind(ptr_info, std::move(runner)); 111 Bind(ptr_info, std::move(runner));
111 } 112 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 163
163 private: 164 private:
164 typename Interface::template Stub_<ImplRefTraits> stub_; 165 typename Interface::template Stub_<ImplRefTraits> stub_;
165 166
166 DISALLOW_COPY_AND_ASSIGN(AssociatedBinding); 167 DISALLOW_COPY_AND_ASSIGN(AssociatedBinding);
167 }; 168 };
168 169
169 } // namespace mojo 170 } // namespace mojo
170 171
171 #endif // MOJO_PUBLIC_CPP_BINDINGS_ASSOCIATED_BINDING_H_ 172 #endif // MOJO_PUBLIC_CPP_BINDINGS_ASSOCIATED_BINDING_H_
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.cc ('k') | mojo/public/cpp/bindings/strong_associated_binding_set.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698