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

Side by Side Diff: mojo/public/cpp/bindings/tests/bind_task_runner_unittest.cc

Issue 2080513002: Deletes mojo::Callback (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 6 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/callback.h"
6 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
7 #include "base/single_thread_task_runner.h" 8 #include "base/single_thread_task_runner.h"
8 #include "base/synchronization/lock.h" 9 #include "base/synchronization/lock.h"
9 #include "base/synchronization/waitable_event.h" 10 #include "base/synchronization/waitable_event.h"
10 #include "base/threading/platform_thread.h" 11 #include "base/threading/platform_thread.h"
11 #include "mojo/public/cpp/bindings/associated_binding.h" 12 #include "mojo/public/cpp/bindings/associated_binding.h"
12 #include "mojo/public/cpp/bindings/associated_group.h" 13 #include "mojo/public/cpp/bindings/associated_group.h"
13 #include "mojo/public/cpp/bindings/associated_interface_ptr.h" 14 #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
14 #include "mojo/public/cpp/bindings/associated_interface_ptr_info.h" 15 #include "mojo/public/cpp/bindings/associated_interface_ptr_info.h"
15 #include "mojo/public/cpp/bindings/associated_interface_request.h" 16 #include "mojo/public/cpp/bindings/associated_interface_request.h"
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 118
118 template <typename BindingType, typename RequestType> 119 template <typename BindingType, typename RequestType>
119 class IntegerSenderImpl : public IntegerSender { 120 class IntegerSenderImpl : public IntegerSender {
120 public: 121 public:
121 IntegerSenderImpl(RequestType request, 122 IntegerSenderImpl(RequestType request,
122 scoped_refptr<base::SingleThreadTaskRunner> runner) 123 scoped_refptr<base::SingleThreadTaskRunner> runner)
123 : binding_(this, std::move(request), std::move(runner)) {} 124 : binding_(this, std::move(request), std::move(runner)) {}
124 125
125 ~IntegerSenderImpl() override {} 126 ~IntegerSenderImpl() override {}
126 127
127 using EchoHandler = Callback<void(int32_t, const EchoCallback&)>; 128 using EchoHandler = base::Callback<void(int32_t, const EchoCallback&)>;
128 129
129 void set_echo_handler(const EchoHandler& handler) { echo_handler_ = handler; } 130 void set_echo_handler(const EchoHandler& handler) { echo_handler_ = handler; }
130 131
131 void Echo(int32_t value, const EchoCallback& callback) override { 132 void Echo(int32_t value, const EchoCallback& callback) override {
132 if (echo_handler_.is_null()) 133 if (echo_handler_.is_null())
133 callback.Run(value); 134 callback.Run(value);
134 else 135 else
135 echo_handler_.Run(value, callback); 136 echo_handler_.Run(value, callback);
136 } 137 }
137 void Send(int32_t value) override { NOTREACHED(); } 138 void Send(int32_t value) override { NOTREACHED(); }
(...skipping 12 matching lines...) Expand all
150 151
151 explicit IntegerSenderConnectionImpl( 152 explicit IntegerSenderConnectionImpl(
152 IntegerSenderConnectionRequest request, 153 IntegerSenderConnectionRequest request,
153 scoped_refptr<base::SingleThreadTaskRunner> runner, 154 scoped_refptr<base::SingleThreadTaskRunner> runner,
154 scoped_refptr<base::SingleThreadTaskRunner> sender_runner) 155 scoped_refptr<base::SingleThreadTaskRunner> sender_runner)
155 : binding_(this, std::move(request), std::move(runner)), 156 : binding_(this, std::move(request), std::move(runner)),
156 sender_runner_(std::move(sender_runner)) {} 157 sender_runner_(std::move(sender_runner)) {}
157 158
158 ~IntegerSenderConnectionImpl() override {} 159 ~IntegerSenderConnectionImpl() override {}
159 160
160 void set_get_sender_notification(const Closure& notification) { 161 void set_get_sender_notification(const base::Closure& notification) {
161 get_sender_notification_ = notification; 162 get_sender_notification_ = notification;
162 } 163 }
163 void GetSender(IntegerSenderAssociatedRequest sender) override { 164 void GetSender(IntegerSenderAssociatedRequest sender) override {
164 sender_impl_.reset(new SenderType(std::move(sender), sender_runner_)); 165 sender_impl_.reset(new SenderType(std::move(sender), sender_runner_));
165 get_sender_notification_.Run(); 166 get_sender_notification_.Run();
166 } 167 }
167 168
168 void AsyncGetSender(const AsyncGetSenderCallback& callback) override { 169 void AsyncGetSender(const AsyncGetSenderCallback& callback) override {
169 NOTREACHED(); 170 NOTREACHED();
170 } 171 }
171 172
172 Binding<IntegerSenderConnection>* binding() { return &binding_; } 173 Binding<IntegerSenderConnection>* binding() { return &binding_; }
173 174
174 SenderType* sender_impl() { return sender_impl_.get(); } 175 SenderType* sender_impl() { return sender_impl_.get(); }
175 176
176 private: 177 private:
177 Binding<IntegerSenderConnection> binding_; 178 Binding<IntegerSenderConnection> binding_;
178 std::unique_ptr<SenderType> sender_impl_; 179 std::unique_ptr<SenderType> sender_impl_;
179 scoped_refptr<base::SingleThreadTaskRunner> sender_runner_; 180 scoped_refptr<base::SingleThreadTaskRunner> sender_runner_;
180 Closure get_sender_notification_; 181 base::Closure get_sender_notification_;
181 }; 182 };
182 183
183 class BindTaskRunnerTest : public testing::Test { 184 class BindTaskRunnerTest : public testing::Test {
184 protected: 185 protected:
185 void SetUp() override { 186 void SetUp() override {
186 binding_task_runner_ = scoped_refptr<TestTaskRunner>(new TestTaskRunner); 187 binding_task_runner_ = scoped_refptr<TestTaskRunner>(new TestTaskRunner);
187 ptr_task_runner_ = scoped_refptr<TestTaskRunner>(new TestTaskRunner); 188 ptr_task_runner_ = scoped_refptr<TestTaskRunner>(new TestTaskRunner);
188 189
189 auto request = GetProxy(&ptr_, ptr_task_runner_); 190 auto request = GetProxy(&ptr_, ptr_task_runner_);
190 impl_.reset(new ImplType(std::move(request), binding_task_runner_)); 191 impl_.reset(new ImplType(std::move(request), binding_task_runner_));
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 EXPECT_TRUE(sender_impl_error); 386 EXPECT_TRUE(sender_impl_error);
386 connection_ptr_task_runner_->Run(); 387 connection_ptr_task_runner_->Run();
387 EXPECT_TRUE(connection_ptr_error); 388 EXPECT_TRUE(connection_ptr_error);
388 sender_ptr_task_runner_->Run(); 389 sender_ptr_task_runner_->Run();
389 EXPECT_TRUE(sender_ptr_error); 390 EXPECT_TRUE(sender_ptr_error);
390 } 391 }
391 392
392 } // namespace 393 } // namespace
393 } // namespace test 394 } // namespace test
394 } // namespace mojo 395 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698