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

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

Issue 294833002: Mojo: more idiomatic C++ bindings (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix windows bustage Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // This file was GENERATED by command: 1 // This file was GENERATED by command:
2 // pump.py callback.h.pump 2 // pump.py callback.h.pump
3 // DO NOT EDIT BY HAND!!! 3 // DO NOT EDIT BY HAND!!!
4 4
5 5
6 6
7 // Copyright 2014 The Chromium Authors. All rights reserved. 7 // Copyright 2014 The Chromium Authors. All rights reserved.
8 // Use of this source code is governed by a BSD-style license that can be 8 // Use of this source code is governed by a BSD-style license that can be
9 // found in the LICENSE file. 9 // found in the LICENSE file.
10 10
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 71
72 // Any class that is copy-constructable and has a compatible Run method may 72 // Any class that is copy-constructable and has a compatible Run method may
73 // be adapted to a Callback using this constructor. 73 // be adapted to a Callback using this constructor.
74 template <typename Sink> 74 template <typename Sink>
75 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {} 75 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {}
76 76
77 void Run( 77 void Run(
78 typename internal::Callback_ParamTraits<A1>::ForwardType a1) const { 78 typename internal::Callback_ParamTraits<A1>::ForwardType a1) const {
79 if (sink_.get()) 79 if (sink_.get())
80 sink_->Run( 80 sink_->Run(
81 internal::Callback_Forward(a1)); 81 internal::Forward(a1));
82 } 82 }
83 83
84 private: 84 private:
85 template <typename Sink> 85 template <typename Sink>
86 struct Adapter : public Runnable { 86 struct Adapter : public Runnable {
87 explicit Adapter(const Sink& sink) : sink(sink) {} 87 explicit Adapter(const Sink& sink) : sink(sink) {}
88 virtual void Run( 88 virtual void Run(
89 typename internal::Callback_ParamTraits<A1>::ForwardType a1) const 89 typename internal::Callback_ParamTraits<A1>::ForwardType a1) const
90 MOJO_OVERRIDE { 90 MOJO_OVERRIDE {
91 sink.Run( 91 sink.Run(
92 internal::Callback_Forward(a1)); 92 internal::Forward(a1));
93 } 93 }
94 Sink sink; 94 Sink sink;
95 }; 95 };
96 96
97 internal::SharedPtr<Runnable> sink_; 97 internal::SharedPtr<Runnable> sink_;
98 }; 98 };
99 99
100 template <typename A1, typename A2> 100 template <typename A1, typename A2>
101 class Callback<void(A1, A2)> { 101 class Callback<void(A1, A2)> {
102 public: 102 public:
(...skipping 12 matching lines...) Expand all
115 // Any class that is copy-constructable and has a compatible Run method may 115 // Any class that is copy-constructable and has a compatible Run method may
116 // be adapted to a Callback using this constructor. 116 // be adapted to a Callback using this constructor.
117 template <typename Sink> 117 template <typename Sink>
118 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {} 118 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {}
119 119
120 void Run( 120 void Run(
121 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 121 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
122 typename internal::Callback_ParamTraits<A2>::ForwardType a2) const { 122 typename internal::Callback_ParamTraits<A2>::ForwardType a2) const {
123 if (sink_.get()) 123 if (sink_.get())
124 sink_->Run( 124 sink_->Run(
125 internal::Callback_Forward(a1), 125 internal::Forward(a1),
126 internal::Callback_Forward(a2)); 126 internal::Forward(a2));
127 } 127 }
128 128
129 private: 129 private:
130 template <typename Sink> 130 template <typename Sink>
131 struct Adapter : public Runnable { 131 struct Adapter : public Runnable {
132 explicit Adapter(const Sink& sink) : sink(sink) {} 132 explicit Adapter(const Sink& sink) : sink(sink) {}
133 virtual void Run( 133 virtual void Run(
134 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 134 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
135 typename internal::Callback_ParamTraits<A2>::ForwardType a2) const 135 typename internal::Callback_ParamTraits<A2>::ForwardType a2) const
136 MOJO_OVERRIDE { 136 MOJO_OVERRIDE {
137 sink.Run( 137 sink.Run(
138 internal::Callback_Forward(a1), 138 internal::Forward(a1),
139 internal::Callback_Forward(a2)); 139 internal::Forward(a2));
140 } 140 }
141 Sink sink; 141 Sink sink;
142 }; 142 };
143 143
144 internal::SharedPtr<Runnable> sink_; 144 internal::SharedPtr<Runnable> sink_;
145 }; 145 };
146 146
147 template <typename A1, typename A2, typename A3> 147 template <typename A1, typename A2, typename A3>
148 class Callback<void(A1, A2, A3)> { 148 class Callback<void(A1, A2, A3)> {
149 public: 149 public:
(...skipping 14 matching lines...) Expand all
164 // be adapted to a Callback using this constructor. 164 // be adapted to a Callback using this constructor.
165 template <typename Sink> 165 template <typename Sink>
166 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {} 166 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {}
167 167
168 void Run( 168 void Run(
169 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 169 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
170 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 170 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
171 typename internal::Callback_ParamTraits<A3>::ForwardType a3) const { 171 typename internal::Callback_ParamTraits<A3>::ForwardType a3) const {
172 if (sink_.get()) 172 if (sink_.get())
173 sink_->Run( 173 sink_->Run(
174 internal::Callback_Forward(a1), 174 internal::Forward(a1),
175 internal::Callback_Forward(a2), 175 internal::Forward(a2),
176 internal::Callback_Forward(a3)); 176 internal::Forward(a3));
177 } 177 }
178 178
179 private: 179 private:
180 template <typename Sink> 180 template <typename Sink>
181 struct Adapter : public Runnable { 181 struct Adapter : public Runnable {
182 explicit Adapter(const Sink& sink) : sink(sink) {} 182 explicit Adapter(const Sink& sink) : sink(sink) {}
183 virtual void Run( 183 virtual void Run(
184 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 184 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
185 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 185 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
186 typename internal::Callback_ParamTraits<A3>::ForwardType a3) const 186 typename internal::Callback_ParamTraits<A3>::ForwardType a3) const
187 MOJO_OVERRIDE { 187 MOJO_OVERRIDE {
188 sink.Run( 188 sink.Run(
189 internal::Callback_Forward(a1), 189 internal::Forward(a1),
190 internal::Callback_Forward(a2), 190 internal::Forward(a2),
191 internal::Callback_Forward(a3)); 191 internal::Forward(a3));
192 } 192 }
193 Sink sink; 193 Sink sink;
194 }; 194 };
195 195
196 internal::SharedPtr<Runnable> sink_; 196 internal::SharedPtr<Runnable> sink_;
197 }; 197 };
198 198
199 template <typename A1, typename A2, typename A3, typename A4> 199 template <typename A1, typename A2, typename A3, typename A4>
200 class Callback<void(A1, A2, A3, A4)> { 200 class Callback<void(A1, A2, A3, A4)> {
201 public: 201 public:
(...skipping 16 matching lines...) Expand all
218 template <typename Sink> 218 template <typename Sink>
219 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {} 219 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {}
220 220
221 void Run( 221 void Run(
222 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 222 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
223 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 223 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
224 typename internal::Callback_ParamTraits<A3>::ForwardType a3, 224 typename internal::Callback_ParamTraits<A3>::ForwardType a3,
225 typename internal::Callback_ParamTraits<A4>::ForwardType a4) const { 225 typename internal::Callback_ParamTraits<A4>::ForwardType a4) const {
226 if (sink_.get()) 226 if (sink_.get())
227 sink_->Run( 227 sink_->Run(
228 internal::Callback_Forward(a1), 228 internal::Forward(a1),
229 internal::Callback_Forward(a2), 229 internal::Forward(a2),
230 internal::Callback_Forward(a3), 230 internal::Forward(a3),
231 internal::Callback_Forward(a4)); 231 internal::Forward(a4));
232 } 232 }
233 233
234 private: 234 private:
235 template <typename Sink> 235 template <typename Sink>
236 struct Adapter : public Runnable { 236 struct Adapter : public Runnable {
237 explicit Adapter(const Sink& sink) : sink(sink) {} 237 explicit Adapter(const Sink& sink) : sink(sink) {}
238 virtual void Run( 238 virtual void Run(
239 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 239 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
240 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 240 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
241 typename internal::Callback_ParamTraits<A3>::ForwardType a3, 241 typename internal::Callback_ParamTraits<A3>::ForwardType a3,
242 typename internal::Callback_ParamTraits<A4>::ForwardType a4) const 242 typename internal::Callback_ParamTraits<A4>::ForwardType a4) const
243 MOJO_OVERRIDE { 243 MOJO_OVERRIDE {
244 sink.Run( 244 sink.Run(
245 internal::Callback_Forward(a1), 245 internal::Forward(a1),
246 internal::Callback_Forward(a2), 246 internal::Forward(a2),
247 internal::Callback_Forward(a3), 247 internal::Forward(a3),
248 internal::Callback_Forward(a4)); 248 internal::Forward(a4));
249 } 249 }
250 Sink sink; 250 Sink sink;
251 }; 251 };
252 252
253 internal::SharedPtr<Runnable> sink_; 253 internal::SharedPtr<Runnable> sink_;
254 }; 254 };
255 255
256 template <typename A1, typename A2, typename A3, typename A4, typename A5> 256 template <typename A1, typename A2, typename A3, typename A4, typename A5>
257 class Callback<void(A1, A2, A3, A4, A5)> { 257 class Callback<void(A1, A2, A3, A4, A5)> {
258 public: 258 public:
(...skipping 18 matching lines...) Expand all
277 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {} 277 Callback(const Sink& sink) : sink_(new Adapter<Sink>(sink)) {}
278 278
279 void Run( 279 void Run(
280 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 280 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
281 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 281 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
282 typename internal::Callback_ParamTraits<A3>::ForwardType a3, 282 typename internal::Callback_ParamTraits<A3>::ForwardType a3,
283 typename internal::Callback_ParamTraits<A4>::ForwardType a4, 283 typename internal::Callback_ParamTraits<A4>::ForwardType a4,
284 typename internal::Callback_ParamTraits<A5>::ForwardType a5) const { 284 typename internal::Callback_ParamTraits<A5>::ForwardType a5) const {
285 if (sink_.get()) 285 if (sink_.get())
286 sink_->Run( 286 sink_->Run(
287 internal::Callback_Forward(a1), 287 internal::Forward(a1),
288 internal::Callback_Forward(a2), 288 internal::Forward(a2),
289 internal::Callback_Forward(a3), 289 internal::Forward(a3),
290 internal::Callback_Forward(a4), 290 internal::Forward(a4),
291 internal::Callback_Forward(a5)); 291 internal::Forward(a5));
292 } 292 }
293 293
294 private: 294 private:
295 template <typename Sink> 295 template <typename Sink>
296 struct Adapter : public Runnable { 296 struct Adapter : public Runnable {
297 explicit Adapter(const Sink& sink) : sink(sink) {} 297 explicit Adapter(const Sink& sink) : sink(sink) {}
298 virtual void Run( 298 virtual void Run(
299 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 299 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
300 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 300 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
301 typename internal::Callback_ParamTraits<A3>::ForwardType a3, 301 typename internal::Callback_ParamTraits<A3>::ForwardType a3,
302 typename internal::Callback_ParamTraits<A4>::ForwardType a4, 302 typename internal::Callback_ParamTraits<A4>::ForwardType a4,
303 typename internal::Callback_ParamTraits<A5>::ForwardType a5) const 303 typename internal::Callback_ParamTraits<A5>::ForwardType a5) const
304 MOJO_OVERRIDE { 304 MOJO_OVERRIDE {
305 sink.Run( 305 sink.Run(
306 internal::Callback_Forward(a1), 306 internal::Forward(a1),
307 internal::Callback_Forward(a2), 307 internal::Forward(a2),
308 internal::Callback_Forward(a3), 308 internal::Forward(a3),
309 internal::Callback_Forward(a4), 309 internal::Forward(a4),
310 internal::Callback_Forward(a5)); 310 internal::Forward(a5));
311 } 311 }
312 Sink sink; 312 Sink sink;
313 }; 313 };
314 314
315 internal::SharedPtr<Runnable> sink_; 315 internal::SharedPtr<Runnable> sink_;
316 }; 316 };
317 317
318 template <typename A1, typename A2, typename A3, typename A4, typename A5, 318 template <typename A1, typename A2, typename A3, typename A4, typename A5,
319 typename A6> 319 typename A6>
320 class Callback<void(A1, A2, A3, A4, A5, A6)> { 320 class Callback<void(A1, A2, A3, A4, A5, A6)> {
(...skipping 21 matching lines...) Expand all
342 342
343 void Run( 343 void Run(
344 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 344 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
345 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 345 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
346 typename internal::Callback_ParamTraits<A3>::ForwardType a3, 346 typename internal::Callback_ParamTraits<A3>::ForwardType a3,
347 typename internal::Callback_ParamTraits<A4>::ForwardType a4, 347 typename internal::Callback_ParamTraits<A4>::ForwardType a4,
348 typename internal::Callback_ParamTraits<A5>::ForwardType a5, 348 typename internal::Callback_ParamTraits<A5>::ForwardType a5,
349 typename internal::Callback_ParamTraits<A6>::ForwardType a6) const { 349 typename internal::Callback_ParamTraits<A6>::ForwardType a6) const {
350 if (sink_.get()) 350 if (sink_.get())
351 sink_->Run( 351 sink_->Run(
352 internal::Callback_Forward(a1), 352 internal::Forward(a1),
353 internal::Callback_Forward(a2), 353 internal::Forward(a2),
354 internal::Callback_Forward(a3), 354 internal::Forward(a3),
355 internal::Callback_Forward(a4), 355 internal::Forward(a4),
356 internal::Callback_Forward(a5), 356 internal::Forward(a5),
357 internal::Callback_Forward(a6)); 357 internal::Forward(a6));
358 } 358 }
359 359
360 private: 360 private:
361 template <typename Sink> 361 template <typename Sink>
362 struct Adapter : public Runnable { 362 struct Adapter : public Runnable {
363 explicit Adapter(const Sink& sink) : sink(sink) {} 363 explicit Adapter(const Sink& sink) : sink(sink) {}
364 virtual void Run( 364 virtual void Run(
365 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 365 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
366 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 366 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
367 typename internal::Callback_ParamTraits<A3>::ForwardType a3, 367 typename internal::Callback_ParamTraits<A3>::ForwardType a3,
368 typename internal::Callback_ParamTraits<A4>::ForwardType a4, 368 typename internal::Callback_ParamTraits<A4>::ForwardType a4,
369 typename internal::Callback_ParamTraits<A5>::ForwardType a5, 369 typename internal::Callback_ParamTraits<A5>::ForwardType a5,
370 typename internal::Callback_ParamTraits<A6>::ForwardType a6) const 370 typename internal::Callback_ParamTraits<A6>::ForwardType a6) const
371 MOJO_OVERRIDE { 371 MOJO_OVERRIDE {
372 sink.Run( 372 sink.Run(
373 internal::Callback_Forward(a1), 373 internal::Forward(a1),
374 internal::Callback_Forward(a2), 374 internal::Forward(a2),
375 internal::Callback_Forward(a3), 375 internal::Forward(a3),
376 internal::Callback_Forward(a4), 376 internal::Forward(a4),
377 internal::Callback_Forward(a5), 377 internal::Forward(a5),
378 internal::Callback_Forward(a6)); 378 internal::Forward(a6));
379 } 379 }
380 Sink sink; 380 Sink sink;
381 }; 381 };
382 382
383 internal::SharedPtr<Runnable> sink_; 383 internal::SharedPtr<Runnable> sink_;
384 }; 384 };
385 385
386 template <typename A1, typename A2, typename A3, typename A4, typename A5, 386 template <typename A1, typename A2, typename A3, typename A4, typename A5,
387 typename A6, typename A7> 387 typename A6, typename A7>
388 class Callback<void(A1, A2, A3, A4, A5, A6, A7)> { 388 class Callback<void(A1, A2, A3, A4, A5, A6, A7)> {
(...skipping 23 matching lines...) Expand all
412 void Run( 412 void Run(
413 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 413 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
414 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 414 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
415 typename internal::Callback_ParamTraits<A3>::ForwardType a3, 415 typename internal::Callback_ParamTraits<A3>::ForwardType a3,
416 typename internal::Callback_ParamTraits<A4>::ForwardType a4, 416 typename internal::Callback_ParamTraits<A4>::ForwardType a4,
417 typename internal::Callback_ParamTraits<A5>::ForwardType a5, 417 typename internal::Callback_ParamTraits<A5>::ForwardType a5,
418 typename internal::Callback_ParamTraits<A6>::ForwardType a6, 418 typename internal::Callback_ParamTraits<A6>::ForwardType a6,
419 typename internal::Callback_ParamTraits<A7>::ForwardType a7) const { 419 typename internal::Callback_ParamTraits<A7>::ForwardType a7) const {
420 if (sink_.get()) 420 if (sink_.get())
421 sink_->Run( 421 sink_->Run(
422 internal::Callback_Forward(a1), 422 internal::Forward(a1),
423 internal::Callback_Forward(a2), 423 internal::Forward(a2),
424 internal::Callback_Forward(a3), 424 internal::Forward(a3),
425 internal::Callback_Forward(a4), 425 internal::Forward(a4),
426 internal::Callback_Forward(a5), 426 internal::Forward(a5),
427 internal::Callback_Forward(a6), 427 internal::Forward(a6),
428 internal::Callback_Forward(a7)); 428 internal::Forward(a7));
429 } 429 }
430 430
431 private: 431 private:
432 template <typename Sink> 432 template <typename Sink>
433 struct Adapter : public Runnable { 433 struct Adapter : public Runnable {
434 explicit Adapter(const Sink& sink) : sink(sink) {} 434 explicit Adapter(const Sink& sink) : sink(sink) {}
435 virtual void Run( 435 virtual void Run(
436 typename internal::Callback_ParamTraits<A1>::ForwardType a1, 436 typename internal::Callback_ParamTraits<A1>::ForwardType a1,
437 typename internal::Callback_ParamTraits<A2>::ForwardType a2, 437 typename internal::Callback_ParamTraits<A2>::ForwardType a2,
438 typename internal::Callback_ParamTraits<A3>::ForwardType a3, 438 typename internal::Callback_ParamTraits<A3>::ForwardType a3,
439 typename internal::Callback_ParamTraits<A4>::ForwardType a4, 439 typename internal::Callback_ParamTraits<A4>::ForwardType a4,
440 typename internal::Callback_ParamTraits<A5>::ForwardType a5, 440 typename internal::Callback_ParamTraits<A5>::ForwardType a5,
441 typename internal::Callback_ParamTraits<A6>::ForwardType a6, 441 typename internal::Callback_ParamTraits<A6>::ForwardType a6,
442 typename internal::Callback_ParamTraits<A7>::ForwardType a7) const 442 typename internal::Callback_ParamTraits<A7>::ForwardType a7) const
443 MOJO_OVERRIDE { 443 MOJO_OVERRIDE {
444 sink.Run( 444 sink.Run(
445 internal::Callback_Forward(a1), 445 internal::Forward(a1),
446 internal::Callback_Forward(a2), 446 internal::Forward(a2),
447 internal::Callback_Forward(a3), 447 internal::Forward(a3),
448 internal::Callback_Forward(a4), 448 internal::Forward(a4),
449 internal::Callback_Forward(a5), 449 internal::Forward(a5),
450 internal::Callback_Forward(a6), 450 internal::Forward(a6),
451 internal::Callback_Forward(a7)); 451 internal::Forward(a7));
452 } 452 }
453 Sink sink; 453 Sink sink;
454 }; 454 };
455 455
456 internal::SharedPtr<Runnable> sink_; 456 internal::SharedPtr<Runnable> sink_;
457 }; 457 };
458 458
459 } // namespace mojo 459 } // namespace mojo
460 460
461 #endif // MOJO_PUBLIC_CPP_BINDINGS_CALLBACK_H_ 461 #endif // MOJO_PUBLIC_CPP_BINDINGS_CALLBACK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698