| OLD | NEW |
| 1 // This file was GENERATED by command: | 1 // This file was GENERATED by command: |
| 2 // pump.py bind.h.pump | 2 // pump.py bind.h.pump |
| 3 // DO NOT EDIT BY HAND!!! | 3 // DO NOT EDIT BY HAND!!! |
| 4 | 4 |
| 5 /* | 5 /* |
| 6 * Copyright 2012 The WebRTC Project Authors. All rights reserved. | 6 * Copyright 2012 The WebRTC Project Authors. All rights reserved. |
| 7 * | 7 * |
| 8 * Use of this source code is governed by a BSD-style license | 8 * Use of this source code is governed by a BSD-style license |
| 9 * that can be found in the LICENSE file in the root of the source | 9 * that can be found in the LICENSE file in the root of the source |
| 10 * tree. An additional intellectual property rights grant can be found | 10 * tree. An additional intellectual property rights grant can be found |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 | 121 |
| 122 // PointerType<T>::type will be scoped_refptr<T> for ref counted types, and T* | 122 // PointerType<T>::type will be scoped_refptr<T> for ref counted types, and T* |
| 123 // otherwise. | 123 // otherwise. |
| 124 template <class T> | 124 template <class T> |
| 125 struct PointerType { | 125 struct PointerType { |
| 126 typedef typename TernaryTypeOperator<IsRefCounted<T>::value, | 126 typedef typename TernaryTypeOperator<IsRefCounted<T>::value, |
| 127 scoped_refptr<T>, | 127 scoped_refptr<T>, |
| 128 T*>::type type; | 128 T*>::type type; |
| 129 }; | 129 }; |
| 130 | 130 |
| 131 // RemoveScopedPtrRef will capture scoped_refptr by-value instead of |
| 132 // by-reference. |
| 133 template <class T> struct RemoveScopedPtrRef { typedef T type; }; |
| 134 template <class T> |
| 135 struct RemoveScopedPtrRef<const scoped_refptr<T>&> { |
| 136 typedef scoped_refptr<T> type; |
| 137 }; |
| 138 template <class T> |
| 139 struct RemoveScopedPtrRef<scoped_refptr<T>&> { |
| 140 typedef scoped_refptr<T> type; |
| 141 }; |
| 142 |
| 131 } // namespace detail | 143 } // namespace detail |
| 132 | 144 |
| 133 template <class ObjectT, class MethodT, class R> | 145 template <class ObjectT, class MethodT, class R> |
| 134 class MethodFunctor0 { | 146 class MethodFunctor0 { |
| 135 public: | 147 public: |
| 136 MethodFunctor0(MethodT method, ObjectT* object) | 148 MethodFunctor0(MethodT method, ObjectT* object) |
| 137 : method_(method), object_(object) {} | 149 : method_(method), object_(object) {} |
| 138 R operator()() const { | 150 R operator()() const { |
| 139 return (object_->*method_)(); } | 151 return (object_->*method_)(); } |
| 140 private: | 152 private: |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 public: | 213 public: |
| 202 MethodFunctor1(MethodT method, ObjectT* object, | 214 MethodFunctor1(MethodT method, ObjectT* object, |
| 203 P1 p1) | 215 P1 p1) |
| 204 : method_(method), object_(object), | 216 : method_(method), object_(object), |
| 205 p1_(p1) {} | 217 p1_(p1) {} |
| 206 R operator()() const { | 218 R operator()() const { |
| 207 return (object_->*method_)(p1_); } | 219 return (object_->*method_)(p1_); } |
| 208 private: | 220 private: |
| 209 MethodT method_; | 221 MethodT method_; |
| 210 typename detail::PointerType<ObjectT>::type object_; | 222 typename detail::PointerType<ObjectT>::type object_; |
| 211 P1 p1_; | 223 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 212 }; | 224 }; |
| 213 | 225 |
| 214 template <class FunctorT, class R, | 226 template <class FunctorT, class R, |
| 215 class P1> | 227 class P1> |
| 216 class Functor1 { | 228 class Functor1 { |
| 217 public: | 229 public: |
| 218 Functor1(const FunctorT& functor, P1 p1) | 230 Functor1(const FunctorT& functor, P1 p1) |
| 219 : functor_(functor), | 231 : functor_(functor), |
| 220 p1_(p1) {} | 232 p1_(p1) {} |
| 221 R operator()() const { | 233 R operator()() const { |
| 222 return functor_(p1_); } | 234 return functor_(p1_); } |
| 223 private: | 235 private: |
| 224 FunctorT functor_; | 236 FunctorT functor_; |
| 225 P1 p1_; | 237 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 226 }; | 238 }; |
| 227 | 239 |
| 228 | 240 |
| 229 #define FP_T(x) R (ObjectT::*x)(P1) | 241 #define FP_T(x) R (ObjectT::*x)(P1) |
| 230 | 242 |
| 231 template <class ObjectT, class R, | 243 template <class ObjectT, class R, |
| 232 class P1> | 244 class P1> |
| 233 MethodFunctor1<ObjectT, FP_T(NONAME), R, P1> | 245 MethodFunctor1<ObjectT, FP_T(NONAME), R, P1> |
| 234 Bind(FP_T(method), ObjectT* object, | 246 Bind(FP_T(method), ObjectT* object, |
| 235 typename detail::identity<P1>::type p1) { | 247 typename detail::identity<P1>::type p1) { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 P1 p1, | 296 P1 p1, |
| 285 P2 p2) | 297 P2 p2) |
| 286 : method_(method), object_(object), | 298 : method_(method), object_(object), |
| 287 p1_(p1), | 299 p1_(p1), |
| 288 p2_(p2) {} | 300 p2_(p2) {} |
| 289 R operator()() const { | 301 R operator()() const { |
| 290 return (object_->*method_)(p1_, p2_); } | 302 return (object_->*method_)(p1_, p2_); } |
| 291 private: | 303 private: |
| 292 MethodT method_; | 304 MethodT method_; |
| 293 typename detail::PointerType<ObjectT>::type object_; | 305 typename detail::PointerType<ObjectT>::type object_; |
| 294 P1 p1_; | 306 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 295 P2 p2_; | 307 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 296 }; | 308 }; |
| 297 | 309 |
| 298 template <class FunctorT, class R, | 310 template <class FunctorT, class R, |
| 299 class P1, | 311 class P1, |
| 300 class P2> | 312 class P2> |
| 301 class Functor2 { | 313 class Functor2 { |
| 302 public: | 314 public: |
| 303 Functor2(const FunctorT& functor, P1 p1, P2 p2) | 315 Functor2(const FunctorT& functor, P1 p1, P2 p2) |
| 304 : functor_(functor), | 316 : functor_(functor), |
| 305 p1_(p1), | 317 p1_(p1), |
| 306 p2_(p2) {} | 318 p2_(p2) {} |
| 307 R operator()() const { | 319 R operator()() const { |
| 308 return functor_(p1_, p2_); } | 320 return functor_(p1_, p2_); } |
| 309 private: | 321 private: |
| 310 FunctorT functor_; | 322 FunctorT functor_; |
| 311 P1 p1_; | 323 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 312 P2 p2_; | 324 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 313 }; | 325 }; |
| 314 | 326 |
| 315 | 327 |
| 316 #define FP_T(x) R (ObjectT::*x)(P1, P2) | 328 #define FP_T(x) R (ObjectT::*x)(P1, P2) |
| 317 | 329 |
| 318 template <class ObjectT, class R, | 330 template <class ObjectT, class R, |
| 319 class P1, | 331 class P1, |
| 320 class P2> | 332 class P2> |
| 321 MethodFunctor2<ObjectT, FP_T(NONAME), R, P1, P2> | 333 MethodFunctor2<ObjectT, FP_T(NONAME), R, P1, P2> |
| 322 Bind(FP_T(method), ObjectT* object, | 334 Bind(FP_T(method), ObjectT* object, |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 P3 p3) | 394 P3 p3) |
| 383 : method_(method), object_(object), | 395 : method_(method), object_(object), |
| 384 p1_(p1), | 396 p1_(p1), |
| 385 p2_(p2), | 397 p2_(p2), |
| 386 p3_(p3) {} | 398 p3_(p3) {} |
| 387 R operator()() const { | 399 R operator()() const { |
| 388 return (object_->*method_)(p1_, p2_, p3_); } | 400 return (object_->*method_)(p1_, p2_, p3_); } |
| 389 private: | 401 private: |
| 390 MethodT method_; | 402 MethodT method_; |
| 391 typename detail::PointerType<ObjectT>::type object_; | 403 typename detail::PointerType<ObjectT>::type object_; |
| 392 P1 p1_; | 404 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 393 P2 p2_; | 405 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 394 P3 p3_; | 406 typename detail::RemoveScopedPtrRef<P3>::type p3_; |
| 395 }; | 407 }; |
| 396 | 408 |
| 397 template <class FunctorT, class R, | 409 template <class FunctorT, class R, |
| 398 class P1, | 410 class P1, |
| 399 class P2, | 411 class P2, |
| 400 class P3> | 412 class P3> |
| 401 class Functor3 { | 413 class Functor3 { |
| 402 public: | 414 public: |
| 403 Functor3(const FunctorT& functor, P1 p1, P2 p2, P3 p3) | 415 Functor3(const FunctorT& functor, P1 p1, P2 p2, P3 p3) |
| 404 : functor_(functor), | 416 : functor_(functor), |
| 405 p1_(p1), | 417 p1_(p1), |
| 406 p2_(p2), | 418 p2_(p2), |
| 407 p3_(p3) {} | 419 p3_(p3) {} |
| 408 R operator()() const { | 420 R operator()() const { |
| 409 return functor_(p1_, p2_, p3_); } | 421 return functor_(p1_, p2_, p3_); } |
| 410 private: | 422 private: |
| 411 FunctorT functor_; | 423 FunctorT functor_; |
| 412 P1 p1_; | 424 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 413 P2 p2_; | 425 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 414 P3 p3_; | 426 typename detail::RemoveScopedPtrRef<P3>::type p3_; |
| 415 }; | 427 }; |
| 416 | 428 |
| 417 | 429 |
| 418 #define FP_T(x) R (ObjectT::*x)(P1, P2, P3) | 430 #define FP_T(x) R (ObjectT::*x)(P1, P2, P3) |
| 419 | 431 |
| 420 template <class ObjectT, class R, | 432 template <class ObjectT, class R, |
| 421 class P1, | 433 class P1, |
| 422 class P2, | 434 class P2, |
| 423 class P3> | 435 class P3> |
| 424 MethodFunctor3<ObjectT, FP_T(NONAME), R, P1, P2, P3> | 436 MethodFunctor3<ObjectT, FP_T(NONAME), R, P1, P2, P3> |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 : method_(method), object_(object), | 507 : method_(method), object_(object), |
| 496 p1_(p1), | 508 p1_(p1), |
| 497 p2_(p2), | 509 p2_(p2), |
| 498 p3_(p3), | 510 p3_(p3), |
| 499 p4_(p4) {} | 511 p4_(p4) {} |
| 500 R operator()() const { | 512 R operator()() const { |
| 501 return (object_->*method_)(p1_, p2_, p3_, p4_); } | 513 return (object_->*method_)(p1_, p2_, p3_, p4_); } |
| 502 private: | 514 private: |
| 503 MethodT method_; | 515 MethodT method_; |
| 504 typename detail::PointerType<ObjectT>::type object_; | 516 typename detail::PointerType<ObjectT>::type object_; |
| 505 P1 p1_; | 517 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 506 P2 p2_; | 518 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 507 P3 p3_; | 519 typename detail::RemoveScopedPtrRef<P3>::type p3_; |
| 508 P4 p4_; | 520 typename detail::RemoveScopedPtrRef<P4>::type p4_; |
| 509 }; | 521 }; |
| 510 | 522 |
| 511 template <class FunctorT, class R, | 523 template <class FunctorT, class R, |
| 512 class P1, | 524 class P1, |
| 513 class P2, | 525 class P2, |
| 514 class P3, | 526 class P3, |
| 515 class P4> | 527 class P4> |
| 516 class Functor4 { | 528 class Functor4 { |
| 517 public: | 529 public: |
| 518 Functor4(const FunctorT& functor, P1 p1, P2 p2, P3 p3, P4 p4) | 530 Functor4(const FunctorT& functor, P1 p1, P2 p2, P3 p3, P4 p4) |
| 519 : functor_(functor), | 531 : functor_(functor), |
| 520 p1_(p1), | 532 p1_(p1), |
| 521 p2_(p2), | 533 p2_(p2), |
| 522 p3_(p3), | 534 p3_(p3), |
| 523 p4_(p4) {} | 535 p4_(p4) {} |
| 524 R operator()() const { | 536 R operator()() const { |
| 525 return functor_(p1_, p2_, p3_, p4_); } | 537 return functor_(p1_, p2_, p3_, p4_); } |
| 526 private: | 538 private: |
| 527 FunctorT functor_; | 539 FunctorT functor_; |
| 528 P1 p1_; | 540 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 529 P2 p2_; | 541 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 530 P3 p3_; | 542 typename detail::RemoveScopedPtrRef<P3>::type p3_; |
| 531 P4 p4_; | 543 typename detail::RemoveScopedPtrRef<P4>::type p4_; |
| 532 }; | 544 }; |
| 533 | 545 |
| 534 | 546 |
| 535 #define FP_T(x) R (ObjectT::*x)(P1, P2, P3, P4) | 547 #define FP_T(x) R (ObjectT::*x)(P1, P2, P3, P4) |
| 536 | 548 |
| 537 template <class ObjectT, class R, | 549 template <class ObjectT, class R, |
| 538 class P1, | 550 class P1, |
| 539 class P2, | 551 class P2, |
| 540 class P3, | 552 class P3, |
| 541 class P4> | 553 class P4> |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 623 p1_(p1), | 635 p1_(p1), |
| 624 p2_(p2), | 636 p2_(p2), |
| 625 p3_(p3), | 637 p3_(p3), |
| 626 p4_(p4), | 638 p4_(p4), |
| 627 p5_(p5) {} | 639 p5_(p5) {} |
| 628 R operator()() const { | 640 R operator()() const { |
| 629 return (object_->*method_)(p1_, p2_, p3_, p4_, p5_); } | 641 return (object_->*method_)(p1_, p2_, p3_, p4_, p5_); } |
| 630 private: | 642 private: |
| 631 MethodT method_; | 643 MethodT method_; |
| 632 typename detail::PointerType<ObjectT>::type object_; | 644 typename detail::PointerType<ObjectT>::type object_; |
| 633 P1 p1_; | 645 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 634 P2 p2_; | 646 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 635 P3 p3_; | 647 typename detail::RemoveScopedPtrRef<P3>::type p3_; |
| 636 P4 p4_; | 648 typename detail::RemoveScopedPtrRef<P4>::type p4_; |
| 637 P5 p5_; | 649 typename detail::RemoveScopedPtrRef<P5>::type p5_; |
| 638 }; | 650 }; |
| 639 | 651 |
| 640 template <class FunctorT, class R, | 652 template <class FunctorT, class R, |
| 641 class P1, | 653 class P1, |
| 642 class P2, | 654 class P2, |
| 643 class P3, | 655 class P3, |
| 644 class P4, | 656 class P4, |
| 645 class P5> | 657 class P5> |
| 646 class Functor5 { | 658 class Functor5 { |
| 647 public: | 659 public: |
| 648 Functor5(const FunctorT& functor, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) | 660 Functor5(const FunctorT& functor, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) |
| 649 : functor_(functor), | 661 : functor_(functor), |
| 650 p1_(p1), | 662 p1_(p1), |
| 651 p2_(p2), | 663 p2_(p2), |
| 652 p3_(p3), | 664 p3_(p3), |
| 653 p4_(p4), | 665 p4_(p4), |
| 654 p5_(p5) {} | 666 p5_(p5) {} |
| 655 R operator()() const { | 667 R operator()() const { |
| 656 return functor_(p1_, p2_, p3_, p4_, p5_); } | 668 return functor_(p1_, p2_, p3_, p4_, p5_); } |
| 657 private: | 669 private: |
| 658 FunctorT functor_; | 670 FunctorT functor_; |
| 659 P1 p1_; | 671 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 660 P2 p2_; | 672 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 661 P3 p3_; | 673 typename detail::RemoveScopedPtrRef<P3>::type p3_; |
| 662 P4 p4_; | 674 typename detail::RemoveScopedPtrRef<P4>::type p4_; |
| 663 P5 p5_; | 675 typename detail::RemoveScopedPtrRef<P5>::type p5_; |
| 664 }; | 676 }; |
| 665 | 677 |
| 666 | 678 |
| 667 #define FP_T(x) R (ObjectT::*x)(P1, P2, P3, P4, P5) | 679 #define FP_T(x) R (ObjectT::*x)(P1, P2, P3, P4, P5) |
| 668 | 680 |
| 669 template <class ObjectT, class R, | 681 template <class ObjectT, class R, |
| 670 class P1, | 682 class P1, |
| 671 class P2, | 683 class P2, |
| 672 class P3, | 684 class P3, |
| 673 class P4, | 685 class P4, |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 766 p2_(p2), | 778 p2_(p2), |
| 767 p3_(p3), | 779 p3_(p3), |
| 768 p4_(p4), | 780 p4_(p4), |
| 769 p5_(p5), | 781 p5_(p5), |
| 770 p6_(p6) {} | 782 p6_(p6) {} |
| 771 R operator()() const { | 783 R operator()() const { |
| 772 return (object_->*method_)(p1_, p2_, p3_, p4_, p5_, p6_); } | 784 return (object_->*method_)(p1_, p2_, p3_, p4_, p5_, p6_); } |
| 773 private: | 785 private: |
| 774 MethodT method_; | 786 MethodT method_; |
| 775 typename detail::PointerType<ObjectT>::type object_; | 787 typename detail::PointerType<ObjectT>::type object_; |
| 776 P1 p1_; | 788 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 777 P2 p2_; | 789 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 778 P3 p3_; | 790 typename detail::RemoveScopedPtrRef<P3>::type p3_; |
| 779 P4 p4_; | 791 typename detail::RemoveScopedPtrRef<P4>::type p4_; |
| 780 P5 p5_; | 792 typename detail::RemoveScopedPtrRef<P5>::type p5_; |
| 781 P6 p6_; | 793 typename detail::RemoveScopedPtrRef<P6>::type p6_; |
| 782 }; | 794 }; |
| 783 | 795 |
| 784 template <class FunctorT, class R, | 796 template <class FunctorT, class R, |
| 785 class P1, | 797 class P1, |
| 786 class P2, | 798 class P2, |
| 787 class P3, | 799 class P3, |
| 788 class P4, | 800 class P4, |
| 789 class P5, | 801 class P5, |
| 790 class P6> | 802 class P6> |
| 791 class Functor6 { | 803 class Functor6 { |
| 792 public: | 804 public: |
| 793 Functor6(const FunctorT& functor, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) | 805 Functor6(const FunctorT& functor, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) |
| 794 : functor_(functor), | 806 : functor_(functor), |
| 795 p1_(p1), | 807 p1_(p1), |
| 796 p2_(p2), | 808 p2_(p2), |
| 797 p3_(p3), | 809 p3_(p3), |
| 798 p4_(p4), | 810 p4_(p4), |
| 799 p5_(p5), | 811 p5_(p5), |
| 800 p6_(p6) {} | 812 p6_(p6) {} |
| 801 R operator()() const { | 813 R operator()() const { |
| 802 return functor_(p1_, p2_, p3_, p4_, p5_, p6_); } | 814 return functor_(p1_, p2_, p3_, p4_, p5_, p6_); } |
| 803 private: | 815 private: |
| 804 FunctorT functor_; | 816 FunctorT functor_; |
| 805 P1 p1_; | 817 typename detail::RemoveScopedPtrRef<P1>::type p1_; |
| 806 P2 p2_; | 818 typename detail::RemoveScopedPtrRef<P2>::type p2_; |
| 807 P3 p3_; | 819 typename detail::RemoveScopedPtrRef<P3>::type p3_; |
| 808 P4 p4_; | 820 typename detail::RemoveScopedPtrRef<P4>::type p4_; |
| 809 P5 p5_; | 821 typename detail::RemoveScopedPtrRef<P5>::type p5_; |
| 810 P6 p6_; | 822 typename detail::RemoveScopedPtrRef<P6>::type p6_; |
| 811 }; | 823 }; |
| 812 | 824 |
| 813 | 825 |
| 814 #define FP_T(x) R (ObjectT::*x)(P1, P2, P3, P4, P5, P6) | 826 #define FP_T(x) R (ObjectT::*x)(P1, P2, P3, P4, P5, P6) |
| 815 | 827 |
| 816 template <class ObjectT, class R, | 828 template <class ObjectT, class R, |
| 817 class P1, | 829 class P1, |
| 818 class P2, | 830 class P2, |
| 819 class P3, | 831 class P3, |
| 820 class P4, | 832 class P4, |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 898 function, p1, p2, p3, p4, p5, p6); | 910 function, p1, p2, p3, p4, p5, p6); |
| 899 } | 911 } |
| 900 | 912 |
| 901 #undef FP_T | 913 #undef FP_T |
| 902 | 914 |
| 903 } // namespace rtc | 915 } // namespace rtc |
| 904 | 916 |
| 905 #undef NONAME | 917 #undef NONAME |
| 906 | 918 |
| 907 #endif // WEBRTC_BASE_BIND_H_ | 919 #endif // WEBRTC_BASE_BIND_H_ |
| OLD | NEW |