00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef OR_TOOLS_BASE_CALLBACK_H_
00015 #define OR_TOOLS_BASE_CALLBACK_H_
00016
00017 #include "base/logging.h"
00018
00019 namespace operations_research {
00020
00021 struct CallbackUtils_ {
00022 static void FailIsRepeatable(const char* name);
00023 };
00024
00025 }
00026
00027 using operations_research::CallbackUtils_;
00028
00029
00030
00031 class Closure {
00032 public:
00033 virtual ~Closure() { }
00034 virtual bool IsRepeatable() const { return false; }
00035 virtual void CheckIsRepeatable() const { }
00036 virtual void Run() = 0;
00037 };
00038
00039 template <class R>
00040 class ResultCallback {
00041 public:
00042 virtual ~ResultCallback() { }
00043 virtual bool IsRepeatable() const { return false; }
00044 virtual void CheckIsRepeatable() const { }
00045 virtual R Run() = 0;
00046 };
00047
00048 template <class A1>
00049 class Callback1 {
00050 public:
00051 virtual ~Callback1() { }
00052 virtual bool IsRepeatable() const { return false; }
00053 virtual void CheckIsRepeatable() const { }
00054 virtual void Run(A1) = 0;
00055 };
00056
00057 template <class R, class A1>
00058 class ResultCallback1 {
00059 public:
00060 virtual ~ResultCallback1() { }
00061 virtual bool IsRepeatable() const { return false; }
00062 virtual void CheckIsRepeatable() const { }
00063 virtual R Run(A1) = 0;
00064 };
00065
00066 template <class A1,class A2>
00067 class Callback2 {
00068 public:
00069 virtual ~Callback2() { }
00070 virtual bool IsRepeatable() const { return false; }
00071 virtual void CheckIsRepeatable() const { }
00072 virtual void Run(A1,A2) = 0;
00073 };
00074
00075 template <class R, class A1,class A2>
00076 class ResultCallback2 {
00077 public:
00078 virtual ~ResultCallback2() { }
00079 virtual bool IsRepeatable() const { return false; }
00080 virtual void CheckIsRepeatable() const { }
00081 virtual R Run(A1,A2) = 0;
00082 };
00083
00084 template <class A1,class A2,class A3>
00085 class Callback3 {
00086 public:
00087 virtual ~Callback3() { }
00088 virtual bool IsRepeatable() const { return false; }
00089 virtual void CheckIsRepeatable() const { }
00090 virtual void Run(A1,A2,A3) = 0;
00091 };
00092
00093 template <class R, class A1,class A2,class A3>
00094 class ResultCallback3 {
00095 public:
00096 virtual ~ResultCallback3() { }
00097 virtual bool IsRepeatable() const { return false; }
00098 virtual void CheckIsRepeatable() const { }
00099 virtual R Run(A1,A2,A3) = 0;
00100 };
00101
00102 template <class A1,class A2,class A3,class A4>
00103 class Callback4 {
00104 public:
00105 virtual ~Callback4() { }
00106 virtual bool IsRepeatable() const { return false; }
00107 virtual void CheckIsRepeatable() const { }
00108 virtual void Run(A1,A2,A3,A4) = 0;
00109 };
00110
00111 template <class R, class A1,class A2,class A3,class A4>
00112 class ResultCallback4 {
00113 public:
00114 virtual ~ResultCallback4() { }
00115 virtual bool IsRepeatable() const { return false; }
00116 virtual void CheckIsRepeatable() const { }
00117 virtual R Run(A1,A2,A3,A4) = 0;
00118 };
00119
00120 template <class A1,class A2,class A3,class A4,class A5>
00121 class Callback5 {
00122 public:
00123 virtual ~Callback5() { }
00124 virtual bool IsRepeatable() const { return false; }
00125 virtual void CheckIsRepeatable() const { }
00126 virtual void Run(A1,A2,A3,A4,A5) = 0;
00127 };
00128
00129 template <class R, class A1,class A2,class A3,class A4,class A5>
00130 class ResultCallback5 {
00131 public:
00132 virtual ~ResultCallback5() { }
00133 virtual bool IsRepeatable() const { return false; }
00134 virtual void CheckIsRepeatable() const { }
00135 virtual R Run(A1,A2,A3,A4,A5) = 0;
00136 };
00137
00138
00139 namespace {
00140 template <bool del, class R, class T>
00141 class _ConstMemberResultCallback_0_0 : public ResultCallback<R> {
00142 public:
00143 typedef ResultCallback<R> base;
00144 typedef R (T::*MemberSignature)() const;
00145
00146 private:
00147 const T* object_;
00148 MemberSignature member_;
00149
00150 public:
00151 inline _ConstMemberResultCallback_0_0(const T* object, MemberSignature member)
00152 : ResultCallback<R>(),
00153 object_(object),
00154 member_(member) { }
00155
00156 virtual bool IsRepeatable() const {
00157 return !del;
00158 }
00159
00160 virtual void CheckIsRepeatable() const {
00161 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00162 }
00163
00164 virtual R Run() {
00165 if (!del) {
00166 R result = (object_->*member_)();
00167 return result;
00168 } else {
00169 R result = (object_->*member_)();
00170
00171 member_ = NULL;
00172 delete this;
00173 return result;
00174 }
00175 }
00176 };
00177
00178 template <bool del, class T>
00179 class _ConstMemberResultCallback_0_0<del, void, T> : public Closure {
00180 public:
00181 typedef Closure base;
00182 typedef void (T::*MemberSignature)() const;
00183
00184 private:
00185 const T* object_;
00186 MemberSignature member_;
00187
00188 public:
00189 inline _ConstMemberResultCallback_0_0(const T* object, MemberSignature member)
00190 : Closure(),
00191 object_(object),
00192 member_(member) { }
00193
00194 virtual bool IsRepeatable() const {
00195 return !del;
00196 }
00197
00198 virtual void CheckIsRepeatable() const {
00199 if (del) CallbackUtils_::FailIsRepeatable("Closure");
00200 }
00201
00202 virtual void Run() {
00203 if (!del) {
00204 (object_->*member_)();
00205 } else {
00206 (object_->*member_)();
00207
00208 member_ = NULL;
00209 delete this;
00210 }
00211 }
00212 };
00213
00214 #ifndef SWIG
00215 template <class T1, class T2, class R>
00216 inline typename _ConstMemberResultCallback_0_0<true,R,T1>::base*
00217 NewCallback(const T1* obj, R (T2::*member)() const) {
00218 return new _ConstMemberResultCallback_0_0<true,R,T1>(obj, member);
00219 }
00220 #endif
00221
00222 #ifndef SWIG
00223 template <class T1, class T2, class R>
00224 inline typename _ConstMemberResultCallback_0_0<false,R,T1>::base*
00225 NewPermanentCallback(const T1* obj, R (T2::*member)() const) {
00226 return new _ConstMemberResultCallback_0_0<false,R,T1>(obj, member);
00227 }
00228 #endif
00229
00230 template <bool del, class R, class T>
00231 class _MemberResultCallback_0_0 : public ResultCallback<R> {
00232 public:
00233 typedef ResultCallback<R> base;
00234 typedef R (T::*MemberSignature)() ;
00235
00236 private:
00237 T* object_;
00238 MemberSignature member_;
00239
00240 public:
00241 inline _MemberResultCallback_0_0( T* object, MemberSignature member)
00242 : ResultCallback<R>(),
00243 object_(object),
00244 member_(member) { }
00245
00246 virtual bool IsRepeatable() const {
00247 return !del;
00248 }
00249
00250 virtual void CheckIsRepeatable() const {
00251 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00252 }
00253
00254 virtual R Run() {
00255 if (!del) {
00256 R result = (object_->*member_)();
00257 return result;
00258 } else {
00259 R result = (object_->*member_)();
00260
00261 member_ = NULL;
00262 delete this;
00263 return result;
00264 }
00265 }
00266 };
00267
00268 template <bool del, class T>
00269 class _MemberResultCallback_0_0<del, void, T> : public Closure {
00270 public:
00271 typedef Closure base;
00272 typedef void (T::*MemberSignature)() ;
00273
00274 private:
00275 T* object_;
00276 MemberSignature member_;
00277
00278 public:
00279 inline _MemberResultCallback_0_0( T* object, MemberSignature member)
00280 : Closure(),
00281 object_(object),
00282 member_(member) { }
00283
00284 virtual bool IsRepeatable() const {
00285 return !del;
00286 }
00287
00288 virtual void CheckIsRepeatable() const {
00289 if (del) CallbackUtils_::FailIsRepeatable("Closure");
00290 }
00291
00292 virtual void Run() {
00293 if (!del) {
00294 (object_->*member_)();
00295 } else {
00296 (object_->*member_)();
00297
00298 member_ = NULL;
00299 delete this;
00300 }
00301 }
00302 };
00303
00304 #ifndef SWIG
00305 template <class T1, class T2, class R>
00306 inline typename _MemberResultCallback_0_0<true,R,T1>::base*
00307 NewCallback( T1* obj, R (T2::*member)() ) {
00308 return new _MemberResultCallback_0_0<true,R,T1>(obj, member);
00309 }
00310 #endif
00311
00312 #ifndef SWIG
00313 template <class T1, class T2, class R>
00314 inline typename _MemberResultCallback_0_0<false,R,T1>::base*
00315 NewPermanentCallback( T1* obj, R (T2::*member)() ) {
00316 return new _MemberResultCallback_0_0<false,R,T1>(obj, member);
00317 }
00318 #endif
00319
00320 template <bool del, class R>
00321 class _FunctionResultCallback_0_0 : public ResultCallback<R> {
00322 public:
00323 typedef ResultCallback<R> base;
00324 typedef R (*FunctionSignature)();
00325
00326 private:
00327 FunctionSignature function_;
00328
00329 public:
00330 inline _FunctionResultCallback_0_0(FunctionSignature function)
00331 : ResultCallback<R>(),
00332 function_(function) { }
00333
00334 virtual bool IsRepeatable() const {
00335 return !del;
00336 }
00337
00338 virtual void CheckIsRepeatable() const {
00339 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00340 }
00341
00342 virtual R Run() {
00343 if (!del) {
00344 R result = (*function_)();
00345 return result;
00346 } else {
00347 R result = (*function_)();
00348
00349 function_ = NULL;
00350 delete this;
00351 return result;
00352 }
00353 }
00354 };
00355
00356 template <bool del>
00357 class _FunctionResultCallback_0_0<del, void> : public Closure {
00358 public:
00359 typedef Closure base;
00360 typedef void (*FunctionSignature)();
00361
00362 private:
00363 FunctionSignature function_;
00364
00365 public:
00366 inline _FunctionResultCallback_0_0(FunctionSignature function)
00367 : Closure(),
00368 function_(function) { }
00369
00370 virtual bool IsRepeatable() const {
00371 return !del;
00372 }
00373
00374 virtual void CheckIsRepeatable() const {
00375 if (del) CallbackUtils_::FailIsRepeatable("Closure");
00376 }
00377
00378 virtual void Run() {
00379 if (!del) {
00380 (*function_)();
00381 } else {
00382 (*function_)();
00383
00384 function_ = NULL;
00385 delete this;
00386 }
00387 }
00388 };
00389 }
00390
00391 template <class R>
00392 inline typename _FunctionResultCallback_0_0<true,R>::base*
00393 NewCallback(R (*function)()) {
00394 return new _FunctionResultCallback_0_0<true,R>(function);
00395 }
00396
00397 template <class R>
00398 inline typename _FunctionResultCallback_0_0<false,R>::base*
00399 NewPermanentCallback(R (*function)()) {
00400 return new _FunctionResultCallback_0_0<false,R>(function);
00401 }
00402
00403 namespace {
00404 template <bool del, class R, class T, class P1>
00405 class _ConstMemberResultCallback_1_0 : public ResultCallback<R> {
00406 public:
00407 typedef ResultCallback<R> base;
00408 typedef R (T::*MemberSignature)(P1) const;
00409
00410 private:
00411 const T* object_;
00412 MemberSignature member_;
00413 P1 p1_;
00414
00415 public:
00416 inline _ConstMemberResultCallback_1_0(const T* object, MemberSignature member, P1 p1)
00417 : ResultCallback<R>(),
00418 object_(object),
00419 member_(member), p1_(p1) { }
00420
00421 virtual bool IsRepeatable() const {
00422 return !del;
00423 }
00424
00425 virtual void CheckIsRepeatable() const {
00426 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00427 }
00428
00429 virtual R Run() {
00430 if (!del) {
00431 R result = (object_->*member_)(p1_);
00432 return result;
00433 } else {
00434 R result = (object_->*member_)(p1_);
00435
00436 member_ = NULL;
00437 delete this;
00438 return result;
00439 }
00440 }
00441 };
00442
00443 template <bool del, class T, class P1>
00444 class _ConstMemberResultCallback_1_0<del, void, T, P1> : public Closure {
00445 public:
00446 typedef Closure base;
00447 typedef void (T::*MemberSignature)(P1) const;
00448
00449 private:
00450 const T* object_;
00451 MemberSignature member_;
00452 P1 p1_;
00453
00454 public:
00455 inline _ConstMemberResultCallback_1_0(const T* object, MemberSignature member, P1 p1)
00456 : Closure(),
00457 object_(object),
00458 member_(member), p1_(p1) { }
00459
00460 virtual bool IsRepeatable() const {
00461 return !del;
00462 }
00463
00464 virtual void CheckIsRepeatable() const {
00465 if (del) CallbackUtils_::FailIsRepeatable("Closure");
00466 }
00467
00468 virtual void Run() {
00469 if (!del) {
00470 (object_->*member_)(p1_);
00471 } else {
00472 (object_->*member_)(p1_);
00473
00474 member_ = NULL;
00475 delete this;
00476 }
00477 }
00478 };
00479 }
00480
00481 #ifndef SWIG
00482 template <class T1, class T2, class R, class P1>
00483 inline typename _ConstMemberResultCallback_1_0<true,R,T1,P1>::base*
00484 NewCallback(const T1* obj, R (T2::*member)(P1) const, P1 p1) {
00485 return new _ConstMemberResultCallback_1_0<true,R,T1,P1>(obj, member, p1);
00486 }
00487 #endif
00488
00489 #ifndef SWIG
00490 template <class T1, class T2, class R, class P1>
00491 inline typename _ConstMemberResultCallback_1_0<false,R,T1,P1>::base*
00492 NewPermanentCallback(const T1* obj, R (T2::*member)(P1) const, P1 p1) {
00493 return new _ConstMemberResultCallback_1_0<false,R,T1,P1>(obj, member, p1);
00494 }
00495 #endif
00496
00497 namespace {
00498 template <bool del, class R, class T, class P1>
00499 class _MemberResultCallback_1_0 : public ResultCallback<R> {
00500 public:
00501 typedef ResultCallback<R> base;
00502 typedef R (T::*MemberSignature)(P1) ;
00503
00504 private:
00505 T* object_;
00506 MemberSignature member_;
00507 P1 p1_;
00508
00509 public:
00510 inline _MemberResultCallback_1_0( T* object, MemberSignature member, P1 p1)
00511 : ResultCallback<R>(),
00512 object_(object),
00513 member_(member), p1_(p1) { }
00514
00515 virtual bool IsRepeatable() const {
00516 return !del;
00517 }
00518
00519 virtual void CheckIsRepeatable() const {
00520 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00521 }
00522
00523 virtual R Run() {
00524 if (!del) {
00525 R result = (object_->*member_)(p1_);
00526 return result;
00527 } else {
00528 R result = (object_->*member_)(p1_);
00529
00530 member_ = NULL;
00531 delete this;
00532 return result;
00533 }
00534 }
00535 };
00536
00537 template <bool del, class T, class P1>
00538 class _MemberResultCallback_1_0<del, void, T, P1> : public Closure {
00539 public:
00540 typedef Closure base;
00541 typedef void (T::*MemberSignature)(P1) ;
00542
00543 private:
00544 T* object_;
00545 MemberSignature member_;
00546 P1 p1_;
00547
00548 public:
00549 inline _MemberResultCallback_1_0( T* object, MemberSignature member, P1 p1)
00550 : Closure(),
00551 object_(object),
00552 member_(member), p1_(p1) { }
00553
00554 virtual bool IsRepeatable() const {
00555 return !del;
00556 }
00557
00558 virtual void CheckIsRepeatable() const {
00559 if (del) CallbackUtils_::FailIsRepeatable("Closure");
00560 }
00561
00562 virtual void Run() {
00563 if (!del) {
00564 (object_->*member_)(p1_);
00565 } else {
00566 (object_->*member_)(p1_);
00567
00568 member_ = NULL;
00569 delete this;
00570 }
00571 }
00572 };
00573 }
00574
00575 #ifndef SWIG
00576 template <class T1, class T2, class R, class P1>
00577 inline typename _MemberResultCallback_1_0<true,R,T1,P1>::base*
00578 NewCallback( T1* obj, R (T2::*member)(P1) , P1 p1) {
00579 return new _MemberResultCallback_1_0<true,R,T1,P1>(obj, member, p1);
00580 }
00581 #endif
00582
00583 #ifndef SWIG
00584 template <class T1, class T2, class R, class P1>
00585 inline typename _MemberResultCallback_1_0<false,R,T1,P1>::base*
00586 NewPermanentCallback( T1* obj, R (T2::*member)(P1) , P1 p1) {
00587 return new _MemberResultCallback_1_0<false,R,T1,P1>(obj, member, p1);
00588 }
00589 #endif
00590
00591 namespace {
00592 template <bool del, class R, class P1>
00593 class _FunctionResultCallback_1_0 : public ResultCallback<R> {
00594 public:
00595 typedef ResultCallback<R> base;
00596 typedef R (*FunctionSignature)(P1);
00597
00598 private:
00599 FunctionSignature function_;
00600 P1 p1_;
00601
00602 public:
00603 inline _FunctionResultCallback_1_0(FunctionSignature function, P1 p1)
00604 : ResultCallback<R>(),
00605 function_(function), p1_(p1) { }
00606
00607 virtual bool IsRepeatable() const {
00608 return !del;
00609 }
00610
00611 virtual void CheckIsRepeatable() const {
00612 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00613 }
00614
00615 virtual R Run() {
00616 if (!del) {
00617 R result = (*function_)(p1_);
00618 return result;
00619 } else {
00620 R result = (*function_)(p1_);
00621
00622 function_ = NULL;
00623 delete this;
00624 return result;
00625 }
00626 }
00627 };
00628
00629 template <bool del, class P1>
00630 class _FunctionResultCallback_1_0<del, void, P1> : public Closure {
00631 public:
00632 typedef Closure base;
00633 typedef void (*FunctionSignature)(P1);
00634
00635 private:
00636 FunctionSignature function_;
00637 P1 p1_;
00638
00639 public:
00640 inline _FunctionResultCallback_1_0(FunctionSignature function, P1 p1)
00641 : Closure(),
00642 function_(function), p1_(p1) { }
00643
00644 virtual bool IsRepeatable() const {
00645 return !del;
00646 }
00647
00648 virtual void CheckIsRepeatable() const {
00649 if (del) CallbackUtils_::FailIsRepeatable("Closure");
00650 }
00651
00652 virtual void Run() {
00653 if (!del) {
00654 (*function_)(p1_);
00655 } else {
00656 (*function_)(p1_);
00657
00658 function_ = NULL;
00659 delete this;
00660 }
00661 }
00662 };
00663 }
00664 template <class R, class P1>
00665 inline typename _FunctionResultCallback_1_0<true,R,P1>::base*
00666 NewCallback(R (*function)(P1), P1 p1) {
00667 return new _FunctionResultCallback_1_0<true,R,P1>(function, p1);
00668 }
00669
00670 template <class R, class P1>
00671 inline typename _FunctionResultCallback_1_0<false,R,P1>::base*
00672 NewPermanentCallback(R (*function)(P1), P1 p1) {
00673 return new _FunctionResultCallback_1_0<false,R,P1>(function, p1);
00674 }
00675
00676 namespace {
00677 template <bool del, class R, class T, class P1, class P2>
00678 class _ConstMemberResultCallback_2_0 : public ResultCallback<R> {
00679 public:
00680 typedef ResultCallback<R> base;
00681 typedef R (T::*MemberSignature)(P1,P2) const;
00682
00683 private:
00684 const T* object_;
00685 MemberSignature member_;
00686 P1 p1_;
00687 P2 p2_;
00688
00689 public:
00690 inline _ConstMemberResultCallback_2_0(const T* object, MemberSignature member, P1 p1, P2 p2)
00691 : ResultCallback<R>(),
00692 object_(object),
00693 member_(member), p1_(p1), p2_(p2) { }
00694
00695 virtual bool IsRepeatable() const {
00696 return !del;
00697 }
00698
00699 virtual void CheckIsRepeatable() const {
00700 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00701 }
00702
00703 virtual R Run() {
00704 if (!del) {
00705 R result = (object_->*member_)(p1_,p2_);
00706 return result;
00707 } else {
00708 R result = (object_->*member_)(p1_,p2_);
00709
00710 member_ = NULL;
00711 delete this;
00712 return result;
00713 }
00714 }
00715 };
00716
00717 template <bool del, class T, class P1, class P2>
00718 class _ConstMemberResultCallback_2_0<del, void, T, P1, P2> : public Closure {
00719 public:
00720 typedef Closure base;
00721 typedef void (T::*MemberSignature)(P1,P2) const;
00722
00723 private:
00724 const T* object_;
00725 MemberSignature member_;
00726 P1 p1_;
00727 P2 p2_;
00728
00729 public:
00730 inline _ConstMemberResultCallback_2_0(const T* object, MemberSignature member, P1 p1, P2 p2)
00731 : Closure(),
00732 object_(object),
00733 member_(member), p1_(p1), p2_(p2) { }
00734
00735 virtual bool IsRepeatable() const {
00736 return !del;
00737 }
00738
00739 virtual void CheckIsRepeatable() const {
00740 if (del) CallbackUtils_::FailIsRepeatable("Closure");
00741 }
00742
00743 virtual void Run() {
00744 if (!del) {
00745 (object_->*member_)(p1_,p2_);
00746 } else {
00747 (object_->*member_)(p1_,p2_);
00748
00749 member_ = NULL;
00750 delete this;
00751 }
00752 }
00753 };
00754 }
00755 #ifndef SWIG
00756 template <class T1, class T2, class R, class P1, class P2>
00757 inline typename _ConstMemberResultCallback_2_0<true,R,T1,P1,P2>::base*
00758 NewCallback(const T1* obj, R (T2::*member)(P1,P2) const, P1 p1, P2 p2) {
00759 return new _ConstMemberResultCallback_2_0<true,R,T1,P1,P2>(obj, member, p1, p2);
00760 }
00761 #endif
00762
00763 #ifndef SWIG
00764 template <class T1, class T2, class R, class P1, class P2>
00765 inline typename _ConstMemberResultCallback_2_0<false,R,T1,P1,P2>::base*
00766 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2) const, P1 p1, P2 p2) {
00767 return new _ConstMemberResultCallback_2_0<false,R,T1,P1,P2>(obj, member, p1, p2);
00768 }
00769 #endif
00770
00771 namespace {
00772 template <bool del, class R, class T, class P1, class P2>
00773 class _MemberResultCallback_2_0 : public ResultCallback<R> {
00774 public:
00775 typedef ResultCallback<R> base;
00776 typedef R (T::*MemberSignature)(P1,P2) ;
00777
00778 private:
00779 T* object_;
00780 MemberSignature member_;
00781 P1 p1_;
00782 P2 p2_;
00783
00784 public:
00785 inline _MemberResultCallback_2_0( T* object, MemberSignature member, P1 p1, P2 p2)
00786 : ResultCallback<R>(),
00787 object_(object),
00788 member_(member), p1_(p1), p2_(p2) { }
00789
00790 virtual bool IsRepeatable() const {
00791 return !del;
00792 }
00793
00794 virtual void CheckIsRepeatable() const {
00795 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00796 }
00797
00798 virtual R Run() {
00799 if (!del) {
00800 R result = (object_->*member_)(p1_,p2_);
00801 return result;
00802 } else {
00803 R result = (object_->*member_)(p1_,p2_);
00804
00805 member_ = NULL;
00806 delete this;
00807 return result;
00808 }
00809 }
00810 };
00811
00812 template <bool del, class T, class P1, class P2>
00813 class _MemberResultCallback_2_0<del, void, T, P1, P2> : public Closure {
00814 public:
00815 typedef Closure base;
00816 typedef void (T::*MemberSignature)(P1,P2) ;
00817
00818 private:
00819 T* object_;
00820 MemberSignature member_;
00821 P1 p1_;
00822 P2 p2_;
00823
00824 public:
00825 inline _MemberResultCallback_2_0( T* object, MemberSignature member, P1 p1, P2 p2)
00826 : Closure(),
00827 object_(object),
00828 member_(member), p1_(p1), p2_(p2) { }
00829
00830 virtual bool IsRepeatable() const {
00831 return !del;
00832 }
00833
00834 virtual void CheckIsRepeatable() const {
00835 if (del) CallbackUtils_::FailIsRepeatable("Closure");
00836 }
00837
00838 virtual void Run() {
00839 if (!del) {
00840 (object_->*member_)(p1_,p2_);
00841 } else {
00842 (object_->*member_)(p1_,p2_);
00843
00844 member_ = NULL;
00845 delete this;
00846 }
00847 }
00848 };
00849 }
00850 #ifndef SWIG
00851 template <class T1, class T2, class R, class P1, class P2>
00852 inline typename _MemberResultCallback_2_0<true,R,T1,P1,P2>::base*
00853 NewCallback( T1* obj, R (T2::*member)(P1,P2) , P1 p1, P2 p2) {
00854 return new _MemberResultCallback_2_0<true,R,T1,P1,P2>(obj, member, p1, p2);
00855 }
00856 #endif
00857
00858 #ifndef SWIG
00859 template <class T1, class T2, class R, class P1, class P2>
00860 inline typename _MemberResultCallback_2_0<false,R,T1,P1,P2>::base*
00861 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2) , P1 p1, P2 p2) {
00862 return new _MemberResultCallback_2_0<false,R,T1,P1,P2>(obj, member, p1, p2);
00863 }
00864 #endif
00865
00866 namespace {
00867 template <bool del, class R, class P1, class P2>
00868 class _FunctionResultCallback_2_0 : public ResultCallback<R> {
00869 public:
00870 typedef ResultCallback<R> base;
00871 typedef R (*FunctionSignature)(P1,P2);
00872
00873 private:
00874 FunctionSignature function_;
00875 P1 p1_;
00876 P2 p2_;
00877
00878 public:
00879 inline _FunctionResultCallback_2_0(FunctionSignature function, P1 p1, P2 p2)
00880 : ResultCallback<R>(),
00881 function_(function), p1_(p1), p2_(p2) { }
00882
00883 virtual bool IsRepeatable() const {
00884 return !del;
00885 }
00886
00887 virtual void CheckIsRepeatable() const {
00888 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00889 }
00890
00891 virtual R Run() {
00892 if (!del) {
00893 R result = (*function_)(p1_,p2_);
00894 return result;
00895 } else {
00896 R result = (*function_)(p1_,p2_);
00897
00898 function_ = NULL;
00899 delete this;
00900 return result;
00901 }
00902 }
00903 };
00904
00905 template <bool del, class P1, class P2>
00906 class _FunctionResultCallback_2_0<del, void, P1, P2> : public Closure {
00907 public:
00908 typedef Closure base;
00909 typedef void (*FunctionSignature)(P1,P2);
00910
00911 private:
00912 FunctionSignature function_;
00913 P1 p1_;
00914 P2 p2_;
00915
00916 public:
00917 inline _FunctionResultCallback_2_0(FunctionSignature function, P1 p1, P2 p2)
00918 : Closure(),
00919 function_(function), p1_(p1), p2_(p2) { }
00920
00921 virtual bool IsRepeatable() const {
00922 return !del;
00923 }
00924
00925 virtual void CheckIsRepeatable() const {
00926 if (del) CallbackUtils_::FailIsRepeatable("Closure");
00927 }
00928
00929 virtual void Run() {
00930 if (!del) {
00931 (*function_)(p1_,p2_);
00932 } else {
00933 (*function_)(p1_,p2_);
00934
00935 function_ = NULL;
00936 delete this;
00937 }
00938 }
00939 };
00940 }
00941 template <class R, class P1, class P2>
00942 inline typename _FunctionResultCallback_2_0<true,R,P1,P2>::base*
00943 NewCallback(R (*function)(P1,P2), P1 p1, P2 p2) {
00944 return new _FunctionResultCallback_2_0<true,R,P1,P2>(function, p1, p2);
00945 }
00946
00947 template <class R, class P1, class P2>
00948 inline typename _FunctionResultCallback_2_0<false,R,P1,P2>::base*
00949 NewPermanentCallback(R (*function)(P1,P2), P1 p1, P2 p2) {
00950 return new _FunctionResultCallback_2_0<false,R,P1,P2>(function, p1, p2);
00951 }
00952
00953 namespace {
00954 template <bool del, class R, class T, class P1, class P2, class P3>
00955 class _ConstMemberResultCallback_3_0 : public ResultCallback<R> {
00956 public:
00957 typedef ResultCallback<R> base;
00958 typedef R (T::*MemberSignature)(P1,P2,P3) const;
00959
00960 private:
00961 const T* object_;
00962 MemberSignature member_;
00963 P1 p1_;
00964 P2 p2_;
00965 P3 p3_;
00966
00967 public:
00968 inline _ConstMemberResultCallback_3_0(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
00969 : ResultCallback<R>(),
00970 object_(object),
00971 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
00972
00973 virtual bool IsRepeatable() const {
00974 return !del;
00975 }
00976
00977 virtual void CheckIsRepeatable() const {
00978 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
00979 }
00980
00981 virtual R Run() {
00982 if (!del) {
00983 R result = (object_->*member_)(p1_,p2_,p3_);
00984 return result;
00985 } else {
00986 R result = (object_->*member_)(p1_,p2_,p3_);
00987
00988 member_ = NULL;
00989 delete this;
00990 return result;
00991 }
00992 }
00993 };
00994
00995 template <bool del, class T, class P1, class P2, class P3>
00996 class _ConstMemberResultCallback_3_0<del, void, T, P1, P2, P3> : public Closure {
00997 public:
00998 typedef Closure base;
00999 typedef void (T::*MemberSignature)(P1,P2,P3) const;
01000
01001 private:
01002 const T* object_;
01003 MemberSignature member_;
01004 P1 p1_;
01005 P2 p2_;
01006 P3 p3_;
01007
01008 public:
01009 inline _ConstMemberResultCallback_3_0(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
01010 : Closure(),
01011 object_(object),
01012 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
01013
01014 virtual bool IsRepeatable() const {
01015 return !del;
01016 }
01017
01018 virtual void CheckIsRepeatable() const {
01019 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01020 }
01021
01022 virtual void Run() {
01023 if (!del) {
01024 (object_->*member_)(p1_,p2_,p3_);
01025 } else {
01026 (object_->*member_)(p1_,p2_,p3_);
01027
01028 member_ = NULL;
01029 delete this;
01030 }
01031 }
01032 };
01033 }
01034 #ifndef SWIG
01035 template <class T1, class T2, class R, class P1, class P2, class P3>
01036 inline typename _ConstMemberResultCallback_3_0<true,R,T1,P1,P2,P3>::base*
01037 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3) const, P1 p1, P2 p2, P3 p3) {
01038 return new _ConstMemberResultCallback_3_0<true,R,T1,P1,P2,P3>(obj, member, p1, p2, p3);
01039 }
01040 #endif
01041
01042 #ifndef SWIG
01043 template <class T1, class T2, class R, class P1, class P2, class P3>
01044 inline typename _ConstMemberResultCallback_3_0<false,R,T1,P1,P2,P3>::base*
01045 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3) const, P1 p1, P2 p2, P3 p3) {
01046 return new _ConstMemberResultCallback_3_0<false,R,T1,P1,P2,P3>(obj, member, p1, p2, p3);
01047 }
01048 #endif
01049
01050 namespace {
01051 template <bool del, class R, class T, class P1, class P2, class P3>
01052 class _MemberResultCallback_3_0 : public ResultCallback<R> {
01053 public:
01054 typedef ResultCallback<R> base;
01055 typedef R (T::*MemberSignature)(P1,P2,P3) ;
01056
01057 private:
01058 T* object_;
01059 MemberSignature member_;
01060 P1 p1_;
01061 P2 p2_;
01062 P3 p3_;
01063
01064 public:
01065 inline _MemberResultCallback_3_0( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
01066 : ResultCallback<R>(),
01067 object_(object),
01068 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
01069
01070 virtual bool IsRepeatable() const {
01071 return !del;
01072 }
01073
01074 virtual void CheckIsRepeatable() const {
01075 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01076 }
01077
01078 virtual R Run() {
01079 if (!del) {
01080 R result = (object_->*member_)(p1_,p2_,p3_);
01081 return result;
01082 } else {
01083 R result = (object_->*member_)(p1_,p2_,p3_);
01084
01085 member_ = NULL;
01086 delete this;
01087 return result;
01088 }
01089 }
01090 };
01091
01092 template <bool del, class T, class P1, class P2, class P3>
01093 class _MemberResultCallback_3_0<del, void, T, P1, P2, P3> : public Closure {
01094 public:
01095 typedef Closure base;
01096 typedef void (T::*MemberSignature)(P1,P2,P3) ;
01097
01098 private:
01099 T* object_;
01100 MemberSignature member_;
01101 P1 p1_;
01102 P2 p2_;
01103 P3 p3_;
01104
01105 public:
01106 inline _MemberResultCallback_3_0( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
01107 : Closure(),
01108 object_(object),
01109 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
01110
01111 virtual bool IsRepeatable() const {
01112 return !del;
01113 }
01114
01115 virtual void CheckIsRepeatable() const {
01116 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01117 }
01118
01119 virtual void Run() {
01120 if (!del) {
01121 (object_->*member_)(p1_,p2_,p3_);
01122 } else {
01123 (object_->*member_)(p1_,p2_,p3_);
01124
01125 member_ = NULL;
01126 delete this;
01127 }
01128 }
01129 };
01130 }
01131 #ifndef SWIG
01132 template <class T1, class T2, class R, class P1, class P2, class P3>
01133 inline typename _MemberResultCallback_3_0<true,R,T1,P1,P2,P3>::base*
01134 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3) , P1 p1, P2 p2, P3 p3) {
01135 return new _MemberResultCallback_3_0<true,R,T1,P1,P2,P3>(obj, member, p1, p2, p3);
01136 }
01137 #endif
01138
01139 #ifndef SWIG
01140 template <class T1, class T2, class R, class P1, class P2, class P3>
01141 inline typename _MemberResultCallback_3_0<false,R,T1,P1,P2,P3>::base*
01142 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3) , P1 p1, P2 p2, P3 p3) {
01143 return new _MemberResultCallback_3_0<false,R,T1,P1,P2,P3>(obj, member, p1, p2, p3);
01144 }
01145 #endif
01146
01147 namespace {
01148 template <bool del, class R, class P1, class P2, class P3>
01149 class _FunctionResultCallback_3_0 : public ResultCallback<R> {
01150 public:
01151 typedef ResultCallback<R> base;
01152 typedef R (*FunctionSignature)(P1,P2,P3);
01153
01154 private:
01155 FunctionSignature function_;
01156 P1 p1_;
01157 P2 p2_;
01158 P3 p3_;
01159
01160 public:
01161 inline _FunctionResultCallback_3_0(FunctionSignature function, P1 p1, P2 p2, P3 p3)
01162 : ResultCallback<R>(),
01163 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
01164
01165 virtual bool IsRepeatable() const {
01166 return !del;
01167 }
01168
01169 virtual void CheckIsRepeatable() const {
01170 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01171 }
01172
01173 virtual R Run() {
01174 if (!del) {
01175 R result = (*function_)(p1_,p2_,p3_);
01176 return result;
01177 } else {
01178 R result = (*function_)(p1_,p2_,p3_);
01179
01180 function_ = NULL;
01181 delete this;
01182 return result;
01183 }
01184 }
01185 };
01186
01187 template <bool del, class P1, class P2, class P3>
01188 class _FunctionResultCallback_3_0<del, void, P1, P2, P3> : public Closure {
01189 public:
01190 typedef Closure base;
01191 typedef void (*FunctionSignature)(P1,P2,P3);
01192
01193 private:
01194 FunctionSignature function_;
01195 P1 p1_;
01196 P2 p2_;
01197 P3 p3_;
01198
01199 public:
01200 inline _FunctionResultCallback_3_0(FunctionSignature function, P1 p1, P2 p2, P3 p3)
01201 : Closure(),
01202 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
01203
01204 virtual bool IsRepeatable() const {
01205 return !del;
01206 }
01207
01208 virtual void CheckIsRepeatable() const {
01209 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01210 }
01211
01212 virtual void Run() {
01213 if (!del) {
01214 (*function_)(p1_,p2_,p3_);
01215 } else {
01216 (*function_)(p1_,p2_,p3_);
01217
01218 function_ = NULL;
01219 delete this;
01220 }
01221 }
01222 };
01223 }
01224 template <class R, class P1, class P2, class P3>
01225 inline typename _FunctionResultCallback_3_0<true,R,P1,P2,P3>::base*
01226 NewCallback(R (*function)(P1,P2,P3), P1 p1, P2 p2, P3 p3) {
01227 return new _FunctionResultCallback_3_0<true,R,P1,P2,P3>(function, p1, p2, p3);
01228 }
01229
01230 template <class R, class P1, class P2, class P3>
01231 inline typename _FunctionResultCallback_3_0<false,R,P1,P2,P3>::base*
01232 NewPermanentCallback(R (*function)(P1,P2,P3), P1 p1, P2 p2, P3 p3) {
01233 return new _FunctionResultCallback_3_0<false,R,P1,P2,P3>(function, p1, p2, p3);
01234 }
01235
01236 namespace {
01237 template <bool del, class R, class T, class P1, class P2, class P3, class P4>
01238 class _ConstMemberResultCallback_4_0 : public ResultCallback<R> {
01239 public:
01240 typedef ResultCallback<R> base;
01241 typedef R (T::*MemberSignature)(P1,P2,P3,P4) const;
01242
01243 private:
01244 const T* object_;
01245 MemberSignature member_;
01246 P1 p1_;
01247 P2 p2_;
01248 P3 p3_;
01249 P4 p4_;
01250
01251 public:
01252 inline _ConstMemberResultCallback_4_0(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
01253 : ResultCallback<R>(),
01254 object_(object),
01255 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
01256
01257 virtual bool IsRepeatable() const {
01258 return !del;
01259 }
01260
01261 virtual void CheckIsRepeatable() const {
01262 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01263 }
01264
01265 virtual R Run() {
01266 if (!del) {
01267 R result = (object_->*member_)(p1_,p2_,p3_,p4_);
01268 return result;
01269 } else {
01270 R result = (object_->*member_)(p1_,p2_,p3_,p4_);
01271
01272 member_ = NULL;
01273 delete this;
01274 return result;
01275 }
01276 }
01277 };
01278
01279 template <bool del, class T, class P1, class P2, class P3, class P4>
01280 class _ConstMemberResultCallback_4_0<del, void, T, P1, P2, P3, P4> : public Closure {
01281 public:
01282 typedef Closure base;
01283 typedef void (T::*MemberSignature)(P1,P2,P3,P4) const;
01284
01285 private:
01286 const T* object_;
01287 MemberSignature member_;
01288 P1 p1_;
01289 P2 p2_;
01290 P3 p3_;
01291 P4 p4_;
01292
01293 public:
01294 inline _ConstMemberResultCallback_4_0(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
01295 : Closure(),
01296 object_(object),
01297 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
01298
01299 virtual bool IsRepeatable() const {
01300 return !del;
01301 }
01302
01303 virtual void CheckIsRepeatable() const {
01304 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01305 }
01306
01307 virtual void Run() {
01308 if (!del) {
01309 (object_->*member_)(p1_,p2_,p3_,p4_);
01310 } else {
01311 (object_->*member_)(p1_,p2_,p3_,p4_);
01312
01313 member_ = NULL;
01314 delete this;
01315 }
01316 }
01317 };
01318 }
01319 #ifndef SWIG
01320 template <class T1, class T2, class R, class P1, class P2, class P3, class P4>
01321 inline typename _ConstMemberResultCallback_4_0<true,R,T1,P1,P2,P3,P4>::base*
01322 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4) const, P1 p1, P2 p2, P3 p3, P4 p4) {
01323 return new _ConstMemberResultCallback_4_0<true,R,T1,P1,P2,P3,P4>(obj, member, p1, p2, p3, p4);
01324 }
01325 #endif
01326
01327 #ifndef SWIG
01328 template <class T1, class T2, class R, class P1, class P2, class P3, class P4>
01329 inline typename _ConstMemberResultCallback_4_0<false,R,T1,P1,P2,P3,P4>::base*
01330 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4) const, P1 p1, P2 p2, P3 p3, P4 p4) {
01331 return new _ConstMemberResultCallback_4_0<false,R,T1,P1,P2,P3,P4>(obj, member, p1, p2, p3, p4);
01332 }
01333 #endif
01334
01335 namespace {
01336 template <bool del, class R, class T, class P1, class P2, class P3, class P4>
01337 class _MemberResultCallback_4_0 : public ResultCallback<R> {
01338 public:
01339 typedef ResultCallback<R> base;
01340 typedef R (T::*MemberSignature)(P1,P2,P3,P4) ;
01341
01342 private:
01343 T* object_;
01344 MemberSignature member_;
01345 P1 p1_;
01346 P2 p2_;
01347 P3 p3_;
01348 P4 p4_;
01349
01350 public:
01351 inline _MemberResultCallback_4_0( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
01352 : ResultCallback<R>(),
01353 object_(object),
01354 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
01355
01356 virtual bool IsRepeatable() const {
01357 return !del;
01358 }
01359
01360 virtual void CheckIsRepeatable() const {
01361 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01362 }
01363
01364 virtual R Run() {
01365 if (!del) {
01366 R result = (object_->*member_)(p1_,p2_,p3_,p4_);
01367 return result;
01368 } else {
01369 R result = (object_->*member_)(p1_,p2_,p3_,p4_);
01370
01371 member_ = NULL;
01372 delete this;
01373 return result;
01374 }
01375 }
01376 };
01377
01378 template <bool del, class T, class P1, class P2, class P3, class P4>
01379 class _MemberResultCallback_4_0<del, void, T, P1, P2, P3, P4> : public Closure {
01380 public:
01381 typedef Closure base;
01382 typedef void (T::*MemberSignature)(P1,P2,P3,P4) ;
01383
01384 private:
01385 T* object_;
01386 MemberSignature member_;
01387 P1 p1_;
01388 P2 p2_;
01389 P3 p3_;
01390 P4 p4_;
01391
01392 public:
01393 inline _MemberResultCallback_4_0( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
01394 : Closure(),
01395 object_(object),
01396 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
01397
01398 virtual bool IsRepeatable() const {
01399 return !del;
01400 }
01401
01402 virtual void CheckIsRepeatable() const {
01403 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01404 }
01405
01406 virtual void Run() {
01407 if (!del) {
01408 (object_->*member_)(p1_,p2_,p3_,p4_);
01409 } else {
01410 (object_->*member_)(p1_,p2_,p3_,p4_);
01411
01412 member_ = NULL;
01413 delete this;
01414 }
01415 }
01416 };
01417 }
01418 #ifndef SWIG
01419 template <class T1, class T2, class R, class P1, class P2, class P3, class P4>
01420 inline typename _MemberResultCallback_4_0<true,R,T1,P1,P2,P3,P4>::base*
01421 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4) , P1 p1, P2 p2, P3 p3, P4 p4) {
01422 return new _MemberResultCallback_4_0<true,R,T1,P1,P2,P3,P4>(obj, member, p1, p2, p3, p4);
01423 }
01424 #endif
01425
01426 #ifndef SWIG
01427 template <class T1, class T2, class R, class P1, class P2, class P3, class P4>
01428 inline typename _MemberResultCallback_4_0<false,R,T1,P1,P2,P3,P4>::base*
01429 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4) , P1 p1, P2 p2, P3 p3, P4 p4) {
01430 return new _MemberResultCallback_4_0<false,R,T1,P1,P2,P3,P4>(obj, member, p1, p2, p3, p4);
01431 }
01432 #endif
01433
01434 namespace {
01435 template <bool del, class R, class P1, class P2, class P3, class P4>
01436 class _FunctionResultCallback_4_0 : public ResultCallback<R> {
01437 public:
01438 typedef ResultCallback<R> base;
01439 typedef R (*FunctionSignature)(P1,P2,P3,P4);
01440
01441 private:
01442 FunctionSignature function_;
01443 P1 p1_;
01444 P2 p2_;
01445 P3 p3_;
01446 P4 p4_;
01447
01448 public:
01449 inline _FunctionResultCallback_4_0(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
01450 : ResultCallback<R>(),
01451 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
01452
01453 virtual bool IsRepeatable() const {
01454 return !del;
01455 }
01456
01457 virtual void CheckIsRepeatable() const {
01458 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01459 }
01460
01461 virtual R Run() {
01462 if (!del) {
01463 R result = (*function_)(p1_,p2_,p3_,p4_);
01464 return result;
01465 } else {
01466 R result = (*function_)(p1_,p2_,p3_,p4_);
01467
01468 function_ = NULL;
01469 delete this;
01470 return result;
01471 }
01472 }
01473 };
01474
01475 template <bool del, class P1, class P2, class P3, class P4>
01476 class _FunctionResultCallback_4_0<del, void, P1, P2, P3, P4> : public Closure {
01477 public:
01478 typedef Closure base;
01479 typedef void (*FunctionSignature)(P1,P2,P3,P4);
01480
01481 private:
01482 FunctionSignature function_;
01483 P1 p1_;
01484 P2 p2_;
01485 P3 p3_;
01486 P4 p4_;
01487
01488 public:
01489 inline _FunctionResultCallback_4_0(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
01490 : Closure(),
01491 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
01492
01493 virtual bool IsRepeatable() const {
01494 return !del;
01495 }
01496
01497 virtual void CheckIsRepeatable() const {
01498 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01499 }
01500
01501 virtual void Run() {
01502 if (!del) {
01503 (*function_)(p1_,p2_,p3_,p4_);
01504 } else {
01505 (*function_)(p1_,p2_,p3_,p4_);
01506
01507 function_ = NULL;
01508 delete this;
01509 }
01510 }
01511 };
01512 }
01513 template <class R, class P1, class P2, class P3, class P4>
01514 inline typename _FunctionResultCallback_4_0<true,R,P1,P2,P3,P4>::base*
01515 NewCallback(R (*function)(P1,P2,P3,P4), P1 p1, P2 p2, P3 p3, P4 p4) {
01516 return new _FunctionResultCallback_4_0<true,R,P1,P2,P3,P4>(function, p1, p2, p3, p4);
01517 }
01518
01519 template <class R, class P1, class P2, class P3, class P4>
01520 inline typename _FunctionResultCallback_4_0<false,R,P1,P2,P3,P4>::base*
01521 NewPermanentCallback(R (*function)(P1,P2,P3,P4), P1 p1, P2 p2, P3 p3, P4 p4) {
01522 return new _FunctionResultCallback_4_0<false,R,P1,P2,P3,P4>(function, p1, p2, p3, p4);
01523 }
01524
01525 namespace {
01526 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5>
01527 class _ConstMemberResultCallback_5_0 : public ResultCallback<R> {
01528 public:
01529 typedef ResultCallback<R> base;
01530 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5) const;
01531
01532 private:
01533 const T* object_;
01534 MemberSignature member_;
01535 P1 p1_;
01536 P2 p2_;
01537 P3 p3_;
01538 P4 p4_;
01539 P5 p5_;
01540
01541 public:
01542 inline _ConstMemberResultCallback_5_0(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
01543 : ResultCallback<R>(),
01544 object_(object),
01545 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
01546
01547 virtual bool IsRepeatable() const {
01548 return !del;
01549 }
01550
01551 virtual void CheckIsRepeatable() const {
01552 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01553 }
01554
01555 virtual R Run() {
01556 if (!del) {
01557 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_);
01558 return result;
01559 } else {
01560 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_);
01561
01562 member_ = NULL;
01563 delete this;
01564 return result;
01565 }
01566 }
01567 };
01568
01569 template <bool del, class T, class P1, class P2, class P3, class P4, class P5>
01570 class _ConstMemberResultCallback_5_0<del, void, T, P1, P2, P3, P4, P5> : public Closure {
01571 public:
01572 typedef Closure base;
01573 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5) const;
01574
01575 private:
01576 const T* object_;
01577 MemberSignature member_;
01578 P1 p1_;
01579 P2 p2_;
01580 P3 p3_;
01581 P4 p4_;
01582 P5 p5_;
01583
01584 public:
01585 inline _ConstMemberResultCallback_5_0(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
01586 : Closure(),
01587 object_(object),
01588 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
01589
01590 virtual bool IsRepeatable() const {
01591 return !del;
01592 }
01593
01594 virtual void CheckIsRepeatable() const {
01595 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01596 }
01597
01598 virtual void Run() {
01599 if (!del) {
01600 (object_->*member_)(p1_,p2_,p3_,p4_,p5_);
01601 } else {
01602 (object_->*member_)(p1_,p2_,p3_,p4_,p5_);
01603
01604 member_ = NULL;
01605 delete this;
01606 }
01607 }
01608 };
01609 }
01610 #ifndef SWIG
01611 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5>
01612 inline typename _ConstMemberResultCallback_5_0<true,R,T1,P1,P2,P3,P4,P5>::base*
01613 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
01614 return new _ConstMemberResultCallback_5_0<true,R,T1,P1,P2,P3,P4,P5>(obj, member, p1, p2, p3, p4, p5);
01615 }
01616 #endif
01617
01618 #ifndef SWIG
01619 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5>
01620 inline typename _ConstMemberResultCallback_5_0<false,R,T1,P1,P2,P3,P4,P5>::base*
01621 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
01622 return new _ConstMemberResultCallback_5_0<false,R,T1,P1,P2,P3,P4,P5>(obj, member, p1, p2, p3, p4, p5);
01623 }
01624 #endif
01625
01626 namespace {
01627 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5>
01628 class _MemberResultCallback_5_0 : public ResultCallback<R> {
01629 public:
01630 typedef ResultCallback<R> base;
01631 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5) ;
01632
01633 private:
01634 T* object_;
01635 MemberSignature member_;
01636 P1 p1_;
01637 P2 p2_;
01638 P3 p3_;
01639 P4 p4_;
01640 P5 p5_;
01641
01642 public:
01643 inline _MemberResultCallback_5_0( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
01644 : ResultCallback<R>(),
01645 object_(object),
01646 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
01647
01648 virtual bool IsRepeatable() const {
01649 return !del;
01650 }
01651
01652 virtual void CheckIsRepeatable() const {
01653 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01654 }
01655
01656 virtual R Run() {
01657 if (!del) {
01658 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_);
01659 return result;
01660 } else {
01661 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_);
01662
01663 member_ = NULL;
01664 delete this;
01665 return result;
01666 }
01667 }
01668 };
01669
01670 template <bool del, class T, class P1, class P2, class P3, class P4, class P5>
01671 class _MemberResultCallback_5_0<del, void, T, P1, P2, P3, P4, P5> : public Closure {
01672 public:
01673 typedef Closure base;
01674 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5) ;
01675
01676 private:
01677 T* object_;
01678 MemberSignature member_;
01679 P1 p1_;
01680 P2 p2_;
01681 P3 p3_;
01682 P4 p4_;
01683 P5 p5_;
01684
01685 public:
01686 inline _MemberResultCallback_5_0( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
01687 : Closure(),
01688 object_(object),
01689 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
01690
01691 virtual bool IsRepeatable() const {
01692 return !del;
01693 }
01694
01695 virtual void CheckIsRepeatable() const {
01696 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01697 }
01698
01699 virtual void Run() {
01700 if (!del) {
01701 (object_->*member_)(p1_,p2_,p3_,p4_,p5_);
01702 } else {
01703 (object_->*member_)(p1_,p2_,p3_,p4_,p5_);
01704
01705 member_ = NULL;
01706 delete this;
01707 }
01708 }
01709 };
01710 }
01711 #ifndef SWIG
01712 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5>
01713 inline typename _MemberResultCallback_5_0<true,R,T1,P1,P2,P3,P4,P5>::base*
01714 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
01715 return new _MemberResultCallback_5_0<true,R,T1,P1,P2,P3,P4,P5>(obj, member, p1, p2, p3, p4, p5);
01716 }
01717 #endif
01718
01719 #ifndef SWIG
01720 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5>
01721 inline typename _MemberResultCallback_5_0<false,R,T1,P1,P2,P3,P4,P5>::base*
01722 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
01723 return new _MemberResultCallback_5_0<false,R,T1,P1,P2,P3,P4,P5>(obj, member, p1, p2, p3, p4, p5);
01724 }
01725 #endif
01726
01727 namespace {
01728 template <bool del, class R, class P1, class P2, class P3, class P4, class P5>
01729 class _FunctionResultCallback_5_0 : public ResultCallback<R> {
01730 public:
01731 typedef ResultCallback<R> base;
01732 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5);
01733
01734 private:
01735 FunctionSignature function_;
01736 P1 p1_;
01737 P2 p2_;
01738 P3 p3_;
01739 P4 p4_;
01740 P5 p5_;
01741
01742 public:
01743 inline _FunctionResultCallback_5_0(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
01744 : ResultCallback<R>(),
01745 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
01746
01747 virtual bool IsRepeatable() const {
01748 return !del;
01749 }
01750
01751 virtual void CheckIsRepeatable() const {
01752 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01753 }
01754
01755 virtual R Run() {
01756 if (!del) {
01757 R result = (*function_)(p1_,p2_,p3_,p4_,p5_);
01758 return result;
01759 } else {
01760 R result = (*function_)(p1_,p2_,p3_,p4_,p5_);
01761
01762 function_ = NULL;
01763 delete this;
01764 return result;
01765 }
01766 }
01767 };
01768
01769 template <bool del, class P1, class P2, class P3, class P4, class P5>
01770 class _FunctionResultCallback_5_0<del, void, P1, P2, P3, P4, P5> : public Closure {
01771 public:
01772 typedef Closure base;
01773 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5);
01774
01775 private:
01776 FunctionSignature function_;
01777 P1 p1_;
01778 P2 p2_;
01779 P3 p3_;
01780 P4 p4_;
01781 P5 p5_;
01782
01783 public:
01784 inline _FunctionResultCallback_5_0(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
01785 : Closure(),
01786 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
01787
01788 virtual bool IsRepeatable() const {
01789 return !del;
01790 }
01791
01792 virtual void CheckIsRepeatable() const {
01793 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01794 }
01795
01796 virtual void Run() {
01797 if (!del) {
01798 (*function_)(p1_,p2_,p3_,p4_,p5_);
01799 } else {
01800 (*function_)(p1_,p2_,p3_,p4_,p5_);
01801
01802 function_ = NULL;
01803 delete this;
01804 }
01805 }
01806 };
01807 }
01808 template <class R, class P1, class P2, class P3, class P4, class P5>
01809 inline typename _FunctionResultCallback_5_0<true,R,P1,P2,P3,P4,P5>::base*
01810 NewCallback(R (*function)(P1,P2,P3,P4,P5), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
01811 return new _FunctionResultCallback_5_0<true,R,P1,P2,P3,P4,P5>(function, p1, p2, p3, p4, p5);
01812 }
01813
01814 template <class R, class P1, class P2, class P3, class P4, class P5>
01815 inline typename _FunctionResultCallback_5_0<false,R,P1,P2,P3,P4,P5>::base*
01816 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
01817 return new _FunctionResultCallback_5_0<false,R,P1,P2,P3,P4,P5>(function, p1, p2, p3, p4, p5);
01818 }
01819
01820 namespace {
01821 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6>
01822 class _ConstMemberResultCallback_6_0 : public ResultCallback<R> {
01823 public:
01824 typedef ResultCallback<R> base;
01825 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6) const;
01826
01827 private:
01828 const T* object_;
01829 MemberSignature member_;
01830 P1 p1_;
01831 P2 p2_;
01832 P3 p3_;
01833 P4 p4_;
01834 P5 p5_;
01835 P6 p6_;
01836
01837 public:
01838 inline _ConstMemberResultCallback_6_0(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
01839 : ResultCallback<R>(),
01840 object_(object),
01841 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
01842
01843 virtual bool IsRepeatable() const {
01844 return !del;
01845 }
01846
01847 virtual void CheckIsRepeatable() const {
01848 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01849 }
01850
01851 virtual R Run() {
01852 if (!del) {
01853 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_);
01854 return result;
01855 } else {
01856 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_);
01857
01858 member_ = NULL;
01859 delete this;
01860 return result;
01861 }
01862 }
01863 };
01864
01865 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6>
01866 class _ConstMemberResultCallback_6_0<del, void, T, P1, P2, P3, P4, P5, P6> : public Closure {
01867 public:
01868 typedef Closure base;
01869 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6) const;
01870
01871 private:
01872 const T* object_;
01873 MemberSignature member_;
01874 P1 p1_;
01875 P2 p2_;
01876 P3 p3_;
01877 P4 p4_;
01878 P5 p5_;
01879 P6 p6_;
01880
01881 public:
01882 inline _ConstMemberResultCallback_6_0(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
01883 : Closure(),
01884 object_(object),
01885 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
01886
01887 virtual bool IsRepeatable() const {
01888 return !del;
01889 }
01890
01891 virtual void CheckIsRepeatable() const {
01892 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01893 }
01894
01895 virtual void Run() {
01896 if (!del) {
01897 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_);
01898 } else {
01899 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_);
01900
01901 member_ = NULL;
01902 delete this;
01903 }
01904 }
01905 };
01906 }
01907 #ifndef SWIG
01908 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6>
01909 inline typename _ConstMemberResultCallback_6_0<true,R,T1,P1,P2,P3,P4,P5,P6>::base*
01910 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
01911 return new _ConstMemberResultCallback_6_0<true,R,T1,P1,P2,P3,P4,P5,P6>(obj, member, p1, p2, p3, p4, p5, p6);
01912 }
01913 #endif
01914
01915 #ifndef SWIG
01916 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6>
01917 inline typename _ConstMemberResultCallback_6_0<false,R,T1,P1,P2,P3,P4,P5,P6>::base*
01918 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
01919 return new _ConstMemberResultCallback_6_0<false,R,T1,P1,P2,P3,P4,P5,P6>(obj, member, p1, p2, p3, p4, p5, p6);
01920 }
01921 #endif
01922
01923 namespace {
01924 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6>
01925 class _MemberResultCallback_6_0 : public ResultCallback<R> {
01926 public:
01927 typedef ResultCallback<R> base;
01928 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6) ;
01929
01930 private:
01931 T* object_;
01932 MemberSignature member_;
01933 P1 p1_;
01934 P2 p2_;
01935 P3 p3_;
01936 P4 p4_;
01937 P5 p5_;
01938 P6 p6_;
01939
01940 public:
01941 inline _MemberResultCallback_6_0( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
01942 : ResultCallback<R>(),
01943 object_(object),
01944 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
01945
01946 virtual bool IsRepeatable() const {
01947 return !del;
01948 }
01949
01950 virtual void CheckIsRepeatable() const {
01951 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
01952 }
01953
01954 virtual R Run() {
01955 if (!del) {
01956 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_);
01957 return result;
01958 } else {
01959 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_);
01960
01961 member_ = NULL;
01962 delete this;
01963 return result;
01964 }
01965 }
01966 };
01967
01968 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6>
01969 class _MemberResultCallback_6_0<del, void, T, P1, P2, P3, P4, P5, P6> : public Closure {
01970 public:
01971 typedef Closure base;
01972 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6) ;
01973
01974 private:
01975 T* object_;
01976 MemberSignature member_;
01977 P1 p1_;
01978 P2 p2_;
01979 P3 p3_;
01980 P4 p4_;
01981 P5 p5_;
01982 P6 p6_;
01983
01984 public:
01985 inline _MemberResultCallback_6_0( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
01986 : Closure(),
01987 object_(object),
01988 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
01989
01990 virtual bool IsRepeatable() const {
01991 return !del;
01992 }
01993
01994 virtual void CheckIsRepeatable() const {
01995 if (del) CallbackUtils_::FailIsRepeatable("Closure");
01996 }
01997
01998 virtual void Run() {
01999 if (!del) {
02000 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_);
02001 } else {
02002 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_);
02003
02004 member_ = NULL;
02005 delete this;
02006 }
02007 }
02008 };
02009 }
02010 #ifndef SWIG
02011 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6>
02012 inline typename _MemberResultCallback_6_0<true,R,T1,P1,P2,P3,P4,P5,P6>::base*
02013 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
02014 return new _MemberResultCallback_6_0<true,R,T1,P1,P2,P3,P4,P5,P6>(obj, member, p1, p2, p3, p4, p5, p6);
02015 }
02016 #endif
02017
02018 #ifndef SWIG
02019 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6>
02020 inline typename _MemberResultCallback_6_0<false,R,T1,P1,P2,P3,P4,P5,P6>::base*
02021 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
02022 return new _MemberResultCallback_6_0<false,R,T1,P1,P2,P3,P4,P5,P6>(obj, member, p1, p2, p3, p4, p5, p6);
02023 }
02024 #endif
02025
02026 namespace {
02027 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class P6>
02028 class _FunctionResultCallback_6_0 : public ResultCallback<R> {
02029 public:
02030 typedef ResultCallback<R> base;
02031 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,P6);
02032
02033 private:
02034 FunctionSignature function_;
02035 P1 p1_;
02036 P2 p2_;
02037 P3 p3_;
02038 P4 p4_;
02039 P5 p5_;
02040 P6 p6_;
02041
02042 public:
02043 inline _FunctionResultCallback_6_0(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
02044 : ResultCallback<R>(),
02045 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
02046
02047 virtual bool IsRepeatable() const {
02048 return !del;
02049 }
02050
02051 virtual void CheckIsRepeatable() const {
02052 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback<R>");
02053 }
02054
02055 virtual R Run() {
02056 if (!del) {
02057 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_);
02058 return result;
02059 } else {
02060 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_);
02061
02062 function_ = NULL;
02063 delete this;
02064 return result;
02065 }
02066 }
02067 };
02068
02069 template <bool del, class P1, class P2, class P3, class P4, class P5, class P6>
02070 class _FunctionResultCallback_6_0<del, void, P1, P2, P3, P4, P5, P6> : public Closure {
02071 public:
02072 typedef Closure base;
02073 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,P6);
02074
02075 private:
02076 FunctionSignature function_;
02077 P1 p1_;
02078 P2 p2_;
02079 P3 p3_;
02080 P4 p4_;
02081 P5 p5_;
02082 P6 p6_;
02083
02084 public:
02085 inline _FunctionResultCallback_6_0(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
02086 : Closure(),
02087 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
02088
02089 virtual bool IsRepeatable() const {
02090 return !del;
02091 }
02092
02093 virtual void CheckIsRepeatable() const {
02094 if (del) CallbackUtils_::FailIsRepeatable("Closure");
02095 }
02096
02097 virtual void Run() {
02098 if (!del) {
02099 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_);
02100 } else {
02101 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_);
02102
02103 function_ = NULL;
02104 delete this;
02105 }
02106 }
02107 };
02108 }
02109 template <class R, class P1, class P2, class P3, class P4, class P5, class P6>
02110 inline typename _FunctionResultCallback_6_0<true,R,P1,P2,P3,P4,P5,P6>::base*
02111 NewCallback(R (*function)(P1,P2,P3,P4,P5,P6), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
02112 return new _FunctionResultCallback_6_0<true,R,P1,P2,P3,P4,P5,P6>(function, p1, p2, p3, p4, p5, p6);
02113 }
02114
02115 template <class R, class P1, class P2, class P3, class P4, class P5, class P6>
02116 inline typename _FunctionResultCallback_6_0<false,R,P1,P2,P3,P4,P5,P6>::base*
02117 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,P6), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
02118 return new _FunctionResultCallback_6_0<false,R,P1,P2,P3,P4,P5,P6>(function, p1, p2, p3, p4, p5, p6);
02119 }
02120
02121 namespace {
02122 template <bool del, class R, class T, class A1>
02123 class _ConstMemberResultCallback_0_1 : public ResultCallback1<R,A1> {
02124 public:
02125 typedef ResultCallback1<R,A1> base;
02126 typedef R (T::*MemberSignature)(A1) const;
02127
02128 private:
02129 const T* object_;
02130 MemberSignature member_;
02131
02132 public:
02133 inline _ConstMemberResultCallback_0_1(const T* object, MemberSignature member)
02134 : ResultCallback1<R,A1>(),
02135 object_(object),
02136 member_(member) { }
02137
02138 virtual bool IsRepeatable() const {
02139 return !del;
02140 }
02141
02142 virtual void CheckIsRepeatable() const {
02143 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02144 }
02145
02146 virtual R Run(A1 a1) {
02147 if (!del) {
02148 R result = (object_->*member_)(a1);
02149 return result;
02150 } else {
02151 R result = (object_->*member_)(a1);
02152
02153 member_ = NULL;
02154 delete this;
02155 return result;
02156 }
02157 }
02158 };
02159
02160 template <bool del, class T, class A1>
02161 class _ConstMemberResultCallback_0_1<del, void, T, A1> : public Callback1<A1> {
02162 public:
02163 typedef Callback1<A1> base;
02164 typedef void (T::*MemberSignature)(A1) const;
02165
02166 private:
02167 const T* object_;
02168 MemberSignature member_;
02169
02170 public:
02171 inline _ConstMemberResultCallback_0_1(const T* object, MemberSignature member)
02172 : Callback1<A1>(),
02173 object_(object),
02174 member_(member) { }
02175
02176 virtual bool IsRepeatable() const {
02177 return !del;
02178 }
02179
02180 virtual void CheckIsRepeatable() const {
02181 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
02182 }
02183
02184 virtual void Run(A1 a1) {
02185 if (!del) {
02186 (object_->*member_)(a1);
02187 } else {
02188 (object_->*member_)(a1);
02189
02190 member_ = NULL;
02191 delete this;
02192 }
02193 }
02194 };
02195 }
02196 #ifndef SWIG
02197 template <class T1, class T2, class R, class A1>
02198 inline typename _ConstMemberResultCallback_0_1<true,R,T1,A1>::base*
02199 NewCallback(const T1* obj, R (T2::*member)(A1) const) {
02200 return new _ConstMemberResultCallback_0_1<true,R,T1,A1>(obj, member);
02201 }
02202 #endif
02203
02204 #ifndef SWIG
02205 template <class T1, class T2, class R, class A1>
02206 inline typename _ConstMemberResultCallback_0_1<false,R,T1,A1>::base*
02207 NewPermanentCallback(const T1* obj, R (T2::*member)(A1) const) {
02208 return new _ConstMemberResultCallback_0_1<false,R,T1,A1>(obj, member);
02209 }
02210 #endif
02211
02212 namespace {
02213 template <bool del, class R, class T, class A1>
02214 class _MemberResultCallback_0_1 : public ResultCallback1<R,A1> {
02215 public:
02216 typedef ResultCallback1<R,A1> base;
02217 typedef R (T::*MemberSignature)(A1) ;
02218
02219 private:
02220 T* object_;
02221 MemberSignature member_;
02222
02223 public:
02224 inline _MemberResultCallback_0_1( T* object, MemberSignature member)
02225 : ResultCallback1<R,A1>(),
02226 object_(object),
02227 member_(member) { }
02228
02229 virtual bool IsRepeatable() const {
02230 return !del;
02231 }
02232
02233 virtual void CheckIsRepeatable() const {
02234 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02235 }
02236
02237 virtual R Run(A1 a1) {
02238 if (!del) {
02239 R result = (object_->*member_)(a1);
02240 return result;
02241 } else {
02242 R result = (object_->*member_)(a1);
02243
02244 member_ = NULL;
02245 delete this;
02246 return result;
02247 }
02248 }
02249 };
02250
02251 template <bool del, class T, class A1>
02252 class _MemberResultCallback_0_1<del, void, T, A1> : public Callback1<A1> {
02253 public:
02254 typedef Callback1<A1> base;
02255 typedef void (T::*MemberSignature)(A1) ;
02256
02257 private:
02258 T* object_;
02259 MemberSignature member_;
02260
02261 public:
02262 inline _MemberResultCallback_0_1( T* object, MemberSignature member)
02263 : Callback1<A1>(),
02264 object_(object),
02265 member_(member) { }
02266
02267 virtual bool IsRepeatable() const {
02268 return !del;
02269 }
02270
02271 virtual void CheckIsRepeatable() const {
02272 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
02273 }
02274
02275 virtual void Run(A1 a1) {
02276 if (!del) {
02277 (object_->*member_)(a1);
02278 } else {
02279 (object_->*member_)(a1);
02280
02281 member_ = NULL;
02282 delete this;
02283 }
02284 }
02285 };
02286 }
02287 #ifndef SWIG
02288 template <class T1, class T2, class R, class A1>
02289 inline typename _MemberResultCallback_0_1<true,R,T1,A1>::base*
02290 NewCallback( T1* obj, R (T2::*member)(A1) ) {
02291 return new _MemberResultCallback_0_1<true,R,T1,A1>(obj, member);
02292 }
02293 #endif
02294
02295 #ifndef SWIG
02296 template <class T1, class T2, class R, class A1>
02297 inline typename _MemberResultCallback_0_1<false,R,T1,A1>::base*
02298 NewPermanentCallback( T1* obj, R (T2::*member)(A1) ) {
02299 return new _MemberResultCallback_0_1<false,R,T1,A1>(obj, member);
02300 }
02301 #endif
02302
02303 namespace {
02304 template <bool del, class R, class A1>
02305 class _FunctionResultCallback_0_1 : public ResultCallback1<R,A1> {
02306 public:
02307 typedef ResultCallback1<R,A1> base;
02308 typedef R (*FunctionSignature)(A1);
02309
02310 private:
02311 FunctionSignature function_;
02312
02313 public:
02314 inline _FunctionResultCallback_0_1(FunctionSignature function)
02315 : ResultCallback1<R,A1>(),
02316 function_(function) { }
02317
02318 virtual bool IsRepeatable() const {
02319 return !del;
02320 }
02321
02322 virtual void CheckIsRepeatable() const {
02323 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02324 }
02325
02326 virtual R Run(A1 a1) {
02327 if (!del) {
02328 R result = (*function_)(a1);
02329 return result;
02330 } else {
02331 R result = (*function_)(a1);
02332
02333 function_ = NULL;
02334 delete this;
02335 return result;
02336 }
02337 }
02338 };
02339
02340 template <bool del, class A1>
02341 class _FunctionResultCallback_0_1<del, void, A1> : public Callback1<A1> {
02342 public:
02343 typedef Callback1<A1> base;
02344 typedef void (*FunctionSignature)(A1);
02345
02346 private:
02347 FunctionSignature function_;
02348
02349 public:
02350 inline _FunctionResultCallback_0_1(FunctionSignature function)
02351 : Callback1<A1>(),
02352 function_(function) { }
02353
02354 virtual bool IsRepeatable() const {
02355 return !del;
02356 }
02357
02358 virtual void CheckIsRepeatable() const {
02359 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
02360 }
02361
02362 virtual void Run(A1 a1) {
02363 if (!del) {
02364 (*function_)(a1);
02365 } else {
02366 (*function_)(a1);
02367
02368 function_ = NULL;
02369 delete this;
02370 }
02371 }
02372 };
02373 }
02374 template <class R, class A1>
02375 inline typename _FunctionResultCallback_0_1<true,R,A1>::base*
02376 NewCallback(R (*function)(A1)) {
02377 return new _FunctionResultCallback_0_1<true,R,A1>(function);
02378 }
02379
02380 template <class R, class A1>
02381 inline typename _FunctionResultCallback_0_1<false,R,A1>::base*
02382 NewPermanentCallback(R (*function)(A1)) {
02383 return new _FunctionResultCallback_0_1<false,R,A1>(function);
02384 }
02385
02386 namespace {
02387 template <bool del, class R, class T, class P1, class A1>
02388 class _ConstMemberResultCallback_1_1 : public ResultCallback1<R,A1> {
02389 public:
02390 typedef ResultCallback1<R,A1> base;
02391 typedef R (T::*MemberSignature)(P1,A1) const;
02392
02393 private:
02394 const T* object_;
02395 MemberSignature member_;
02396 P1 p1_;
02397
02398 public:
02399 inline _ConstMemberResultCallback_1_1(const T* object, MemberSignature member, P1 p1)
02400 : ResultCallback1<R,A1>(),
02401 object_(object),
02402 member_(member), p1_(p1) { }
02403
02404 virtual bool IsRepeatable() const {
02405 return !del;
02406 }
02407
02408 virtual void CheckIsRepeatable() const {
02409 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02410 }
02411
02412 virtual R Run(A1 a1) {
02413 if (!del) {
02414 R result = (object_->*member_)(p1_,a1);
02415 return result;
02416 } else {
02417 R result = (object_->*member_)(p1_,a1);
02418
02419 member_ = NULL;
02420 delete this;
02421 return result;
02422 }
02423 }
02424 };
02425
02426 template <bool del, class T, class P1, class A1>
02427 class _ConstMemberResultCallback_1_1<del, void, T, P1, A1> : public Callback1<A1> {
02428 public:
02429 typedef Callback1<A1> base;
02430 typedef void (T::*MemberSignature)(P1,A1) const;
02431
02432 private:
02433 const T* object_;
02434 MemberSignature member_;
02435 P1 p1_;
02436
02437 public:
02438 inline _ConstMemberResultCallback_1_1(const T* object, MemberSignature member, P1 p1)
02439 : Callback1<A1>(),
02440 object_(object),
02441 member_(member), p1_(p1) { }
02442
02443 virtual bool IsRepeatable() const {
02444 return !del;
02445 }
02446
02447 virtual void CheckIsRepeatable() const {
02448 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
02449 }
02450
02451 virtual void Run(A1 a1) {
02452 if (!del) {
02453 (object_->*member_)(p1_,a1);
02454 } else {
02455 (object_->*member_)(p1_,a1);
02456
02457 member_ = NULL;
02458 delete this;
02459 }
02460 }
02461 };
02462 }
02463 #ifndef SWIG
02464 template <class T1, class T2, class R, class P1, class A1>
02465 inline typename _ConstMemberResultCallback_1_1<true,R,T1,P1,A1>::base*
02466 NewCallback(const T1* obj, R (T2::*member)(P1,A1) const, P1 p1) {
02467 return new _ConstMemberResultCallback_1_1<true,R,T1,P1,A1>(obj, member, p1);
02468 }
02469 #endif
02470
02471 #ifndef SWIG
02472 template <class T1, class T2, class R, class P1, class A1>
02473 inline typename _ConstMemberResultCallback_1_1<false,R,T1,P1,A1>::base*
02474 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,A1) const, P1 p1) {
02475 return new _ConstMemberResultCallback_1_1<false,R,T1,P1,A1>(obj, member, p1);
02476 }
02477 #endif
02478
02479 namespace {
02480 template <bool del, class R, class T, class P1, class A1>
02481 class _MemberResultCallback_1_1 : public ResultCallback1<R,A1> {
02482 public:
02483 typedef ResultCallback1<R,A1> base;
02484 typedef R (T::*MemberSignature)(P1,A1) ;
02485
02486 private:
02487 T* object_;
02488 MemberSignature member_;
02489 P1 p1_;
02490
02491 public:
02492 inline _MemberResultCallback_1_1( T* object, MemberSignature member, P1 p1)
02493 : ResultCallback1<R,A1>(),
02494 object_(object),
02495 member_(member), p1_(p1) { }
02496
02497 virtual bool IsRepeatable() const {
02498 return !del;
02499 }
02500
02501 virtual void CheckIsRepeatable() const {
02502 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02503 }
02504
02505 virtual R Run(A1 a1) {
02506 if (!del) {
02507 R result = (object_->*member_)(p1_,a1);
02508 return result;
02509 } else {
02510 R result = (object_->*member_)(p1_,a1);
02511
02512 member_ = NULL;
02513 delete this;
02514 return result;
02515 }
02516 }
02517 };
02518
02519 template <bool del, class T, class P1, class A1>
02520 class _MemberResultCallback_1_1<del, void, T, P1, A1> : public Callback1<A1> {
02521 public:
02522 typedef Callback1<A1> base;
02523 typedef void (T::*MemberSignature)(P1,A1) ;
02524
02525 private:
02526 T* object_;
02527 MemberSignature member_;
02528 P1 p1_;
02529
02530 public:
02531 inline _MemberResultCallback_1_1( T* object, MemberSignature member, P1 p1)
02532 : Callback1<A1>(),
02533 object_(object),
02534 member_(member), p1_(p1) { }
02535
02536 virtual bool IsRepeatable() const {
02537 return !del;
02538 }
02539
02540 virtual void CheckIsRepeatable() const {
02541 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
02542 }
02543
02544 virtual void Run(A1 a1) {
02545 if (!del) {
02546 (object_->*member_)(p1_,a1);
02547 } else {
02548 (object_->*member_)(p1_,a1);
02549
02550 member_ = NULL;
02551 delete this;
02552 }
02553 }
02554 };
02555 }
02556 #ifndef SWIG
02557 template <class T1, class T2, class R, class P1, class A1>
02558 inline typename _MemberResultCallback_1_1<true,R,T1,P1,A1>::base*
02559 NewCallback( T1* obj, R (T2::*member)(P1,A1) , P1 p1) {
02560 return new _MemberResultCallback_1_1<true,R,T1,P1,A1>(obj, member, p1);
02561 }
02562 #endif
02563
02564 #ifndef SWIG
02565 template <class T1, class T2, class R, class P1, class A1>
02566 inline typename _MemberResultCallback_1_1<false,R,T1,P1,A1>::base*
02567 NewPermanentCallback( T1* obj, R (T2::*member)(P1,A1) , P1 p1) {
02568 return new _MemberResultCallback_1_1<false,R,T1,P1,A1>(obj, member, p1);
02569 }
02570 #endif
02571
02572 namespace {
02573 template <bool del, class R, class P1, class A1>
02574 class _FunctionResultCallback_1_1 : public ResultCallback1<R,A1> {
02575 public:
02576 typedef ResultCallback1<R,A1> base;
02577 typedef R (*FunctionSignature)(P1,A1);
02578
02579 private:
02580 FunctionSignature function_;
02581 P1 p1_;
02582
02583 public:
02584 inline _FunctionResultCallback_1_1(FunctionSignature function, P1 p1)
02585 : ResultCallback1<R,A1>(),
02586 function_(function), p1_(p1) { }
02587
02588 virtual bool IsRepeatable() const {
02589 return !del;
02590 }
02591
02592 virtual void CheckIsRepeatable() const {
02593 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02594 }
02595
02596 virtual R Run(A1 a1) {
02597 if (!del) {
02598 R result = (*function_)(p1_,a1);
02599 return result;
02600 } else {
02601 R result = (*function_)(p1_,a1);
02602
02603 function_ = NULL;
02604 delete this;
02605 return result;
02606 }
02607 }
02608 };
02609
02610 template <bool del, class P1, class A1>
02611 class _FunctionResultCallback_1_1<del, void, P1, A1> : public Callback1<A1> {
02612 public:
02613 typedef Callback1<A1> base;
02614 typedef void (*FunctionSignature)(P1,A1);
02615
02616 private:
02617 FunctionSignature function_;
02618 P1 p1_;
02619
02620 public:
02621 inline _FunctionResultCallback_1_1(FunctionSignature function, P1 p1)
02622 : Callback1<A1>(),
02623 function_(function), p1_(p1) { }
02624
02625 virtual bool IsRepeatable() const {
02626 return !del;
02627 }
02628
02629 virtual void CheckIsRepeatable() const {
02630 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
02631 }
02632
02633 virtual void Run(A1 a1) {
02634 if (!del) {
02635 (*function_)(p1_,a1);
02636 } else {
02637 (*function_)(p1_,a1);
02638
02639 function_ = NULL;
02640 delete this;
02641 }
02642 }
02643 };
02644 }
02645 template <class R, class P1, class A1>
02646 inline typename _FunctionResultCallback_1_1<true,R,P1,A1>::base*
02647 NewCallback(R (*function)(P1,A1), P1 p1) {
02648 return new _FunctionResultCallback_1_1<true,R,P1,A1>(function, p1);
02649 }
02650
02651 template <class R, class P1, class A1>
02652 inline typename _FunctionResultCallback_1_1<false,R,P1,A1>::base*
02653 NewPermanentCallback(R (*function)(P1,A1), P1 p1) {
02654 return new _FunctionResultCallback_1_1<false,R,P1,A1>(function, p1);
02655 }
02656
02657 namespace {
02658 template <bool del, class R, class T, class P1, class P2, class A1>
02659 class _ConstMemberResultCallback_2_1 : public ResultCallback1<R,A1> {
02660 public:
02661 typedef ResultCallback1<R,A1> base;
02662 typedef R (T::*MemberSignature)(P1,P2,A1) const;
02663
02664 private:
02665 const T* object_;
02666 MemberSignature member_;
02667 P1 p1_;
02668 P2 p2_;
02669
02670 public:
02671 inline _ConstMemberResultCallback_2_1(const T* object, MemberSignature member, P1 p1, P2 p2)
02672 : ResultCallback1<R,A1>(),
02673 object_(object),
02674 member_(member), p1_(p1), p2_(p2) { }
02675
02676 virtual bool IsRepeatable() const {
02677 return !del;
02678 }
02679
02680 virtual void CheckIsRepeatable() const {
02681 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02682 }
02683
02684 virtual R Run(A1 a1) {
02685 if (!del) {
02686 R result = (object_->*member_)(p1_,p2_,a1);
02687 return result;
02688 } else {
02689 R result = (object_->*member_)(p1_,p2_,a1);
02690
02691 member_ = NULL;
02692 delete this;
02693 return result;
02694 }
02695 }
02696 };
02697
02698 template <bool del, class T, class P1, class P2, class A1>
02699 class _ConstMemberResultCallback_2_1<del, void, T, P1, P2, A1> : public Callback1<A1> {
02700 public:
02701 typedef Callback1<A1> base;
02702 typedef void (T::*MemberSignature)(P1,P2,A1) const;
02703
02704 private:
02705 const T* object_;
02706 MemberSignature member_;
02707 P1 p1_;
02708 P2 p2_;
02709
02710 public:
02711 inline _ConstMemberResultCallback_2_1(const T* object, MemberSignature member, P1 p1, P2 p2)
02712 : Callback1<A1>(),
02713 object_(object),
02714 member_(member), p1_(p1), p2_(p2) { }
02715
02716 virtual bool IsRepeatable() const {
02717 return !del;
02718 }
02719
02720 virtual void CheckIsRepeatable() const {
02721 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
02722 }
02723
02724 virtual void Run(A1 a1) {
02725 if (!del) {
02726 (object_->*member_)(p1_,p2_,a1);
02727 } else {
02728 (object_->*member_)(p1_,p2_,a1);
02729
02730 member_ = NULL;
02731 delete this;
02732 }
02733 }
02734 };
02735 }
02736 #ifndef SWIG
02737 template <class T1, class T2, class R, class P1, class P2, class A1>
02738 inline typename _ConstMemberResultCallback_2_1<true,R,T1,P1,P2,A1>::base*
02739 NewCallback(const T1* obj, R (T2::*member)(P1,P2,A1) const, P1 p1, P2 p2) {
02740 return new _ConstMemberResultCallback_2_1<true,R,T1,P1,P2,A1>(obj, member, p1, p2);
02741 }
02742 #endif
02743
02744 #ifndef SWIG
02745 template <class T1, class T2, class R, class P1, class P2, class A1>
02746 inline typename _ConstMemberResultCallback_2_1<false,R,T1,P1,P2,A1>::base*
02747 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,A1) const, P1 p1, P2 p2) {
02748 return new _ConstMemberResultCallback_2_1<false,R,T1,P1,P2,A1>(obj, member, p1, p2);
02749 }
02750 #endif
02751
02752 namespace {
02753 template <bool del, class R, class T, class P1, class P2, class A1>
02754 class _MemberResultCallback_2_1 : public ResultCallback1<R,A1> {
02755 public:
02756 typedef ResultCallback1<R,A1> base;
02757 typedef R (T::*MemberSignature)(P1,P2,A1) ;
02758
02759 private:
02760 T* object_;
02761 MemberSignature member_;
02762 P1 p1_;
02763 P2 p2_;
02764
02765 public:
02766 inline _MemberResultCallback_2_1( T* object, MemberSignature member, P1 p1, P2 p2)
02767 : ResultCallback1<R,A1>(),
02768 object_(object),
02769 member_(member), p1_(p1), p2_(p2) { }
02770
02771 virtual bool IsRepeatable() const {
02772 return !del;
02773 }
02774
02775 virtual void CheckIsRepeatable() const {
02776 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02777 }
02778
02779 virtual R Run(A1 a1) {
02780 if (!del) {
02781 R result = (object_->*member_)(p1_,p2_,a1);
02782 return result;
02783 } else {
02784 R result = (object_->*member_)(p1_,p2_,a1);
02785
02786 member_ = NULL;
02787 delete this;
02788 return result;
02789 }
02790 }
02791 };
02792
02793 template <bool del, class T, class P1, class P2, class A1>
02794 class _MemberResultCallback_2_1<del, void, T, P1, P2, A1> : public Callback1<A1> {
02795 public:
02796 typedef Callback1<A1> base;
02797 typedef void (T::*MemberSignature)(P1,P2,A1) ;
02798
02799 private:
02800 T* object_;
02801 MemberSignature member_;
02802 P1 p1_;
02803 P2 p2_;
02804
02805 public:
02806 inline _MemberResultCallback_2_1( T* object, MemberSignature member, P1 p1, P2 p2)
02807 : Callback1<A1>(),
02808 object_(object),
02809 member_(member), p1_(p1), p2_(p2) { }
02810
02811 virtual bool IsRepeatable() const {
02812 return !del;
02813 }
02814
02815 virtual void CheckIsRepeatable() const {
02816 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
02817 }
02818
02819 virtual void Run(A1 a1) {
02820 if (!del) {
02821 (object_->*member_)(p1_,p2_,a1);
02822 } else {
02823 (object_->*member_)(p1_,p2_,a1);
02824
02825 member_ = NULL;
02826 delete this;
02827 }
02828 }
02829 };
02830 }
02831 #ifndef SWIG
02832 template <class T1, class T2, class R, class P1, class P2, class A1>
02833 inline typename _MemberResultCallback_2_1<true,R,T1,P1,P2,A1>::base*
02834 NewCallback( T1* obj, R (T2::*member)(P1,P2,A1) , P1 p1, P2 p2) {
02835 return new _MemberResultCallback_2_1<true,R,T1,P1,P2,A1>(obj, member, p1, p2);
02836 }
02837 #endif
02838
02839 #ifndef SWIG
02840 template <class T1, class T2, class R, class P1, class P2, class A1>
02841 inline typename _MemberResultCallback_2_1<false,R,T1,P1,P2,A1>::base*
02842 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,A1) , P1 p1, P2 p2) {
02843 return new _MemberResultCallback_2_1<false,R,T1,P1,P2,A1>(obj, member, p1, p2);
02844 }
02845 #endif
02846
02847 namespace {
02848 template <bool del, class R, class P1, class P2, class A1>
02849 class _FunctionResultCallback_2_1 : public ResultCallback1<R,A1> {
02850 public:
02851 typedef ResultCallback1<R,A1> base;
02852 typedef R (*FunctionSignature)(P1,P2,A1);
02853
02854 private:
02855 FunctionSignature function_;
02856 P1 p1_;
02857 P2 p2_;
02858
02859 public:
02860 inline _FunctionResultCallback_2_1(FunctionSignature function, P1 p1, P2 p2)
02861 : ResultCallback1<R,A1>(),
02862 function_(function), p1_(p1), p2_(p2) { }
02863
02864 virtual bool IsRepeatable() const {
02865 return !del;
02866 }
02867
02868 virtual void CheckIsRepeatable() const {
02869 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02870 }
02871
02872 virtual R Run(A1 a1) {
02873 if (!del) {
02874 R result = (*function_)(p1_,p2_,a1);
02875 return result;
02876 } else {
02877 R result = (*function_)(p1_,p2_,a1);
02878
02879 function_ = NULL;
02880 delete this;
02881 return result;
02882 }
02883 }
02884 };
02885
02886 template <bool del, class P1, class P2, class A1>
02887 class _FunctionResultCallback_2_1<del, void, P1, P2, A1> : public Callback1<A1> {
02888 public:
02889 typedef Callback1<A1> base;
02890 typedef void (*FunctionSignature)(P1,P2,A1);
02891
02892 private:
02893 FunctionSignature function_;
02894 P1 p1_;
02895 P2 p2_;
02896
02897 public:
02898 inline _FunctionResultCallback_2_1(FunctionSignature function, P1 p1, P2 p2)
02899 : Callback1<A1>(),
02900 function_(function), p1_(p1), p2_(p2) { }
02901
02902 virtual bool IsRepeatable() const {
02903 return !del;
02904 }
02905
02906 virtual void CheckIsRepeatable() const {
02907 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
02908 }
02909
02910 virtual void Run(A1 a1) {
02911 if (!del) {
02912 (*function_)(p1_,p2_,a1);
02913 } else {
02914 (*function_)(p1_,p2_,a1);
02915
02916 function_ = NULL;
02917 delete this;
02918 }
02919 }
02920 };
02921 }
02922 template <class R, class P1, class P2, class A1>
02923 inline typename _FunctionResultCallback_2_1<true,R,P1,P2,A1>::base*
02924 NewCallback(R (*function)(P1,P2,A1), P1 p1, P2 p2) {
02925 return new _FunctionResultCallback_2_1<true,R,P1,P2,A1>(function, p1, p2);
02926 }
02927
02928 template <class R, class P1, class P2, class A1>
02929 inline typename _FunctionResultCallback_2_1<false,R,P1,P2,A1>::base*
02930 NewPermanentCallback(R (*function)(P1,P2,A1), P1 p1, P2 p2) {
02931 return new _FunctionResultCallback_2_1<false,R,P1,P2,A1>(function, p1, p2);
02932 }
02933
02934 namespace {
02935 template <bool del, class R, class T, class P1, class P2, class P3, class A1>
02936 class _ConstMemberResultCallback_3_1 : public ResultCallback1<R,A1> {
02937 public:
02938 typedef ResultCallback1<R,A1> base;
02939 typedef R (T::*MemberSignature)(P1,P2,P3,A1) const;
02940
02941 private:
02942 const T* object_;
02943 MemberSignature member_;
02944 P1 p1_;
02945 P2 p2_;
02946 P3 p3_;
02947
02948 public:
02949 inline _ConstMemberResultCallback_3_1(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
02950 : ResultCallback1<R,A1>(),
02951 object_(object),
02952 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
02953
02954 virtual bool IsRepeatable() const {
02955 return !del;
02956 }
02957
02958 virtual void CheckIsRepeatable() const {
02959 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
02960 }
02961
02962 virtual R Run(A1 a1) {
02963 if (!del) {
02964 R result = (object_->*member_)(p1_,p2_,p3_,a1);
02965 return result;
02966 } else {
02967 R result = (object_->*member_)(p1_,p2_,p3_,a1);
02968
02969 member_ = NULL;
02970 delete this;
02971 return result;
02972 }
02973 }
02974 };
02975
02976 template <bool del, class T, class P1, class P2, class P3, class A1>
02977 class _ConstMemberResultCallback_3_1<del, void, T, P1, P2, P3, A1> : public Callback1<A1> {
02978 public:
02979 typedef Callback1<A1> base;
02980 typedef void (T::*MemberSignature)(P1,P2,P3,A1) const;
02981
02982 private:
02983 const T* object_;
02984 MemberSignature member_;
02985 P1 p1_;
02986 P2 p2_;
02987 P3 p3_;
02988
02989 public:
02990 inline _ConstMemberResultCallback_3_1(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
02991 : Callback1<A1>(),
02992 object_(object),
02993 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
02994
02995 virtual bool IsRepeatable() const {
02996 return !del;
02997 }
02998
02999 virtual void CheckIsRepeatable() const {
03000 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03001 }
03002
03003 virtual void Run(A1 a1) {
03004 if (!del) {
03005 (object_->*member_)(p1_,p2_,p3_,a1);
03006 } else {
03007 (object_->*member_)(p1_,p2_,p3_,a1);
03008
03009 member_ = NULL;
03010 delete this;
03011 }
03012 }
03013 };
03014 }
03015 #ifndef SWIG
03016 template <class T1, class T2, class R, class P1, class P2, class P3, class A1>
03017 inline typename _ConstMemberResultCallback_3_1<true,R,T1,P1,P2,P3,A1>::base*
03018 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1) const, P1 p1, P2 p2, P3 p3) {
03019 return new _ConstMemberResultCallback_3_1<true,R,T1,P1,P2,P3,A1>(obj, member, p1, p2, p3);
03020 }
03021 #endif
03022
03023 #ifndef SWIG
03024 template <class T1, class T2, class R, class P1, class P2, class P3, class A1>
03025 inline typename _ConstMemberResultCallback_3_1<false,R,T1,P1,P2,P3,A1>::base*
03026 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1) const, P1 p1, P2 p2, P3 p3) {
03027 return new _ConstMemberResultCallback_3_1<false,R,T1,P1,P2,P3,A1>(obj, member, p1, p2, p3);
03028 }
03029 #endif
03030
03031 namespace {
03032 template <bool del, class R, class T, class P1, class P2, class P3, class A1>
03033 class _MemberResultCallback_3_1 : public ResultCallback1<R,A1> {
03034 public:
03035 typedef ResultCallback1<R,A1> base;
03036 typedef R (T::*MemberSignature)(P1,P2,P3,A1) ;
03037
03038 private:
03039 T* object_;
03040 MemberSignature member_;
03041 P1 p1_;
03042 P2 p2_;
03043 P3 p3_;
03044
03045 public:
03046 inline _MemberResultCallback_3_1( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
03047 : ResultCallback1<R,A1>(),
03048 object_(object),
03049 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
03050
03051 virtual bool IsRepeatable() const {
03052 return !del;
03053 }
03054
03055 virtual void CheckIsRepeatable() const {
03056 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03057 }
03058
03059 virtual R Run(A1 a1) {
03060 if (!del) {
03061 R result = (object_->*member_)(p1_,p2_,p3_,a1);
03062 return result;
03063 } else {
03064 R result = (object_->*member_)(p1_,p2_,p3_,a1);
03065
03066 member_ = NULL;
03067 delete this;
03068 return result;
03069 }
03070 }
03071 };
03072
03073 template <bool del, class T, class P1, class P2, class P3, class A1>
03074 class _MemberResultCallback_3_1<del, void, T, P1, P2, P3, A1> : public Callback1<A1> {
03075 public:
03076 typedef Callback1<A1> base;
03077 typedef void (T::*MemberSignature)(P1,P2,P3,A1) ;
03078
03079 private:
03080 T* object_;
03081 MemberSignature member_;
03082 P1 p1_;
03083 P2 p2_;
03084 P3 p3_;
03085
03086 public:
03087 inline _MemberResultCallback_3_1( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
03088 : Callback1<A1>(),
03089 object_(object),
03090 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
03091
03092 virtual bool IsRepeatable() const {
03093 return !del;
03094 }
03095
03096 virtual void CheckIsRepeatable() const {
03097 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03098 }
03099
03100 virtual void Run(A1 a1) {
03101 if (!del) {
03102 (object_->*member_)(p1_,p2_,p3_,a1);
03103 } else {
03104 (object_->*member_)(p1_,p2_,p3_,a1);
03105
03106 member_ = NULL;
03107 delete this;
03108 }
03109 }
03110 };
03111 }
03112 #ifndef SWIG
03113 template <class T1, class T2, class R, class P1, class P2, class P3, class A1>
03114 inline typename _MemberResultCallback_3_1<true,R,T1,P1,P2,P3,A1>::base*
03115 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1) , P1 p1, P2 p2, P3 p3) {
03116 return new _MemberResultCallback_3_1<true,R,T1,P1,P2,P3,A1>(obj, member, p1, p2, p3);
03117 }
03118 #endif
03119
03120 #ifndef SWIG
03121 template <class T1, class T2, class R, class P1, class P2, class P3, class A1>
03122 inline typename _MemberResultCallback_3_1<false,R,T1,P1,P2,P3,A1>::base*
03123 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1) , P1 p1, P2 p2, P3 p3) {
03124 return new _MemberResultCallback_3_1<false,R,T1,P1,P2,P3,A1>(obj, member, p1, p2, p3);
03125 }
03126 #endif
03127
03128 namespace {
03129 template <bool del, class R, class P1, class P2, class P3, class A1>
03130 class _FunctionResultCallback_3_1 : public ResultCallback1<R,A1> {
03131 public:
03132 typedef ResultCallback1<R,A1> base;
03133 typedef R (*FunctionSignature)(P1,P2,P3,A1);
03134
03135 private:
03136 FunctionSignature function_;
03137 P1 p1_;
03138 P2 p2_;
03139 P3 p3_;
03140
03141 public:
03142 inline _FunctionResultCallback_3_1(FunctionSignature function, P1 p1, P2 p2, P3 p3)
03143 : ResultCallback1<R,A1>(),
03144 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
03145
03146 virtual bool IsRepeatable() const {
03147 return !del;
03148 }
03149
03150 virtual void CheckIsRepeatable() const {
03151 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03152 }
03153
03154 virtual R Run(A1 a1) {
03155 if (!del) {
03156 R result = (*function_)(p1_,p2_,p3_,a1);
03157 return result;
03158 } else {
03159 R result = (*function_)(p1_,p2_,p3_,a1);
03160
03161 function_ = NULL;
03162 delete this;
03163 return result;
03164 }
03165 }
03166 };
03167
03168 template <bool del, class P1, class P2, class P3, class A1>
03169 class _FunctionResultCallback_3_1<del, void, P1, P2, P3, A1> : public Callback1<A1> {
03170 public:
03171 typedef Callback1<A1> base;
03172 typedef void (*FunctionSignature)(P1,P2,P3,A1);
03173
03174 private:
03175 FunctionSignature function_;
03176 P1 p1_;
03177 P2 p2_;
03178 P3 p3_;
03179
03180 public:
03181 inline _FunctionResultCallback_3_1(FunctionSignature function, P1 p1, P2 p2, P3 p3)
03182 : Callback1<A1>(),
03183 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
03184
03185 virtual bool IsRepeatable() const {
03186 return !del;
03187 }
03188
03189 virtual void CheckIsRepeatable() const {
03190 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03191 }
03192
03193 virtual void Run(A1 a1) {
03194 if (!del) {
03195 (*function_)(p1_,p2_,p3_,a1);
03196 } else {
03197 (*function_)(p1_,p2_,p3_,a1);
03198
03199 function_ = NULL;
03200 delete this;
03201 }
03202 }
03203 };
03204 }
03205 template <class R, class P1, class P2, class P3, class A1>
03206 inline typename _FunctionResultCallback_3_1<true,R,P1,P2,P3,A1>::base*
03207 NewCallback(R (*function)(P1,P2,P3,A1), P1 p1, P2 p2, P3 p3) {
03208 return new _FunctionResultCallback_3_1<true,R,P1,P2,P3,A1>(function, p1, p2, p3);
03209 }
03210
03211 template <class R, class P1, class P2, class P3, class A1>
03212 inline typename _FunctionResultCallback_3_1<false,R,P1,P2,P3,A1>::base*
03213 NewPermanentCallback(R (*function)(P1,P2,P3,A1), P1 p1, P2 p2, P3 p3) {
03214 return new _FunctionResultCallback_3_1<false,R,P1,P2,P3,A1>(function, p1, p2, p3);
03215 }
03216
03217 namespace {
03218 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1>
03219 class _ConstMemberResultCallback_4_1 : public ResultCallback1<R,A1> {
03220 public:
03221 typedef ResultCallback1<R,A1> base;
03222 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1) const;
03223
03224 private:
03225 const T* object_;
03226 MemberSignature member_;
03227 P1 p1_;
03228 P2 p2_;
03229 P3 p3_;
03230 P4 p4_;
03231
03232 public:
03233 inline _ConstMemberResultCallback_4_1(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
03234 : ResultCallback1<R,A1>(),
03235 object_(object),
03236 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
03237
03238 virtual bool IsRepeatable() const {
03239 return !del;
03240 }
03241
03242 virtual void CheckIsRepeatable() const {
03243 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03244 }
03245
03246 virtual R Run(A1 a1) {
03247 if (!del) {
03248 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1);
03249 return result;
03250 } else {
03251 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1);
03252
03253 member_ = NULL;
03254 delete this;
03255 return result;
03256 }
03257 }
03258 };
03259
03260 template <bool del, class T, class P1, class P2, class P3, class P4, class A1>
03261 class _ConstMemberResultCallback_4_1<del, void, T, P1, P2, P3, P4, A1> : public Callback1<A1> {
03262 public:
03263 typedef Callback1<A1> base;
03264 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1) const;
03265
03266 private:
03267 const T* object_;
03268 MemberSignature member_;
03269 P1 p1_;
03270 P2 p2_;
03271 P3 p3_;
03272 P4 p4_;
03273
03274 public:
03275 inline _ConstMemberResultCallback_4_1(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
03276 : Callback1<A1>(),
03277 object_(object),
03278 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
03279
03280 virtual bool IsRepeatable() const {
03281 return !del;
03282 }
03283
03284 virtual void CheckIsRepeatable() const {
03285 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03286 }
03287
03288 virtual void Run(A1 a1) {
03289 if (!del) {
03290 (object_->*member_)(p1_,p2_,p3_,p4_,a1);
03291 } else {
03292 (object_->*member_)(p1_,p2_,p3_,p4_,a1);
03293
03294 member_ = NULL;
03295 delete this;
03296 }
03297 }
03298 };
03299 }
03300 #ifndef SWIG
03301 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1>
03302 inline typename _ConstMemberResultCallback_4_1<true,R,T1,P1,P2,P3,P4,A1>::base*
03303 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1) const, P1 p1, P2 p2, P3 p3, P4 p4) {
03304 return new _ConstMemberResultCallback_4_1<true,R,T1,P1,P2,P3,P4,A1>(obj, member, p1, p2, p3, p4);
03305 }
03306 #endif
03307
03308 #ifndef SWIG
03309 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1>
03310 inline typename _ConstMemberResultCallback_4_1<false,R,T1,P1,P2,P3,P4,A1>::base*
03311 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1) const, P1 p1, P2 p2, P3 p3, P4 p4) {
03312 return new _ConstMemberResultCallback_4_1<false,R,T1,P1,P2,P3,P4,A1>(obj, member, p1, p2, p3, p4);
03313 }
03314 #endif
03315
03316 namespace {
03317 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1>
03318 class _MemberResultCallback_4_1 : public ResultCallback1<R,A1> {
03319 public:
03320 typedef ResultCallback1<R,A1> base;
03321 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1) ;
03322
03323 private:
03324 T* object_;
03325 MemberSignature member_;
03326 P1 p1_;
03327 P2 p2_;
03328 P3 p3_;
03329 P4 p4_;
03330
03331 public:
03332 inline _MemberResultCallback_4_1( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
03333 : ResultCallback1<R,A1>(),
03334 object_(object),
03335 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
03336
03337 virtual bool IsRepeatable() const {
03338 return !del;
03339 }
03340
03341 virtual void CheckIsRepeatable() const {
03342 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03343 }
03344
03345 virtual R Run(A1 a1) {
03346 if (!del) {
03347 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1);
03348 return result;
03349 } else {
03350 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1);
03351
03352 member_ = NULL;
03353 delete this;
03354 return result;
03355 }
03356 }
03357 };
03358
03359 template <bool del, class T, class P1, class P2, class P3, class P4, class A1>
03360 class _MemberResultCallback_4_1<del, void, T, P1, P2, P3, P4, A1> : public Callback1<A1> {
03361 public:
03362 typedef Callback1<A1> base;
03363 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1) ;
03364
03365 private:
03366 T* object_;
03367 MemberSignature member_;
03368 P1 p1_;
03369 P2 p2_;
03370 P3 p3_;
03371 P4 p4_;
03372
03373 public:
03374 inline _MemberResultCallback_4_1( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
03375 : Callback1<A1>(),
03376 object_(object),
03377 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
03378
03379 virtual bool IsRepeatable() const {
03380 return !del;
03381 }
03382
03383 virtual void CheckIsRepeatable() const {
03384 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03385 }
03386
03387 virtual void Run(A1 a1) {
03388 if (!del) {
03389 (object_->*member_)(p1_,p2_,p3_,p4_,a1);
03390 } else {
03391 (object_->*member_)(p1_,p2_,p3_,p4_,a1);
03392
03393 member_ = NULL;
03394 delete this;
03395 }
03396 }
03397 };
03398 }
03399 #ifndef SWIG
03400 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1>
03401 inline typename _MemberResultCallback_4_1<true,R,T1,P1,P2,P3,P4,A1>::base*
03402 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1) , P1 p1, P2 p2, P3 p3, P4 p4) {
03403 return new _MemberResultCallback_4_1<true,R,T1,P1,P2,P3,P4,A1>(obj, member, p1, p2, p3, p4);
03404 }
03405 #endif
03406
03407 #ifndef SWIG
03408 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1>
03409 inline typename _MemberResultCallback_4_1<false,R,T1,P1,P2,P3,P4,A1>::base*
03410 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1) , P1 p1, P2 p2, P3 p3, P4 p4) {
03411 return new _MemberResultCallback_4_1<false,R,T1,P1,P2,P3,P4,A1>(obj, member, p1, p2, p3, p4);
03412 }
03413 #endif
03414
03415 namespace {
03416 template <bool del, class R, class P1, class P2, class P3, class P4, class A1>
03417 class _FunctionResultCallback_4_1 : public ResultCallback1<R,A1> {
03418 public:
03419 typedef ResultCallback1<R,A1> base;
03420 typedef R (*FunctionSignature)(P1,P2,P3,P4,A1);
03421
03422 private:
03423 FunctionSignature function_;
03424 P1 p1_;
03425 P2 p2_;
03426 P3 p3_;
03427 P4 p4_;
03428
03429 public:
03430 inline _FunctionResultCallback_4_1(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
03431 : ResultCallback1<R,A1>(),
03432 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
03433
03434 virtual bool IsRepeatable() const {
03435 return !del;
03436 }
03437
03438 virtual void CheckIsRepeatable() const {
03439 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03440 }
03441
03442 virtual R Run(A1 a1) {
03443 if (!del) {
03444 R result = (*function_)(p1_,p2_,p3_,p4_,a1);
03445 return result;
03446 } else {
03447 R result = (*function_)(p1_,p2_,p3_,p4_,a1);
03448
03449 function_ = NULL;
03450 delete this;
03451 return result;
03452 }
03453 }
03454 };
03455
03456 template <bool del, class P1, class P2, class P3, class P4, class A1>
03457 class _FunctionResultCallback_4_1<del, void, P1, P2, P3, P4, A1> : public Callback1<A1> {
03458 public:
03459 typedef Callback1<A1> base;
03460 typedef void (*FunctionSignature)(P1,P2,P3,P4,A1);
03461
03462 private:
03463 FunctionSignature function_;
03464 P1 p1_;
03465 P2 p2_;
03466 P3 p3_;
03467 P4 p4_;
03468
03469 public:
03470 inline _FunctionResultCallback_4_1(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
03471 : Callback1<A1>(),
03472 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
03473
03474 virtual bool IsRepeatable() const {
03475 return !del;
03476 }
03477
03478 virtual void CheckIsRepeatable() const {
03479 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03480 }
03481
03482 virtual void Run(A1 a1) {
03483 if (!del) {
03484 (*function_)(p1_,p2_,p3_,p4_,a1);
03485 } else {
03486 (*function_)(p1_,p2_,p3_,p4_,a1);
03487
03488 function_ = NULL;
03489 delete this;
03490 }
03491 }
03492 };
03493 }
03494 template <class R, class P1, class P2, class P3, class P4, class A1>
03495 inline typename _FunctionResultCallback_4_1<true,R,P1,P2,P3,P4,A1>::base*
03496 NewCallback(R (*function)(P1,P2,P3,P4,A1), P1 p1, P2 p2, P3 p3, P4 p4) {
03497 return new _FunctionResultCallback_4_1<true,R,P1,P2,P3,P4,A1>(function, p1, p2, p3, p4);
03498 }
03499
03500 template <class R, class P1, class P2, class P3, class P4, class A1>
03501 inline typename _FunctionResultCallback_4_1<false,R,P1,P2,P3,P4,A1>::base*
03502 NewPermanentCallback(R (*function)(P1,P2,P3,P4,A1), P1 p1, P2 p2, P3 p3, P4 p4) {
03503 return new _FunctionResultCallback_4_1<false,R,P1,P2,P3,P4,A1>(function, p1, p2, p3, p4);
03504 }
03505
03506 namespace {
03507 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1>
03508 class _ConstMemberResultCallback_5_1 : public ResultCallback1<R,A1> {
03509 public:
03510 typedef ResultCallback1<R,A1> base;
03511 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1) const;
03512
03513 private:
03514 const T* object_;
03515 MemberSignature member_;
03516 P1 p1_;
03517 P2 p2_;
03518 P3 p3_;
03519 P4 p4_;
03520 P5 p5_;
03521
03522 public:
03523 inline _ConstMemberResultCallback_5_1(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
03524 : ResultCallback1<R,A1>(),
03525 object_(object),
03526 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
03527
03528 virtual bool IsRepeatable() const {
03529 return !del;
03530 }
03531
03532 virtual void CheckIsRepeatable() const {
03533 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03534 }
03535
03536 virtual R Run(A1 a1) {
03537 if (!del) {
03538 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1);
03539 return result;
03540 } else {
03541 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1);
03542
03543 member_ = NULL;
03544 delete this;
03545 return result;
03546 }
03547 }
03548 };
03549
03550 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1>
03551 class _ConstMemberResultCallback_5_1<del, void, T, P1, P2, P3, P4, P5, A1> : public Callback1<A1> {
03552 public:
03553 typedef Callback1<A1> base;
03554 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1) const;
03555
03556 private:
03557 const T* object_;
03558 MemberSignature member_;
03559 P1 p1_;
03560 P2 p2_;
03561 P3 p3_;
03562 P4 p4_;
03563 P5 p5_;
03564
03565 public:
03566 inline _ConstMemberResultCallback_5_1(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
03567 : Callback1<A1>(),
03568 object_(object),
03569 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
03570
03571 virtual bool IsRepeatable() const {
03572 return !del;
03573 }
03574
03575 virtual void CheckIsRepeatable() const {
03576 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03577 }
03578
03579 virtual void Run(A1 a1) {
03580 if (!del) {
03581 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1);
03582 } else {
03583 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1);
03584
03585 member_ = NULL;
03586 delete this;
03587 }
03588 }
03589 };
03590 }
03591 #ifndef SWIG
03592 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1>
03593 inline typename _ConstMemberResultCallback_5_1<true,R,T1,P1,P2,P3,P4,P5,A1>::base*
03594 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
03595 return new _ConstMemberResultCallback_5_1<true,R,T1,P1,P2,P3,P4,P5,A1>(obj, member, p1, p2, p3, p4, p5);
03596 }
03597 #endif
03598
03599 #ifndef SWIG
03600 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1>
03601 inline typename _ConstMemberResultCallback_5_1<false,R,T1,P1,P2,P3,P4,P5,A1>::base*
03602 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
03603 return new _ConstMemberResultCallback_5_1<false,R,T1,P1,P2,P3,P4,P5,A1>(obj, member, p1, p2, p3, p4, p5);
03604 }
03605 #endif
03606
03607 namespace {
03608 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1>
03609 class _MemberResultCallback_5_1 : public ResultCallback1<R,A1> {
03610 public:
03611 typedef ResultCallback1<R,A1> base;
03612 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1) ;
03613
03614 private:
03615 T* object_;
03616 MemberSignature member_;
03617 P1 p1_;
03618 P2 p2_;
03619 P3 p3_;
03620 P4 p4_;
03621 P5 p5_;
03622
03623 public:
03624 inline _MemberResultCallback_5_1( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
03625 : ResultCallback1<R,A1>(),
03626 object_(object),
03627 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
03628
03629 virtual bool IsRepeatable() const {
03630 return !del;
03631 }
03632
03633 virtual void CheckIsRepeatable() const {
03634 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03635 }
03636
03637 virtual R Run(A1 a1) {
03638 if (!del) {
03639 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1);
03640 return result;
03641 } else {
03642 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1);
03643
03644 member_ = NULL;
03645 delete this;
03646 return result;
03647 }
03648 }
03649 };
03650
03651 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1>
03652 class _MemberResultCallback_5_1<del, void, T, P1, P2, P3, P4, P5, A1> : public Callback1<A1> {
03653 public:
03654 typedef Callback1<A1> base;
03655 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1) ;
03656
03657 private:
03658 T* object_;
03659 MemberSignature member_;
03660 P1 p1_;
03661 P2 p2_;
03662 P3 p3_;
03663 P4 p4_;
03664 P5 p5_;
03665
03666 public:
03667 inline _MemberResultCallback_5_1( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
03668 : Callback1<A1>(),
03669 object_(object),
03670 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
03671
03672 virtual bool IsRepeatable() const {
03673 return !del;
03674 }
03675
03676 virtual void CheckIsRepeatable() const {
03677 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03678 }
03679
03680 virtual void Run(A1 a1) {
03681 if (!del) {
03682 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1);
03683 } else {
03684 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1);
03685
03686 member_ = NULL;
03687 delete this;
03688 }
03689 }
03690 };
03691 }
03692 #ifndef SWIG
03693 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1>
03694 inline typename _MemberResultCallback_5_1<true,R,T1,P1,P2,P3,P4,P5,A1>::base*
03695 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
03696 return new _MemberResultCallback_5_1<true,R,T1,P1,P2,P3,P4,P5,A1>(obj, member, p1, p2, p3, p4, p5);
03697 }
03698 #endif
03699
03700 #ifndef SWIG
03701 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1>
03702 inline typename _MemberResultCallback_5_1<false,R,T1,P1,P2,P3,P4,P5,A1>::base*
03703 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
03704 return new _MemberResultCallback_5_1<false,R,T1,P1,P2,P3,P4,P5,A1>(obj, member, p1, p2, p3, p4, p5);
03705 }
03706 #endif
03707
03708 namespace {
03709 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class A1>
03710 class _FunctionResultCallback_5_1 : public ResultCallback1<R,A1> {
03711 public:
03712 typedef ResultCallback1<R,A1> base;
03713 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,A1);
03714
03715 private:
03716 FunctionSignature function_;
03717 P1 p1_;
03718 P2 p2_;
03719 P3 p3_;
03720 P4 p4_;
03721 P5 p5_;
03722
03723 public:
03724 inline _FunctionResultCallback_5_1(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
03725 : ResultCallback1<R,A1>(),
03726 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
03727
03728 virtual bool IsRepeatable() const {
03729 return !del;
03730 }
03731
03732 virtual void CheckIsRepeatable() const {
03733 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03734 }
03735
03736 virtual R Run(A1 a1) {
03737 if (!del) {
03738 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1);
03739 return result;
03740 } else {
03741 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1);
03742
03743 function_ = NULL;
03744 delete this;
03745 return result;
03746 }
03747 }
03748 };
03749
03750 template <bool del, class P1, class P2, class P3, class P4, class P5, class A1>
03751 class _FunctionResultCallback_5_1<del, void, P1, P2, P3, P4, P5, A1> : public Callback1<A1> {
03752 public:
03753 typedef Callback1<A1> base;
03754 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,A1);
03755
03756 private:
03757 FunctionSignature function_;
03758 P1 p1_;
03759 P2 p2_;
03760 P3 p3_;
03761 P4 p4_;
03762 P5 p5_;
03763
03764 public:
03765 inline _FunctionResultCallback_5_1(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
03766 : Callback1<A1>(),
03767 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
03768
03769 virtual bool IsRepeatable() const {
03770 return !del;
03771 }
03772
03773 virtual void CheckIsRepeatable() const {
03774 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03775 }
03776
03777 virtual void Run(A1 a1) {
03778 if (!del) {
03779 (*function_)(p1_,p2_,p3_,p4_,p5_,a1);
03780 } else {
03781 (*function_)(p1_,p2_,p3_,p4_,p5_,a1);
03782
03783 function_ = NULL;
03784 delete this;
03785 }
03786 }
03787 };
03788 }
03789 template <class R, class P1, class P2, class P3, class P4, class P5, class A1>
03790 inline typename _FunctionResultCallback_5_1<true,R,P1,P2,P3,P4,P5,A1>::base*
03791 NewCallback(R (*function)(P1,P2,P3,P4,P5,A1), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
03792 return new _FunctionResultCallback_5_1<true,R,P1,P2,P3,P4,P5,A1>(function, p1, p2, p3, p4, p5);
03793 }
03794
03795 template <class R, class P1, class P2, class P3, class P4, class P5, class A1>
03796 inline typename _FunctionResultCallback_5_1<false,R,P1,P2,P3,P4,P5,A1>::base*
03797 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,A1), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
03798 return new _FunctionResultCallback_5_1<false,R,P1,P2,P3,P4,P5,A1>(function, p1, p2, p3, p4, p5);
03799 }
03800
03801 namespace {
03802 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
03803 class _ConstMemberResultCallback_6_1 : public ResultCallback1<R,A1> {
03804 public:
03805 typedef ResultCallback1<R,A1> base;
03806 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1) const;
03807
03808 private:
03809 const T* object_;
03810 MemberSignature member_;
03811 P1 p1_;
03812 P2 p2_;
03813 P3 p3_;
03814 P4 p4_;
03815 P5 p5_;
03816 P6 p6_;
03817
03818 public:
03819 inline _ConstMemberResultCallback_6_1(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
03820 : ResultCallback1<R,A1>(),
03821 object_(object),
03822 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
03823
03824 virtual bool IsRepeatable() const {
03825 return !del;
03826 }
03827
03828 virtual void CheckIsRepeatable() const {
03829 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03830 }
03831
03832 virtual R Run(A1 a1) {
03833 if (!del) {
03834 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
03835 return result;
03836 } else {
03837 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
03838
03839 member_ = NULL;
03840 delete this;
03841 return result;
03842 }
03843 }
03844 };
03845
03846 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
03847 class _ConstMemberResultCallback_6_1<del, void, T, P1, P2, P3, P4, P5, P6, A1> : public Callback1<A1> {
03848 public:
03849 typedef Callback1<A1> base;
03850 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1) const;
03851
03852 private:
03853 const T* object_;
03854 MemberSignature member_;
03855 P1 p1_;
03856 P2 p2_;
03857 P3 p3_;
03858 P4 p4_;
03859 P5 p5_;
03860 P6 p6_;
03861
03862 public:
03863 inline _ConstMemberResultCallback_6_1(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
03864 : Callback1<A1>(),
03865 object_(object),
03866 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
03867
03868 virtual bool IsRepeatable() const {
03869 return !del;
03870 }
03871
03872 virtual void CheckIsRepeatable() const {
03873 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03874 }
03875
03876 virtual void Run(A1 a1) {
03877 if (!del) {
03878 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
03879 } else {
03880 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
03881
03882 member_ = NULL;
03883 delete this;
03884 }
03885 }
03886 };
03887 }
03888 #ifndef SWIG
03889 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
03890 inline typename _ConstMemberResultCallback_6_1<true,R,T1,P1,P2,P3,P4,P5,P6,A1>::base*
03891 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
03892 return new _ConstMemberResultCallback_6_1<true,R,T1,P1,P2,P3,P4,P5,P6,A1>(obj, member, p1, p2, p3, p4, p5, p6);
03893 }
03894 #endif
03895
03896 #ifndef SWIG
03897 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
03898 inline typename _ConstMemberResultCallback_6_1<false,R,T1,P1,P2,P3,P4,P5,P6,A1>::base*
03899 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
03900 return new _ConstMemberResultCallback_6_1<false,R,T1,P1,P2,P3,P4,P5,P6,A1>(obj, member, p1, p2, p3, p4, p5, p6);
03901 }
03902 #endif
03903
03904 namespace {
03905 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
03906 class _MemberResultCallback_6_1 : public ResultCallback1<R,A1> {
03907 public:
03908 typedef ResultCallback1<R,A1> base;
03909 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1) ;
03910
03911 private:
03912 T* object_;
03913 MemberSignature member_;
03914 P1 p1_;
03915 P2 p2_;
03916 P3 p3_;
03917 P4 p4_;
03918 P5 p5_;
03919 P6 p6_;
03920
03921 public:
03922 inline _MemberResultCallback_6_1( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
03923 : ResultCallback1<R,A1>(),
03924 object_(object),
03925 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
03926
03927 virtual bool IsRepeatable() const {
03928 return !del;
03929 }
03930
03931 virtual void CheckIsRepeatable() const {
03932 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
03933 }
03934
03935 virtual R Run(A1 a1) {
03936 if (!del) {
03937 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
03938 return result;
03939 } else {
03940 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
03941
03942 member_ = NULL;
03943 delete this;
03944 return result;
03945 }
03946 }
03947 };
03948
03949 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
03950 class _MemberResultCallback_6_1<del, void, T, P1, P2, P3, P4, P5, P6, A1> : public Callback1<A1> {
03951 public:
03952 typedef Callback1<A1> base;
03953 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1) ;
03954
03955 private:
03956 T* object_;
03957 MemberSignature member_;
03958 P1 p1_;
03959 P2 p2_;
03960 P3 p3_;
03961 P4 p4_;
03962 P5 p5_;
03963 P6 p6_;
03964
03965 public:
03966 inline _MemberResultCallback_6_1( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
03967 : Callback1<A1>(),
03968 object_(object),
03969 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
03970
03971 virtual bool IsRepeatable() const {
03972 return !del;
03973 }
03974
03975 virtual void CheckIsRepeatable() const {
03976 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
03977 }
03978
03979 virtual void Run(A1 a1) {
03980 if (!del) {
03981 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
03982 } else {
03983 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
03984
03985 member_ = NULL;
03986 delete this;
03987 }
03988 }
03989 };
03990 }
03991 #ifndef SWIG
03992 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
03993 inline typename _MemberResultCallback_6_1<true,R,T1,P1,P2,P3,P4,P5,P6,A1>::base*
03994 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
03995 return new _MemberResultCallback_6_1<true,R,T1,P1,P2,P3,P4,P5,P6,A1>(obj, member, p1, p2, p3, p4, p5, p6);
03996 }
03997 #endif
03998
03999 #ifndef SWIG
04000 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
04001 inline typename _MemberResultCallback_6_1<false,R,T1,P1,P2,P3,P4,P5,P6,A1>::base*
04002 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
04003 return new _MemberResultCallback_6_1<false,R,T1,P1,P2,P3,P4,P5,P6,A1>(obj, member, p1, p2, p3, p4, p5, p6);
04004 }
04005 #endif
04006
04007 namespace {
04008 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
04009 class _FunctionResultCallback_6_1 : public ResultCallback1<R,A1> {
04010 public:
04011 typedef ResultCallback1<R,A1> base;
04012 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1);
04013
04014 private:
04015 FunctionSignature function_;
04016 P1 p1_;
04017 P2 p2_;
04018 P3 p3_;
04019 P4 p4_;
04020 P5 p5_;
04021 P6 p6_;
04022
04023 public:
04024 inline _FunctionResultCallback_6_1(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
04025 : ResultCallback1<R,A1>(),
04026 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
04027
04028 virtual bool IsRepeatable() const {
04029 return !del;
04030 }
04031
04032 virtual void CheckIsRepeatable() const {
04033 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback1<R,A1>");
04034 }
04035
04036 virtual R Run(A1 a1) {
04037 if (!del) {
04038 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
04039 return result;
04040 } else {
04041 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
04042
04043 function_ = NULL;
04044 delete this;
04045 return result;
04046 }
04047 }
04048 };
04049
04050 template <bool del, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
04051 class _FunctionResultCallback_6_1<del, void, P1, P2, P3, P4, P5, P6, A1> : public Callback1<A1> {
04052 public:
04053 typedef Callback1<A1> base;
04054 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1);
04055
04056 private:
04057 FunctionSignature function_;
04058 P1 p1_;
04059 P2 p2_;
04060 P3 p3_;
04061 P4 p4_;
04062 P5 p5_;
04063 P6 p6_;
04064
04065 public:
04066 inline _FunctionResultCallback_6_1(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
04067 : Callback1<A1>(),
04068 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
04069
04070 virtual bool IsRepeatable() const {
04071 return !del;
04072 }
04073
04074 virtual void CheckIsRepeatable() const {
04075 if (del) CallbackUtils_::FailIsRepeatable("Callback1<A1>");
04076 }
04077
04078 virtual void Run(A1 a1) {
04079 if (!del) {
04080 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
04081 } else {
04082 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1);
04083
04084 function_ = NULL;
04085 delete this;
04086 }
04087 }
04088 };
04089 }
04090 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
04091 inline typename _FunctionResultCallback_6_1<true,R,P1,P2,P3,P4,P5,P6,A1>::base*
04092 NewCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
04093 return new _FunctionResultCallback_6_1<true,R,P1,P2,P3,P4,P5,P6,A1>(function, p1, p2, p3, p4, p5, p6);
04094 }
04095
04096 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1>
04097 inline typename _FunctionResultCallback_6_1<false,R,P1,P2,P3,P4,P5,P6,A1>::base*
04098 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
04099 return new _FunctionResultCallback_6_1<false,R,P1,P2,P3,P4,P5,P6,A1>(function, p1, p2, p3, p4, p5, p6);
04100 }
04101
04102 namespace {
04103 template <bool del, class R, class T, class A1, class A2>
04104 class _ConstMemberResultCallback_0_2 : public ResultCallback2<R,A1,A2> {
04105 public:
04106 typedef ResultCallback2<R,A1,A2> base;
04107 typedef R (T::*MemberSignature)(A1,A2) const;
04108
04109 private:
04110 const T* object_;
04111 MemberSignature member_;
04112
04113 public:
04114 inline _ConstMemberResultCallback_0_2(const T* object, MemberSignature member)
04115 : ResultCallback2<R,A1,A2>(),
04116 object_(object),
04117 member_(member) { }
04118
04119 virtual bool IsRepeatable() const {
04120 return !del;
04121 }
04122
04123 virtual void CheckIsRepeatable() const {
04124 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04125 }
04126
04127 virtual R Run(A1 a1,A2 a2) {
04128 if (!del) {
04129 R result = (object_->*member_)(a1,a2);
04130 return result;
04131 } else {
04132 R result = (object_->*member_)(a1,a2);
04133
04134 member_ = NULL;
04135 delete this;
04136 return result;
04137 }
04138 }
04139 };
04140
04141 template <bool del, class T, class A1, class A2>
04142 class _ConstMemberResultCallback_0_2<del, void, T, A1, A2> : public Callback2<A1,A2> {
04143 public:
04144 typedef Callback2<A1,A2> base;
04145 typedef void (T::*MemberSignature)(A1,A2) const;
04146
04147 private:
04148 const T* object_;
04149 MemberSignature member_;
04150
04151 public:
04152 inline _ConstMemberResultCallback_0_2(const T* object, MemberSignature member)
04153 : Callback2<A1,A2>(),
04154 object_(object),
04155 member_(member) { }
04156
04157 virtual bool IsRepeatable() const {
04158 return !del;
04159 }
04160
04161 virtual void CheckIsRepeatable() const {
04162 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04163 }
04164
04165 virtual void Run(A1 a1,A2 a2) {
04166 if (!del) {
04167 (object_->*member_)(a1,a2);
04168 } else {
04169 (object_->*member_)(a1,a2);
04170
04171 member_ = NULL;
04172 delete this;
04173 }
04174 }
04175 };
04176 }
04177 #ifndef SWIG
04178 template <class T1, class T2, class R, class A1, class A2>
04179 inline typename _ConstMemberResultCallback_0_2<true,R,T1,A1,A2>::base*
04180 NewCallback(const T1* obj, R (T2::*member)(A1,A2) const) {
04181 return new _ConstMemberResultCallback_0_2<true,R,T1,A1,A2>(obj, member);
04182 }
04183 #endif
04184
04185 #ifndef SWIG
04186 template <class T1, class T2, class R, class A1, class A2>
04187 inline typename _ConstMemberResultCallback_0_2<false,R,T1,A1,A2>::base*
04188 NewPermanentCallback(const T1* obj, R (T2::*member)(A1,A2) const) {
04189 return new _ConstMemberResultCallback_0_2<false,R,T1,A1,A2>(obj, member);
04190 }
04191 #endif
04192
04193 namespace {
04194 template <bool del, class R, class T, class A1, class A2>
04195 class _MemberResultCallback_0_2 : public ResultCallback2<R,A1,A2> {
04196 public:
04197 typedef ResultCallback2<R,A1,A2> base;
04198 typedef R (T::*MemberSignature)(A1,A2) ;
04199
04200 private:
04201 T* object_;
04202 MemberSignature member_;
04203
04204 public:
04205 inline _MemberResultCallback_0_2( T* object, MemberSignature member)
04206 : ResultCallback2<R,A1,A2>(),
04207 object_(object),
04208 member_(member) { }
04209
04210 virtual bool IsRepeatable() const {
04211 return !del;
04212 }
04213
04214 virtual void CheckIsRepeatable() const {
04215 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04216 }
04217
04218 virtual R Run(A1 a1,A2 a2) {
04219 if (!del) {
04220 R result = (object_->*member_)(a1,a2);
04221 return result;
04222 } else {
04223 R result = (object_->*member_)(a1,a2);
04224
04225 member_ = NULL;
04226 delete this;
04227 return result;
04228 }
04229 }
04230 };
04231
04232 template <bool del, class T, class A1, class A2>
04233 class _MemberResultCallback_0_2<del, void, T, A1, A2> : public Callback2<A1,A2> {
04234 public:
04235 typedef Callback2<A1,A2> base;
04236 typedef void (T::*MemberSignature)(A1,A2) ;
04237
04238 private:
04239 T* object_;
04240 MemberSignature member_;
04241
04242 public:
04243 inline _MemberResultCallback_0_2( T* object, MemberSignature member)
04244 : Callback2<A1,A2>(),
04245 object_(object),
04246 member_(member) { }
04247
04248 virtual bool IsRepeatable() const {
04249 return !del;
04250 }
04251
04252 virtual void CheckIsRepeatable() const {
04253 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04254 }
04255
04256 virtual void Run(A1 a1,A2 a2) {
04257 if (!del) {
04258 (object_->*member_)(a1,a2);
04259 } else {
04260 (object_->*member_)(a1,a2);
04261
04262 member_ = NULL;
04263 delete this;
04264 }
04265 }
04266 };
04267 }
04268 #ifndef SWIG
04269 template <class T1, class T2, class R, class A1, class A2>
04270 inline typename _MemberResultCallback_0_2<true,R,T1,A1,A2>::base*
04271 NewCallback( T1* obj, R (T2::*member)(A1,A2) ) {
04272 return new _MemberResultCallback_0_2<true,R,T1,A1,A2>(obj, member);
04273 }
04274 #endif
04275
04276 #ifndef SWIG
04277 template <class T1, class T2, class R, class A1, class A2>
04278 inline typename _MemberResultCallback_0_2<false,R,T1,A1,A2>::base*
04279 NewPermanentCallback( T1* obj, R (T2::*member)(A1,A2) ) {
04280 return new _MemberResultCallback_0_2<false,R,T1,A1,A2>(obj, member);
04281 }
04282 #endif
04283
04284 namespace {
04285 template <bool del, class R, class A1, class A2>
04286 class _FunctionResultCallback_0_2 : public ResultCallback2<R,A1,A2> {
04287 public:
04288 typedef ResultCallback2<R,A1,A2> base;
04289 typedef R (*FunctionSignature)(A1,A2);
04290
04291 private:
04292 FunctionSignature function_;
04293
04294 public:
04295 inline _FunctionResultCallback_0_2(FunctionSignature function)
04296 : ResultCallback2<R,A1,A2>(),
04297 function_(function) { }
04298
04299 virtual bool IsRepeatable() const {
04300 return !del;
04301 }
04302
04303 virtual void CheckIsRepeatable() const {
04304 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04305 }
04306
04307 virtual R Run(A1 a1,A2 a2) {
04308 if (!del) {
04309 R result = (*function_)(a1,a2);
04310 return result;
04311 } else {
04312 R result = (*function_)(a1,a2);
04313
04314 function_ = NULL;
04315 delete this;
04316 return result;
04317 }
04318 }
04319 };
04320
04321 template <bool del, class A1, class A2>
04322 class _FunctionResultCallback_0_2<del, void, A1, A2> : public Callback2<A1,A2> {
04323 public:
04324 typedef Callback2<A1,A2> base;
04325 typedef void (*FunctionSignature)(A1,A2);
04326
04327 private:
04328 FunctionSignature function_;
04329
04330 public:
04331 inline _FunctionResultCallback_0_2(FunctionSignature function)
04332 : Callback2<A1,A2>(),
04333 function_(function) { }
04334
04335 virtual bool IsRepeatable() const {
04336 return !del;
04337 }
04338
04339 virtual void CheckIsRepeatable() const {
04340 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04341 }
04342
04343 virtual void Run(A1 a1,A2 a2) {
04344 if (!del) {
04345 (*function_)(a1,a2);
04346 } else {
04347 (*function_)(a1,a2);
04348
04349 function_ = NULL;
04350 delete this;
04351 }
04352 }
04353 };
04354 }
04355 template <class R, class A1, class A2>
04356 inline typename _FunctionResultCallback_0_2<true,R,A1,A2>::base*
04357 NewCallback(R (*function)(A1,A2)) {
04358 return new _FunctionResultCallback_0_2<true,R,A1,A2>(function);
04359 }
04360
04361 template <class R, class A1, class A2>
04362 inline typename _FunctionResultCallback_0_2<false,R,A1,A2>::base*
04363 NewPermanentCallback(R (*function)(A1,A2)) {
04364 return new _FunctionResultCallback_0_2<false,R,A1,A2>(function);
04365 }
04366
04367 namespace {
04368 template <bool del, class R, class T, class P1, class A1, class A2>
04369 class _ConstMemberResultCallback_1_2 : public ResultCallback2<R,A1,A2> {
04370 public:
04371 typedef ResultCallback2<R,A1,A2> base;
04372 typedef R (T::*MemberSignature)(P1,A1,A2) const;
04373
04374 private:
04375 const T* object_;
04376 MemberSignature member_;
04377 P1 p1_;
04378
04379 public:
04380 inline _ConstMemberResultCallback_1_2(const T* object, MemberSignature member, P1 p1)
04381 : ResultCallback2<R,A1,A2>(),
04382 object_(object),
04383 member_(member), p1_(p1) { }
04384
04385 virtual bool IsRepeatable() const {
04386 return !del;
04387 }
04388
04389 virtual void CheckIsRepeatable() const {
04390 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04391 }
04392
04393 virtual R Run(A1 a1,A2 a2) {
04394 if (!del) {
04395 R result = (object_->*member_)(p1_,a1,a2);
04396 return result;
04397 } else {
04398 R result = (object_->*member_)(p1_,a1,a2);
04399
04400 member_ = NULL;
04401 delete this;
04402 return result;
04403 }
04404 }
04405 };
04406
04407 template <bool del, class T, class P1, class A1, class A2>
04408 class _ConstMemberResultCallback_1_2<del, void, T, P1, A1, A2> : public Callback2<A1,A2> {
04409 public:
04410 typedef Callback2<A1,A2> base;
04411 typedef void (T::*MemberSignature)(P1,A1,A2) const;
04412
04413 private:
04414 const T* object_;
04415 MemberSignature member_;
04416 P1 p1_;
04417
04418 public:
04419 inline _ConstMemberResultCallback_1_2(const T* object, MemberSignature member, P1 p1)
04420 : Callback2<A1,A2>(),
04421 object_(object),
04422 member_(member), p1_(p1) { }
04423
04424 virtual bool IsRepeatable() const {
04425 return !del;
04426 }
04427
04428 virtual void CheckIsRepeatable() const {
04429 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04430 }
04431
04432 virtual void Run(A1 a1,A2 a2) {
04433 if (!del) {
04434 (object_->*member_)(p1_,a1,a2);
04435 } else {
04436 (object_->*member_)(p1_,a1,a2);
04437
04438 member_ = NULL;
04439 delete this;
04440 }
04441 }
04442 };
04443 }
04444 #ifndef SWIG
04445 template <class T1, class T2, class R, class P1, class A1, class A2>
04446 inline typename _ConstMemberResultCallback_1_2<true,R,T1,P1,A1,A2>::base*
04447 NewCallback(const T1* obj, R (T2::*member)(P1,A1,A2) const, P1 p1) {
04448 return new _ConstMemberResultCallback_1_2<true,R,T1,P1,A1,A2>(obj, member, p1);
04449 }
04450 #endif
04451
04452 #ifndef SWIG
04453 template <class T1, class T2, class R, class P1, class A1, class A2>
04454 inline typename _ConstMemberResultCallback_1_2<false,R,T1,P1,A1,A2>::base*
04455 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,A1,A2) const, P1 p1) {
04456 return new _ConstMemberResultCallback_1_2<false,R,T1,P1,A1,A2>(obj, member, p1);
04457 }
04458 #endif
04459
04460 namespace {
04461 template <bool del, class R, class T, class P1, class A1, class A2>
04462 class _MemberResultCallback_1_2 : public ResultCallback2<R,A1,A2> {
04463 public:
04464 typedef ResultCallback2<R,A1,A2> base;
04465 typedef R (T::*MemberSignature)(P1,A1,A2) ;
04466
04467 private:
04468 T* object_;
04469 MemberSignature member_;
04470 P1 p1_;
04471
04472 public:
04473 inline _MemberResultCallback_1_2( T* object, MemberSignature member, P1 p1)
04474 : ResultCallback2<R,A1,A2>(),
04475 object_(object),
04476 member_(member), p1_(p1) { }
04477
04478 virtual bool IsRepeatable() const {
04479 return !del;
04480 }
04481
04482 virtual void CheckIsRepeatable() const {
04483 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04484 }
04485
04486 virtual R Run(A1 a1,A2 a2) {
04487 if (!del) {
04488 R result = (object_->*member_)(p1_,a1,a2);
04489 return result;
04490 } else {
04491 R result = (object_->*member_)(p1_,a1,a2);
04492
04493 member_ = NULL;
04494 delete this;
04495 return result;
04496 }
04497 }
04498 };
04499
04500 template <bool del, class T, class P1, class A1, class A2>
04501 class _MemberResultCallback_1_2<del, void, T, P1, A1, A2> : public Callback2<A1,A2> {
04502 public:
04503 typedef Callback2<A1,A2> base;
04504 typedef void (T::*MemberSignature)(P1,A1,A2) ;
04505
04506 private:
04507 T* object_;
04508 MemberSignature member_;
04509 P1 p1_;
04510
04511 public:
04512 inline _MemberResultCallback_1_2( T* object, MemberSignature member, P1 p1)
04513 : Callback2<A1,A2>(),
04514 object_(object),
04515 member_(member), p1_(p1) { }
04516
04517 virtual bool IsRepeatable() const {
04518 return !del;
04519 }
04520
04521 virtual void CheckIsRepeatable() const {
04522 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04523 }
04524
04525 virtual void Run(A1 a1,A2 a2) {
04526 if (!del) {
04527 (object_->*member_)(p1_,a1,a2);
04528 } else {
04529 (object_->*member_)(p1_,a1,a2);
04530
04531 member_ = NULL;
04532 delete this;
04533 }
04534 }
04535 };
04536 }
04537 #ifndef SWIG
04538 template <class T1, class T2, class R, class P1, class A1, class A2>
04539 inline typename _MemberResultCallback_1_2<true,R,T1,P1,A1,A2>::base*
04540 NewCallback( T1* obj, R (T2::*member)(P1,A1,A2) , P1 p1) {
04541 return new _MemberResultCallback_1_2<true,R,T1,P1,A1,A2>(obj, member, p1);
04542 }
04543 #endif
04544
04545 #ifndef SWIG
04546 template <class T1, class T2, class R, class P1, class A1, class A2>
04547 inline typename _MemberResultCallback_1_2<false,R,T1,P1,A1,A2>::base*
04548 NewPermanentCallback( T1* obj, R (T2::*member)(P1,A1,A2) , P1 p1) {
04549 return new _MemberResultCallback_1_2<false,R,T1,P1,A1,A2>(obj, member, p1);
04550 }
04551 #endif
04552
04553 namespace {
04554 template <bool del, class R, class P1, class A1, class A2>
04555 class _FunctionResultCallback_1_2 : public ResultCallback2<R,A1,A2> {
04556 public:
04557 typedef ResultCallback2<R,A1,A2> base;
04558 typedef R (*FunctionSignature)(P1,A1,A2);
04559
04560 private:
04561 FunctionSignature function_;
04562 P1 p1_;
04563
04564 public:
04565 inline _FunctionResultCallback_1_2(FunctionSignature function, P1 p1)
04566 : ResultCallback2<R,A1,A2>(),
04567 function_(function), p1_(p1) { }
04568
04569 virtual bool IsRepeatable() const {
04570 return !del;
04571 }
04572
04573 virtual void CheckIsRepeatable() const {
04574 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04575 }
04576
04577 virtual R Run(A1 a1,A2 a2) {
04578 if (!del) {
04579 R result = (*function_)(p1_,a1,a2);
04580 return result;
04581 } else {
04582 R result = (*function_)(p1_,a1,a2);
04583
04584 function_ = NULL;
04585 delete this;
04586 return result;
04587 }
04588 }
04589 };
04590
04591 template <bool del, class P1, class A1, class A2>
04592 class _FunctionResultCallback_1_2<del, void, P1, A1, A2> : public Callback2<A1,A2> {
04593 public:
04594 typedef Callback2<A1,A2> base;
04595 typedef void (*FunctionSignature)(P1,A1,A2);
04596
04597 private:
04598 FunctionSignature function_;
04599 P1 p1_;
04600
04601 public:
04602 inline _FunctionResultCallback_1_2(FunctionSignature function, P1 p1)
04603 : Callback2<A1,A2>(),
04604 function_(function), p1_(p1) { }
04605
04606 virtual bool IsRepeatable() const {
04607 return !del;
04608 }
04609
04610 virtual void CheckIsRepeatable() const {
04611 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04612 }
04613
04614 virtual void Run(A1 a1,A2 a2) {
04615 if (!del) {
04616 (*function_)(p1_,a1,a2);
04617 } else {
04618 (*function_)(p1_,a1,a2);
04619
04620 function_ = NULL;
04621 delete this;
04622 }
04623 }
04624 };
04625 }
04626 template <class R, class P1, class A1, class A2>
04627 inline typename _FunctionResultCallback_1_2<true,R,P1,A1,A2>::base*
04628 NewCallback(R (*function)(P1,A1,A2), P1 p1) {
04629 return new _FunctionResultCallback_1_2<true,R,P1,A1,A2>(function, p1);
04630 }
04631
04632 template <class R, class P1, class A1, class A2>
04633 inline typename _FunctionResultCallback_1_2<false,R,P1,A1,A2>::base*
04634 NewPermanentCallback(R (*function)(P1,A1,A2), P1 p1) {
04635 return new _FunctionResultCallback_1_2<false,R,P1,A1,A2>(function, p1);
04636 }
04637
04638 namespace {
04639 template <bool del, class R, class T, class P1, class P2, class A1, class A2>
04640 class _ConstMemberResultCallback_2_2 : public ResultCallback2<R,A1,A2> {
04641 public:
04642 typedef ResultCallback2<R,A1,A2> base;
04643 typedef R (T::*MemberSignature)(P1,P2,A1,A2) const;
04644
04645 private:
04646 const T* object_;
04647 MemberSignature member_;
04648 P1 p1_;
04649 P2 p2_;
04650
04651 public:
04652 inline _ConstMemberResultCallback_2_2(const T* object, MemberSignature member, P1 p1, P2 p2)
04653 : ResultCallback2<R,A1,A2>(),
04654 object_(object),
04655 member_(member), p1_(p1), p2_(p2) { }
04656
04657 virtual bool IsRepeatable() const {
04658 return !del;
04659 }
04660
04661 virtual void CheckIsRepeatable() const {
04662 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04663 }
04664
04665 virtual R Run(A1 a1,A2 a2) {
04666 if (!del) {
04667 R result = (object_->*member_)(p1_,p2_,a1,a2);
04668 return result;
04669 } else {
04670 R result = (object_->*member_)(p1_,p2_,a1,a2);
04671
04672 member_ = NULL;
04673 delete this;
04674 return result;
04675 }
04676 }
04677 };
04678
04679 template <bool del, class T, class P1, class P2, class A1, class A2>
04680 class _ConstMemberResultCallback_2_2<del, void, T, P1, P2, A1, A2> : public Callback2<A1,A2> {
04681 public:
04682 typedef Callback2<A1,A2> base;
04683 typedef void (T::*MemberSignature)(P1,P2,A1,A2) const;
04684
04685 private:
04686 const T* object_;
04687 MemberSignature member_;
04688 P1 p1_;
04689 P2 p2_;
04690
04691 public:
04692 inline _ConstMemberResultCallback_2_2(const T* object, MemberSignature member, P1 p1, P2 p2)
04693 : Callback2<A1,A2>(),
04694 object_(object),
04695 member_(member), p1_(p1), p2_(p2) { }
04696
04697 virtual bool IsRepeatable() const {
04698 return !del;
04699 }
04700
04701 virtual void CheckIsRepeatable() const {
04702 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04703 }
04704
04705 virtual void Run(A1 a1,A2 a2) {
04706 if (!del) {
04707 (object_->*member_)(p1_,p2_,a1,a2);
04708 } else {
04709 (object_->*member_)(p1_,p2_,a1,a2);
04710
04711 member_ = NULL;
04712 delete this;
04713 }
04714 }
04715 };
04716 }
04717 #ifndef SWIG
04718 template <class T1, class T2, class R, class P1, class P2, class A1, class A2>
04719 inline typename _ConstMemberResultCallback_2_2<true,R,T1,P1,P2,A1,A2>::base*
04720 NewCallback(const T1* obj, R (T2::*member)(P1,P2,A1,A2) const, P1 p1, P2 p2) {
04721 return new _ConstMemberResultCallback_2_2<true,R,T1,P1,P2,A1,A2>(obj, member, p1, p2);
04722 }
04723 #endif
04724
04725 #ifndef SWIG
04726 template <class T1, class T2, class R, class P1, class P2, class A1, class A2>
04727 inline typename _ConstMemberResultCallback_2_2<false,R,T1,P1,P2,A1,A2>::base*
04728 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,A1,A2) const, P1 p1, P2 p2) {
04729 return new _ConstMemberResultCallback_2_2<false,R,T1,P1,P2,A1,A2>(obj, member, p1, p2);
04730 }
04731 #endif
04732
04733 namespace {
04734 template <bool del, class R, class T, class P1, class P2, class A1, class A2>
04735 class _MemberResultCallback_2_2 : public ResultCallback2<R,A1,A2> {
04736 public:
04737 typedef ResultCallback2<R,A1,A2> base;
04738 typedef R (T::*MemberSignature)(P1,P2,A1,A2) ;
04739
04740 private:
04741 T* object_;
04742 MemberSignature member_;
04743 P1 p1_;
04744 P2 p2_;
04745
04746 public:
04747 inline _MemberResultCallback_2_2( T* object, MemberSignature member, P1 p1, P2 p2)
04748 : ResultCallback2<R,A1,A2>(),
04749 object_(object),
04750 member_(member), p1_(p1), p2_(p2) { }
04751
04752 virtual bool IsRepeatable() const {
04753 return !del;
04754 }
04755
04756 virtual void CheckIsRepeatable() const {
04757 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04758 }
04759
04760 virtual R Run(A1 a1,A2 a2) {
04761 if (!del) {
04762 R result = (object_->*member_)(p1_,p2_,a1,a2);
04763 return result;
04764 } else {
04765 R result = (object_->*member_)(p1_,p2_,a1,a2);
04766
04767 member_ = NULL;
04768 delete this;
04769 return result;
04770 }
04771 }
04772 };
04773
04774 template <bool del, class T, class P1, class P2, class A1, class A2>
04775 class _MemberResultCallback_2_2<del, void, T, P1, P2, A1, A2> : public Callback2<A1,A2> {
04776 public:
04777 typedef Callback2<A1,A2> base;
04778 typedef void (T::*MemberSignature)(P1,P2,A1,A2) ;
04779
04780 private:
04781 T* object_;
04782 MemberSignature member_;
04783 P1 p1_;
04784 P2 p2_;
04785
04786 public:
04787 inline _MemberResultCallback_2_2( T* object, MemberSignature member, P1 p1, P2 p2)
04788 : Callback2<A1,A2>(),
04789 object_(object),
04790 member_(member), p1_(p1), p2_(p2) { }
04791
04792 virtual bool IsRepeatable() const {
04793 return !del;
04794 }
04795
04796 virtual void CheckIsRepeatable() const {
04797 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04798 }
04799
04800 virtual void Run(A1 a1,A2 a2) {
04801 if (!del) {
04802 (object_->*member_)(p1_,p2_,a1,a2);
04803 } else {
04804 (object_->*member_)(p1_,p2_,a1,a2);
04805
04806 member_ = NULL;
04807 delete this;
04808 }
04809 }
04810 };
04811 }
04812 #ifndef SWIG
04813 template <class T1, class T2, class R, class P1, class P2, class A1, class A2>
04814 inline typename _MemberResultCallback_2_2<true,R,T1,P1,P2,A1,A2>::base*
04815 NewCallback( T1* obj, R (T2::*member)(P1,P2,A1,A2) , P1 p1, P2 p2) {
04816 return new _MemberResultCallback_2_2<true,R,T1,P1,P2,A1,A2>(obj, member, p1, p2);
04817 }
04818 #endif
04819
04820 #ifndef SWIG
04821 template <class T1, class T2, class R, class P1, class P2, class A1, class A2>
04822 inline typename _MemberResultCallback_2_2<false,R,T1,P1,P2,A1,A2>::base*
04823 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,A1,A2) , P1 p1, P2 p2) {
04824 return new _MemberResultCallback_2_2<false,R,T1,P1,P2,A1,A2>(obj, member, p1, p2);
04825 }
04826 #endif
04827
04828 namespace {
04829 template <bool del, class R, class P1, class P2, class A1, class A2>
04830 class _FunctionResultCallback_2_2 : public ResultCallback2<R,A1,A2> {
04831 public:
04832 typedef ResultCallback2<R,A1,A2> base;
04833 typedef R (*FunctionSignature)(P1,P2,A1,A2);
04834
04835 private:
04836 FunctionSignature function_;
04837 P1 p1_;
04838 P2 p2_;
04839
04840 public:
04841 inline _FunctionResultCallback_2_2(FunctionSignature function, P1 p1, P2 p2)
04842 : ResultCallback2<R,A1,A2>(),
04843 function_(function), p1_(p1), p2_(p2) { }
04844
04845 virtual bool IsRepeatable() const {
04846 return !del;
04847 }
04848
04849 virtual void CheckIsRepeatable() const {
04850 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04851 }
04852
04853 virtual R Run(A1 a1,A2 a2) {
04854 if (!del) {
04855 R result = (*function_)(p1_,p2_,a1,a2);
04856 return result;
04857 } else {
04858 R result = (*function_)(p1_,p2_,a1,a2);
04859
04860 function_ = NULL;
04861 delete this;
04862 return result;
04863 }
04864 }
04865 };
04866
04867 template <bool del, class P1, class P2, class A1, class A2>
04868 class _FunctionResultCallback_2_2<del, void, P1, P2, A1, A2> : public Callback2<A1,A2> {
04869 public:
04870 typedef Callback2<A1,A2> base;
04871 typedef void (*FunctionSignature)(P1,P2,A1,A2);
04872
04873 private:
04874 FunctionSignature function_;
04875 P1 p1_;
04876 P2 p2_;
04877
04878 public:
04879 inline _FunctionResultCallback_2_2(FunctionSignature function, P1 p1, P2 p2)
04880 : Callback2<A1,A2>(),
04881 function_(function), p1_(p1), p2_(p2) { }
04882
04883 virtual bool IsRepeatable() const {
04884 return !del;
04885 }
04886
04887 virtual void CheckIsRepeatable() const {
04888 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04889 }
04890
04891 virtual void Run(A1 a1,A2 a2) {
04892 if (!del) {
04893 (*function_)(p1_,p2_,a1,a2);
04894 } else {
04895 (*function_)(p1_,p2_,a1,a2);
04896
04897 function_ = NULL;
04898 delete this;
04899 }
04900 }
04901 };
04902 }
04903 template <class R, class P1, class P2, class A1, class A2>
04904 inline typename _FunctionResultCallback_2_2<true,R,P1,P2,A1,A2>::base*
04905 NewCallback(R (*function)(P1,P2,A1,A2), P1 p1, P2 p2) {
04906 return new _FunctionResultCallback_2_2<true,R,P1,P2,A1,A2>(function, p1, p2);
04907 }
04908
04909 template <class R, class P1, class P2, class A1, class A2>
04910 inline typename _FunctionResultCallback_2_2<false,R,P1,P2,A1,A2>::base*
04911 NewPermanentCallback(R (*function)(P1,P2,A1,A2), P1 p1, P2 p2) {
04912 return new _FunctionResultCallback_2_2<false,R,P1,P2,A1,A2>(function, p1, p2);
04913 }
04914
04915 namespace {
04916 template <bool del, class R, class T, class P1, class P2, class P3, class A1, class A2>
04917 class _ConstMemberResultCallback_3_2 : public ResultCallback2<R,A1,A2> {
04918 public:
04919 typedef ResultCallback2<R,A1,A2> base;
04920 typedef R (T::*MemberSignature)(P1,P2,P3,A1,A2) const;
04921
04922 private:
04923 const T* object_;
04924 MemberSignature member_;
04925 P1 p1_;
04926 P2 p2_;
04927 P3 p3_;
04928
04929 public:
04930 inline _ConstMemberResultCallback_3_2(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
04931 : ResultCallback2<R,A1,A2>(),
04932 object_(object),
04933 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
04934
04935 virtual bool IsRepeatable() const {
04936 return !del;
04937 }
04938
04939 virtual void CheckIsRepeatable() const {
04940 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
04941 }
04942
04943 virtual R Run(A1 a1,A2 a2) {
04944 if (!del) {
04945 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2);
04946 return result;
04947 } else {
04948 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2);
04949
04950 member_ = NULL;
04951 delete this;
04952 return result;
04953 }
04954 }
04955 };
04956
04957 template <bool del, class T, class P1, class P2, class P3, class A1, class A2>
04958 class _ConstMemberResultCallback_3_2<del, void, T, P1, P2, P3, A1, A2> : public Callback2<A1,A2> {
04959 public:
04960 typedef Callback2<A1,A2> base;
04961 typedef void (T::*MemberSignature)(P1,P2,P3,A1,A2) const;
04962
04963 private:
04964 const T* object_;
04965 MemberSignature member_;
04966 P1 p1_;
04967 P2 p2_;
04968 P3 p3_;
04969
04970 public:
04971 inline _ConstMemberResultCallback_3_2(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
04972 : Callback2<A1,A2>(),
04973 object_(object),
04974 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
04975
04976 virtual bool IsRepeatable() const {
04977 return !del;
04978 }
04979
04980 virtual void CheckIsRepeatable() const {
04981 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
04982 }
04983
04984 virtual void Run(A1 a1,A2 a2) {
04985 if (!del) {
04986 (object_->*member_)(p1_,p2_,p3_,a1,a2);
04987 } else {
04988 (object_->*member_)(p1_,p2_,p3_,a1,a2);
04989
04990 member_ = NULL;
04991 delete this;
04992 }
04993 }
04994 };
04995 }
04996 #ifndef SWIG
04997 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2>
04998 inline typename _ConstMemberResultCallback_3_2<true,R,T1,P1,P2,P3,A1,A2>::base*
04999 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1,A2) const, P1 p1, P2 p2, P3 p3) {
05000 return new _ConstMemberResultCallback_3_2<true,R,T1,P1,P2,P3,A1,A2>(obj, member, p1, p2, p3);
05001 }
05002 #endif
05003
05004 #ifndef SWIG
05005 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2>
05006 inline typename _ConstMemberResultCallback_3_2<false,R,T1,P1,P2,P3,A1,A2>::base*
05007 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1,A2) const, P1 p1, P2 p2, P3 p3) {
05008 return new _ConstMemberResultCallback_3_2<false,R,T1,P1,P2,P3,A1,A2>(obj, member, p1, p2, p3);
05009 }
05010 #endif
05011
05012 namespace {
05013 template <bool del, class R, class T, class P1, class P2, class P3, class A1, class A2>
05014 class _MemberResultCallback_3_2 : public ResultCallback2<R,A1,A2> {
05015 public:
05016 typedef ResultCallback2<R,A1,A2> base;
05017 typedef R (T::*MemberSignature)(P1,P2,P3,A1,A2) ;
05018
05019 private:
05020 T* object_;
05021 MemberSignature member_;
05022 P1 p1_;
05023 P2 p2_;
05024 P3 p3_;
05025
05026 public:
05027 inline _MemberResultCallback_3_2( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
05028 : ResultCallback2<R,A1,A2>(),
05029 object_(object),
05030 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
05031
05032 virtual bool IsRepeatable() const {
05033 return !del;
05034 }
05035
05036 virtual void CheckIsRepeatable() const {
05037 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05038 }
05039
05040 virtual R Run(A1 a1,A2 a2) {
05041 if (!del) {
05042 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2);
05043 return result;
05044 } else {
05045 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2);
05046
05047 member_ = NULL;
05048 delete this;
05049 return result;
05050 }
05051 }
05052 };
05053
05054 template <bool del, class T, class P1, class P2, class P3, class A1, class A2>
05055 class _MemberResultCallback_3_2<del, void, T, P1, P2, P3, A1, A2> : public Callback2<A1,A2> {
05056 public:
05057 typedef Callback2<A1,A2> base;
05058 typedef void (T::*MemberSignature)(P1,P2,P3,A1,A2) ;
05059
05060 private:
05061 T* object_;
05062 MemberSignature member_;
05063 P1 p1_;
05064 P2 p2_;
05065 P3 p3_;
05066
05067 public:
05068 inline _MemberResultCallback_3_2( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
05069 : Callback2<A1,A2>(),
05070 object_(object),
05071 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
05072
05073 virtual bool IsRepeatable() const {
05074 return !del;
05075 }
05076
05077 virtual void CheckIsRepeatable() const {
05078 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05079 }
05080
05081 virtual void Run(A1 a1,A2 a2) {
05082 if (!del) {
05083 (object_->*member_)(p1_,p2_,p3_,a1,a2);
05084 } else {
05085 (object_->*member_)(p1_,p2_,p3_,a1,a2);
05086
05087 member_ = NULL;
05088 delete this;
05089 }
05090 }
05091 };
05092 }
05093 #ifndef SWIG
05094 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2>
05095 inline typename _MemberResultCallback_3_2<true,R,T1,P1,P2,P3,A1,A2>::base*
05096 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1,A2) , P1 p1, P2 p2, P3 p3) {
05097 return new _MemberResultCallback_3_2<true,R,T1,P1,P2,P3,A1,A2>(obj, member, p1, p2, p3);
05098 }
05099 #endif
05100
05101 #ifndef SWIG
05102 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2>
05103 inline typename _MemberResultCallback_3_2<false,R,T1,P1,P2,P3,A1,A2>::base*
05104 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1,A2) , P1 p1, P2 p2, P3 p3) {
05105 return new _MemberResultCallback_3_2<false,R,T1,P1,P2,P3,A1,A2>(obj, member, p1, p2, p3);
05106 }
05107 #endif
05108
05109 namespace {
05110 template <bool del, class R, class P1, class P2, class P3, class A1, class A2>
05111 class _FunctionResultCallback_3_2 : public ResultCallback2<R,A1,A2> {
05112 public:
05113 typedef ResultCallback2<R,A1,A2> base;
05114 typedef R (*FunctionSignature)(P1,P2,P3,A1,A2);
05115
05116 private:
05117 FunctionSignature function_;
05118 P1 p1_;
05119 P2 p2_;
05120 P3 p3_;
05121
05122 public:
05123 inline _FunctionResultCallback_3_2(FunctionSignature function, P1 p1, P2 p2, P3 p3)
05124 : ResultCallback2<R,A1,A2>(),
05125 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
05126
05127 virtual bool IsRepeatable() const {
05128 return !del;
05129 }
05130
05131 virtual void CheckIsRepeatable() const {
05132 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05133 }
05134
05135 virtual R Run(A1 a1,A2 a2) {
05136 if (!del) {
05137 R result = (*function_)(p1_,p2_,p3_,a1,a2);
05138 return result;
05139 } else {
05140 R result = (*function_)(p1_,p2_,p3_,a1,a2);
05141
05142 function_ = NULL;
05143 delete this;
05144 return result;
05145 }
05146 }
05147 };
05148
05149 template <bool del, class P1, class P2, class P3, class A1, class A2>
05150 class _FunctionResultCallback_3_2<del, void, P1, P2, P3, A1, A2> : public Callback2<A1,A2> {
05151 public:
05152 typedef Callback2<A1,A2> base;
05153 typedef void (*FunctionSignature)(P1,P2,P3,A1,A2);
05154
05155 private:
05156 FunctionSignature function_;
05157 P1 p1_;
05158 P2 p2_;
05159 P3 p3_;
05160
05161 public:
05162 inline _FunctionResultCallback_3_2(FunctionSignature function, P1 p1, P2 p2, P3 p3)
05163 : Callback2<A1,A2>(),
05164 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
05165
05166 virtual bool IsRepeatable() const {
05167 return !del;
05168 }
05169
05170 virtual void CheckIsRepeatable() const {
05171 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05172 }
05173
05174 virtual void Run(A1 a1,A2 a2) {
05175 if (!del) {
05176 (*function_)(p1_,p2_,p3_,a1,a2);
05177 } else {
05178 (*function_)(p1_,p2_,p3_,a1,a2);
05179
05180 function_ = NULL;
05181 delete this;
05182 }
05183 }
05184 };
05185 }
05186 template <class R, class P1, class P2, class P3, class A1, class A2>
05187 inline typename _FunctionResultCallback_3_2<true,R,P1,P2,P3,A1,A2>::base*
05188 NewCallback(R (*function)(P1,P2,P3,A1,A2), P1 p1, P2 p2, P3 p3) {
05189 return new _FunctionResultCallback_3_2<true,R,P1,P2,P3,A1,A2>(function, p1, p2, p3);
05190 }
05191
05192 template <class R, class P1, class P2, class P3, class A1, class A2>
05193 inline typename _FunctionResultCallback_3_2<false,R,P1,P2,P3,A1,A2>::base*
05194 NewPermanentCallback(R (*function)(P1,P2,P3,A1,A2), P1 p1, P2 p2, P3 p3) {
05195 return new _FunctionResultCallback_3_2<false,R,P1,P2,P3,A1,A2>(function, p1, p2, p3);
05196 }
05197
05198 namespace {
05199 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1, class A2>
05200 class _ConstMemberResultCallback_4_2 : public ResultCallback2<R,A1,A2> {
05201 public:
05202 typedef ResultCallback2<R,A1,A2> base;
05203 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1,A2) const;
05204
05205 private:
05206 const T* object_;
05207 MemberSignature member_;
05208 P1 p1_;
05209 P2 p2_;
05210 P3 p3_;
05211 P4 p4_;
05212
05213 public:
05214 inline _ConstMemberResultCallback_4_2(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
05215 : ResultCallback2<R,A1,A2>(),
05216 object_(object),
05217 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
05218
05219 virtual bool IsRepeatable() const {
05220 return !del;
05221 }
05222
05223 virtual void CheckIsRepeatable() const {
05224 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05225 }
05226
05227 virtual R Run(A1 a1,A2 a2) {
05228 if (!del) {
05229 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2);
05230 return result;
05231 } else {
05232 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2);
05233
05234 member_ = NULL;
05235 delete this;
05236 return result;
05237 }
05238 }
05239 };
05240
05241 template <bool del, class T, class P1, class P2, class P3, class P4, class A1, class A2>
05242 class _ConstMemberResultCallback_4_2<del, void, T, P1, P2, P3, P4, A1, A2> : public Callback2<A1,A2> {
05243 public:
05244 typedef Callback2<A1,A2> base;
05245 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1,A2) const;
05246
05247 private:
05248 const T* object_;
05249 MemberSignature member_;
05250 P1 p1_;
05251 P2 p2_;
05252 P3 p3_;
05253 P4 p4_;
05254
05255 public:
05256 inline _ConstMemberResultCallback_4_2(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
05257 : Callback2<A1,A2>(),
05258 object_(object),
05259 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
05260
05261 virtual bool IsRepeatable() const {
05262 return !del;
05263 }
05264
05265 virtual void CheckIsRepeatable() const {
05266 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05267 }
05268
05269 virtual void Run(A1 a1,A2 a2) {
05270 if (!del) {
05271 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2);
05272 } else {
05273 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2);
05274
05275 member_ = NULL;
05276 delete this;
05277 }
05278 }
05279 };
05280 }
05281 #ifndef SWIG
05282 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2>
05283 inline typename _ConstMemberResultCallback_4_2<true,R,T1,P1,P2,P3,P4,A1,A2>::base*
05284 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2) const, P1 p1, P2 p2, P3 p3, P4 p4) {
05285 return new _ConstMemberResultCallback_4_2<true,R,T1,P1,P2,P3,P4,A1,A2>(obj, member, p1, p2, p3, p4);
05286 }
05287 #endif
05288
05289 #ifndef SWIG
05290 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2>
05291 inline typename _ConstMemberResultCallback_4_2<false,R,T1,P1,P2,P3,P4,A1,A2>::base*
05292 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2) const, P1 p1, P2 p2, P3 p3, P4 p4) {
05293 return new _ConstMemberResultCallback_4_2<false,R,T1,P1,P2,P3,P4,A1,A2>(obj, member, p1, p2, p3, p4);
05294 }
05295 #endif
05296
05297 namespace {
05298 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1, class A2>
05299 class _MemberResultCallback_4_2 : public ResultCallback2<R,A1,A2> {
05300 public:
05301 typedef ResultCallback2<R,A1,A2> base;
05302 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1,A2) ;
05303
05304 private:
05305 T* object_;
05306 MemberSignature member_;
05307 P1 p1_;
05308 P2 p2_;
05309 P3 p3_;
05310 P4 p4_;
05311
05312 public:
05313 inline _MemberResultCallback_4_2( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
05314 : ResultCallback2<R,A1,A2>(),
05315 object_(object),
05316 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
05317
05318 virtual bool IsRepeatable() const {
05319 return !del;
05320 }
05321
05322 virtual void CheckIsRepeatable() const {
05323 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05324 }
05325
05326 virtual R Run(A1 a1,A2 a2) {
05327 if (!del) {
05328 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2);
05329 return result;
05330 } else {
05331 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2);
05332
05333 member_ = NULL;
05334 delete this;
05335 return result;
05336 }
05337 }
05338 };
05339
05340 template <bool del, class T, class P1, class P2, class P3, class P4, class A1, class A2>
05341 class _MemberResultCallback_4_2<del, void, T, P1, P2, P3, P4, A1, A2> : public Callback2<A1,A2> {
05342 public:
05343 typedef Callback2<A1,A2> base;
05344 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1,A2) ;
05345
05346 private:
05347 T* object_;
05348 MemberSignature member_;
05349 P1 p1_;
05350 P2 p2_;
05351 P3 p3_;
05352 P4 p4_;
05353
05354 public:
05355 inline _MemberResultCallback_4_2( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
05356 : Callback2<A1,A2>(),
05357 object_(object),
05358 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
05359
05360 virtual bool IsRepeatable() const {
05361 return !del;
05362 }
05363
05364 virtual void CheckIsRepeatable() const {
05365 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05366 }
05367
05368 virtual void Run(A1 a1,A2 a2) {
05369 if (!del) {
05370 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2);
05371 } else {
05372 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2);
05373
05374 member_ = NULL;
05375 delete this;
05376 }
05377 }
05378 };
05379 }
05380 #ifndef SWIG
05381 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2>
05382 inline typename _MemberResultCallback_4_2<true,R,T1,P1,P2,P3,P4,A1,A2>::base*
05383 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2) , P1 p1, P2 p2, P3 p3, P4 p4) {
05384 return new _MemberResultCallback_4_2<true,R,T1,P1,P2,P3,P4,A1,A2>(obj, member, p1, p2, p3, p4);
05385 }
05386 #endif
05387
05388 #ifndef SWIG
05389 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2>
05390 inline typename _MemberResultCallback_4_2<false,R,T1,P1,P2,P3,P4,A1,A2>::base*
05391 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2) , P1 p1, P2 p2, P3 p3, P4 p4) {
05392 return new _MemberResultCallback_4_2<false,R,T1,P1,P2,P3,P4,A1,A2>(obj, member, p1, p2, p3, p4);
05393 }
05394 #endif
05395
05396 namespace {
05397 template <bool del, class R, class P1, class P2, class P3, class P4, class A1, class A2>
05398 class _FunctionResultCallback_4_2 : public ResultCallback2<R,A1,A2> {
05399 public:
05400 typedef ResultCallback2<R,A1,A2> base;
05401 typedef R (*FunctionSignature)(P1,P2,P3,P4,A1,A2);
05402
05403 private:
05404 FunctionSignature function_;
05405 P1 p1_;
05406 P2 p2_;
05407 P3 p3_;
05408 P4 p4_;
05409
05410 public:
05411 inline _FunctionResultCallback_4_2(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
05412 : ResultCallback2<R,A1,A2>(),
05413 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
05414
05415 virtual bool IsRepeatable() const {
05416 return !del;
05417 }
05418
05419 virtual void CheckIsRepeatable() const {
05420 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05421 }
05422
05423 virtual R Run(A1 a1,A2 a2) {
05424 if (!del) {
05425 R result = (*function_)(p1_,p2_,p3_,p4_,a1,a2);
05426 return result;
05427 } else {
05428 R result = (*function_)(p1_,p2_,p3_,p4_,a1,a2);
05429
05430 function_ = NULL;
05431 delete this;
05432 return result;
05433 }
05434 }
05435 };
05436
05437 template <bool del, class P1, class P2, class P3, class P4, class A1, class A2>
05438 class _FunctionResultCallback_4_2<del, void, P1, P2, P3, P4, A1, A2> : public Callback2<A1,A2> {
05439 public:
05440 typedef Callback2<A1,A2> base;
05441 typedef void (*FunctionSignature)(P1,P2,P3,P4,A1,A2);
05442
05443 private:
05444 FunctionSignature function_;
05445 P1 p1_;
05446 P2 p2_;
05447 P3 p3_;
05448 P4 p4_;
05449
05450 public:
05451 inline _FunctionResultCallback_4_2(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
05452 : Callback2<A1,A2>(),
05453 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
05454
05455 virtual bool IsRepeatable() const {
05456 return !del;
05457 }
05458
05459 virtual void CheckIsRepeatable() const {
05460 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05461 }
05462
05463 virtual void Run(A1 a1,A2 a2) {
05464 if (!del) {
05465 (*function_)(p1_,p2_,p3_,p4_,a1,a2);
05466 } else {
05467 (*function_)(p1_,p2_,p3_,p4_,a1,a2);
05468
05469 function_ = NULL;
05470 delete this;
05471 }
05472 }
05473 };
05474 }
05475 template <class R, class P1, class P2, class P3, class P4, class A1, class A2>
05476 inline typename _FunctionResultCallback_4_2<true,R,P1,P2,P3,P4,A1,A2>::base*
05477 NewCallback(R (*function)(P1,P2,P3,P4,A1,A2), P1 p1, P2 p2, P3 p3, P4 p4) {
05478 return new _FunctionResultCallback_4_2<true,R,P1,P2,P3,P4,A1,A2>(function, p1, p2, p3, p4);
05479 }
05480
05481 template <class R, class P1, class P2, class P3, class P4, class A1, class A2>
05482 inline typename _FunctionResultCallback_4_2<false,R,P1,P2,P3,P4,A1,A2>::base*
05483 NewPermanentCallback(R (*function)(P1,P2,P3,P4,A1,A2), P1 p1, P2 p2, P3 p3, P4 p4) {
05484 return new _FunctionResultCallback_4_2<false,R,P1,P2,P3,P4,A1,A2>(function, p1, p2, p3, p4);
05485 }
05486
05487 namespace {
05488 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05489 class _ConstMemberResultCallback_5_2 : public ResultCallback2<R,A1,A2> {
05490 public:
05491 typedef ResultCallback2<R,A1,A2> base;
05492 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2) const;
05493
05494 private:
05495 const T* object_;
05496 MemberSignature member_;
05497 P1 p1_;
05498 P2 p2_;
05499 P3 p3_;
05500 P4 p4_;
05501 P5 p5_;
05502
05503 public:
05504 inline _ConstMemberResultCallback_5_2(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
05505 : ResultCallback2<R,A1,A2>(),
05506 object_(object),
05507 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
05508
05509 virtual bool IsRepeatable() const {
05510 return !del;
05511 }
05512
05513 virtual void CheckIsRepeatable() const {
05514 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05515 }
05516
05517 virtual R Run(A1 a1,A2 a2) {
05518 if (!del) {
05519 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05520 return result;
05521 } else {
05522 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05523
05524 member_ = NULL;
05525 delete this;
05526 return result;
05527 }
05528 }
05529 };
05530
05531 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05532 class _ConstMemberResultCallback_5_2<del, void, T, P1, P2, P3, P4, P5, A1, A2> : public Callback2<A1,A2> {
05533 public:
05534 typedef Callback2<A1,A2> base;
05535 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2) const;
05536
05537 private:
05538 const T* object_;
05539 MemberSignature member_;
05540 P1 p1_;
05541 P2 p2_;
05542 P3 p3_;
05543 P4 p4_;
05544 P5 p5_;
05545
05546 public:
05547 inline _ConstMemberResultCallback_5_2(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
05548 : Callback2<A1,A2>(),
05549 object_(object),
05550 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
05551
05552 virtual bool IsRepeatable() const {
05553 return !del;
05554 }
05555
05556 virtual void CheckIsRepeatable() const {
05557 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05558 }
05559
05560 virtual void Run(A1 a1,A2 a2) {
05561 if (!del) {
05562 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05563 } else {
05564 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05565
05566 member_ = NULL;
05567 delete this;
05568 }
05569 }
05570 };
05571 }
05572 #ifndef SWIG
05573 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05574 inline typename _ConstMemberResultCallback_5_2<true,R,T1,P1,P2,P3,P4,P5,A1,A2>::base*
05575 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
05576 return new _ConstMemberResultCallback_5_2<true,R,T1,P1,P2,P3,P4,P5,A1,A2>(obj, member, p1, p2, p3, p4, p5);
05577 }
05578 #endif
05579
05580 #ifndef SWIG
05581 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05582 inline typename _ConstMemberResultCallback_5_2<false,R,T1,P1,P2,P3,P4,P5,A1,A2>::base*
05583 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
05584 return new _ConstMemberResultCallback_5_2<false,R,T1,P1,P2,P3,P4,P5,A1,A2>(obj, member, p1, p2, p3, p4, p5);
05585 }
05586 #endif
05587
05588 namespace {
05589 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05590 class _MemberResultCallback_5_2 : public ResultCallback2<R,A1,A2> {
05591 public:
05592 typedef ResultCallback2<R,A1,A2> base;
05593 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2) ;
05594
05595 private:
05596 T* object_;
05597 MemberSignature member_;
05598 P1 p1_;
05599 P2 p2_;
05600 P3 p3_;
05601 P4 p4_;
05602 P5 p5_;
05603
05604 public:
05605 inline _MemberResultCallback_5_2( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
05606 : ResultCallback2<R,A1,A2>(),
05607 object_(object),
05608 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
05609
05610 virtual bool IsRepeatable() const {
05611 return !del;
05612 }
05613
05614 virtual void CheckIsRepeatable() const {
05615 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05616 }
05617
05618 virtual R Run(A1 a1,A2 a2) {
05619 if (!del) {
05620 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05621 return result;
05622 } else {
05623 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05624
05625 member_ = NULL;
05626 delete this;
05627 return result;
05628 }
05629 }
05630 };
05631
05632 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05633 class _MemberResultCallback_5_2<del, void, T, P1, P2, P3, P4, P5, A1, A2> : public Callback2<A1,A2> {
05634 public:
05635 typedef Callback2<A1,A2> base;
05636 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2) ;
05637
05638 private:
05639 T* object_;
05640 MemberSignature member_;
05641 P1 p1_;
05642 P2 p2_;
05643 P3 p3_;
05644 P4 p4_;
05645 P5 p5_;
05646
05647 public:
05648 inline _MemberResultCallback_5_2( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
05649 : Callback2<A1,A2>(),
05650 object_(object),
05651 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
05652
05653 virtual bool IsRepeatable() const {
05654 return !del;
05655 }
05656
05657 virtual void CheckIsRepeatable() const {
05658 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05659 }
05660
05661 virtual void Run(A1 a1,A2 a2) {
05662 if (!del) {
05663 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05664 } else {
05665 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05666
05667 member_ = NULL;
05668 delete this;
05669 }
05670 }
05671 };
05672 }
05673 #ifndef SWIG
05674 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05675 inline typename _MemberResultCallback_5_2<true,R,T1,P1,P2,P3,P4,P5,A1,A2>::base*
05676 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
05677 return new _MemberResultCallback_5_2<true,R,T1,P1,P2,P3,P4,P5,A1,A2>(obj, member, p1, p2, p3, p4, p5);
05678 }
05679 #endif
05680
05681 #ifndef SWIG
05682 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05683 inline typename _MemberResultCallback_5_2<false,R,T1,P1,P2,P3,P4,P5,A1,A2>::base*
05684 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
05685 return new _MemberResultCallback_5_2<false,R,T1,P1,P2,P3,P4,P5,A1,A2>(obj, member, p1, p2, p3, p4, p5);
05686 }
05687 #endif
05688
05689 namespace {
05690 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05691 class _FunctionResultCallback_5_2 : public ResultCallback2<R,A1,A2> {
05692 public:
05693 typedef ResultCallback2<R,A1,A2> base;
05694 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,A1,A2);
05695
05696 private:
05697 FunctionSignature function_;
05698 P1 p1_;
05699 P2 p2_;
05700 P3 p3_;
05701 P4 p4_;
05702 P5 p5_;
05703
05704 public:
05705 inline _FunctionResultCallback_5_2(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
05706 : ResultCallback2<R,A1,A2>(),
05707 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
05708
05709 virtual bool IsRepeatable() const {
05710 return !del;
05711 }
05712
05713 virtual void CheckIsRepeatable() const {
05714 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05715 }
05716
05717 virtual R Run(A1 a1,A2 a2) {
05718 if (!del) {
05719 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05720 return result;
05721 } else {
05722 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05723
05724 function_ = NULL;
05725 delete this;
05726 return result;
05727 }
05728 }
05729 };
05730
05731 template <bool del, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05732 class _FunctionResultCallback_5_2<del, void, P1, P2, P3, P4, P5, A1, A2> : public Callback2<A1,A2> {
05733 public:
05734 typedef Callback2<A1,A2> base;
05735 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,A1,A2);
05736
05737 private:
05738 FunctionSignature function_;
05739 P1 p1_;
05740 P2 p2_;
05741 P3 p3_;
05742 P4 p4_;
05743 P5 p5_;
05744
05745 public:
05746 inline _FunctionResultCallback_5_2(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
05747 : Callback2<A1,A2>(),
05748 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
05749
05750 virtual bool IsRepeatable() const {
05751 return !del;
05752 }
05753
05754 virtual void CheckIsRepeatable() const {
05755 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05756 }
05757
05758 virtual void Run(A1 a1,A2 a2) {
05759 if (!del) {
05760 (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05761 } else {
05762 (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2);
05763
05764 function_ = NULL;
05765 delete this;
05766 }
05767 }
05768 };
05769 }
05770 template <class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05771 inline typename _FunctionResultCallback_5_2<true,R,P1,P2,P3,P4,P5,A1,A2>::base*
05772 NewCallback(R (*function)(P1,P2,P3,P4,P5,A1,A2), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
05773 return new _FunctionResultCallback_5_2<true,R,P1,P2,P3,P4,P5,A1,A2>(function, p1, p2, p3, p4, p5);
05774 }
05775
05776 template <class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2>
05777 inline typename _FunctionResultCallback_5_2<false,R,P1,P2,P3,P4,P5,A1,A2>::base*
05778 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,A1,A2), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
05779 return new _FunctionResultCallback_5_2<false,R,P1,P2,P3,P4,P5,A1,A2>(function, p1, p2, p3, p4, p5);
05780 }
05781
05782 namespace {
05783 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
05784 class _ConstMemberResultCallback_6_2 : public ResultCallback2<R,A1,A2> {
05785 public:
05786 typedef ResultCallback2<R,A1,A2> base;
05787 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2) const;
05788
05789 private:
05790 const T* object_;
05791 MemberSignature member_;
05792 P1 p1_;
05793 P2 p2_;
05794 P3 p3_;
05795 P4 p4_;
05796 P5 p5_;
05797 P6 p6_;
05798
05799 public:
05800 inline _ConstMemberResultCallback_6_2(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
05801 : ResultCallback2<R,A1,A2>(),
05802 object_(object),
05803 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
05804
05805 virtual bool IsRepeatable() const {
05806 return !del;
05807 }
05808
05809 virtual void CheckIsRepeatable() const {
05810 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05811 }
05812
05813 virtual R Run(A1 a1,A2 a2) {
05814 if (!del) {
05815 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
05816 return result;
05817 } else {
05818 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
05819
05820 member_ = NULL;
05821 delete this;
05822 return result;
05823 }
05824 }
05825 };
05826
05827 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
05828 class _ConstMemberResultCallback_6_2<del, void, T, P1, P2, P3, P4, P5, P6, A1, A2> : public Callback2<A1,A2> {
05829 public:
05830 typedef Callback2<A1,A2> base;
05831 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2) const;
05832
05833 private:
05834 const T* object_;
05835 MemberSignature member_;
05836 P1 p1_;
05837 P2 p2_;
05838 P3 p3_;
05839 P4 p4_;
05840 P5 p5_;
05841 P6 p6_;
05842
05843 public:
05844 inline _ConstMemberResultCallback_6_2(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
05845 : Callback2<A1,A2>(),
05846 object_(object),
05847 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
05848
05849 virtual bool IsRepeatable() const {
05850 return !del;
05851 }
05852
05853 virtual void CheckIsRepeatable() const {
05854 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05855 }
05856
05857 virtual void Run(A1 a1,A2 a2) {
05858 if (!del) {
05859 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
05860 } else {
05861 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
05862
05863 member_ = NULL;
05864 delete this;
05865 }
05866 }
05867 };
05868 }
05869 #ifndef SWIG
05870 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
05871 inline typename _ConstMemberResultCallback_6_2<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2>::base*
05872 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
05873 return new _ConstMemberResultCallback_6_2<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2>(obj, member, p1, p2, p3, p4, p5, p6);
05874 }
05875 #endif
05876
05877 #ifndef SWIG
05878 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
05879 inline typename _ConstMemberResultCallback_6_2<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2>::base*
05880 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
05881 return new _ConstMemberResultCallback_6_2<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2>(obj, member, p1, p2, p3, p4, p5, p6);
05882 }
05883 #endif
05884
05885 namespace {
05886 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
05887 class _MemberResultCallback_6_2 : public ResultCallback2<R,A1,A2> {
05888 public:
05889 typedef ResultCallback2<R,A1,A2> base;
05890 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2) ;
05891
05892 private:
05893 T* object_;
05894 MemberSignature member_;
05895 P1 p1_;
05896 P2 p2_;
05897 P3 p3_;
05898 P4 p4_;
05899 P5 p5_;
05900 P6 p6_;
05901
05902 public:
05903 inline _MemberResultCallback_6_2( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
05904 : ResultCallback2<R,A1,A2>(),
05905 object_(object),
05906 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
05907
05908 virtual bool IsRepeatable() const {
05909 return !del;
05910 }
05911
05912 virtual void CheckIsRepeatable() const {
05913 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
05914 }
05915
05916 virtual R Run(A1 a1,A2 a2) {
05917 if (!del) {
05918 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
05919 return result;
05920 } else {
05921 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
05922
05923 member_ = NULL;
05924 delete this;
05925 return result;
05926 }
05927 }
05928 };
05929
05930 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
05931 class _MemberResultCallback_6_2<del, void, T, P1, P2, P3, P4, P5, P6, A1, A2> : public Callback2<A1,A2> {
05932 public:
05933 typedef Callback2<A1,A2> base;
05934 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2) ;
05935
05936 private:
05937 T* object_;
05938 MemberSignature member_;
05939 P1 p1_;
05940 P2 p2_;
05941 P3 p3_;
05942 P4 p4_;
05943 P5 p5_;
05944 P6 p6_;
05945
05946 public:
05947 inline _MemberResultCallback_6_2( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
05948 : Callback2<A1,A2>(),
05949 object_(object),
05950 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
05951
05952 virtual bool IsRepeatable() const {
05953 return !del;
05954 }
05955
05956 virtual void CheckIsRepeatable() const {
05957 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
05958 }
05959
05960 virtual void Run(A1 a1,A2 a2) {
05961 if (!del) {
05962 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
05963 } else {
05964 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
05965
05966 member_ = NULL;
05967 delete this;
05968 }
05969 }
05970 };
05971 }
05972 #ifndef SWIG
05973 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
05974 inline typename _MemberResultCallback_6_2<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2>::base*
05975 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
05976 return new _MemberResultCallback_6_2<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2>(obj, member, p1, p2, p3, p4, p5, p6);
05977 }
05978 #endif
05979
05980 #ifndef SWIG
05981 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
05982 inline typename _MemberResultCallback_6_2<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2>::base*
05983 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
05984 return new _MemberResultCallback_6_2<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2>(obj, member, p1, p2, p3, p4, p5, p6);
05985 }
05986 #endif
05987
05988 namespace {
05989 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
05990 class _FunctionResultCallback_6_2 : public ResultCallback2<R,A1,A2> {
05991 public:
05992 typedef ResultCallback2<R,A1,A2> base;
05993 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1,A2);
05994
05995 private:
05996 FunctionSignature function_;
05997 P1 p1_;
05998 P2 p2_;
05999 P3 p3_;
06000 P4 p4_;
06001 P5 p5_;
06002 P6 p6_;
06003
06004 public:
06005 inline _FunctionResultCallback_6_2(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
06006 : ResultCallback2<R,A1,A2>(),
06007 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
06008
06009 virtual bool IsRepeatable() const {
06010 return !del;
06011 }
06012
06013 virtual void CheckIsRepeatable() const {
06014 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback2<R,A1,A2>");
06015 }
06016
06017 virtual R Run(A1 a1,A2 a2) {
06018 if (!del) {
06019 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
06020 return result;
06021 } else {
06022 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
06023
06024 function_ = NULL;
06025 delete this;
06026 return result;
06027 }
06028 }
06029 };
06030
06031 template <bool del, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
06032 class _FunctionResultCallback_6_2<del, void, P1, P2, P3, P4, P5, P6, A1, A2> : public Callback2<A1,A2> {
06033 public:
06034 typedef Callback2<A1,A2> base;
06035 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1,A2);
06036
06037 private:
06038 FunctionSignature function_;
06039 P1 p1_;
06040 P2 p2_;
06041 P3 p3_;
06042 P4 p4_;
06043 P5 p5_;
06044 P6 p6_;
06045
06046 public:
06047 inline _FunctionResultCallback_6_2(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
06048 : Callback2<A1,A2>(),
06049 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
06050
06051 virtual bool IsRepeatable() const {
06052 return !del;
06053 }
06054
06055 virtual void CheckIsRepeatable() const {
06056 if (del) CallbackUtils_::FailIsRepeatable("Callback2<A1,A2>");
06057 }
06058
06059 virtual void Run(A1 a1,A2 a2) {
06060 if (!del) {
06061 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
06062 } else {
06063 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2);
06064
06065 function_ = NULL;
06066 delete this;
06067 }
06068 }
06069 };
06070 }
06071 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
06072 inline typename _FunctionResultCallback_6_2<true,R,P1,P2,P3,P4,P5,P6,A1,A2>::base*
06073 NewCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1,A2), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
06074 return new _FunctionResultCallback_6_2<true,R,P1,P2,P3,P4,P5,P6,A1,A2>(function, p1, p2, p3, p4, p5, p6);
06075 }
06076
06077 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2>
06078 inline typename _FunctionResultCallback_6_2<false,R,P1,P2,P3,P4,P5,P6,A1,A2>::base*
06079 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1,A2), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
06080 return new _FunctionResultCallback_6_2<false,R,P1,P2,P3,P4,P5,P6,A1,A2>(function, p1, p2, p3, p4, p5, p6);
06081 }
06082
06083 namespace {
06084 template <bool del, class R, class T, class A1, class A2, class A3>
06085 class _ConstMemberResultCallback_0_3 : public ResultCallback3<R,A1,A2,A3> {
06086 public:
06087 typedef ResultCallback3<R,A1,A2,A3> base;
06088 typedef R (T::*MemberSignature)(A1,A2,A3) const;
06089
06090 private:
06091 const T* object_;
06092 MemberSignature member_;
06093
06094 public:
06095 inline _ConstMemberResultCallback_0_3(const T* object, MemberSignature member)
06096 : ResultCallback3<R,A1,A2,A3>(),
06097 object_(object),
06098 member_(member) { }
06099
06100 virtual bool IsRepeatable() const {
06101 return !del;
06102 }
06103
06104 virtual void CheckIsRepeatable() const {
06105 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06106 }
06107
06108 virtual R Run(A1 a1,A2 a2,A3 a3) {
06109 if (!del) {
06110 R result = (object_->*member_)(a1,a2,a3);
06111 return result;
06112 } else {
06113 R result = (object_->*member_)(a1,a2,a3);
06114
06115 member_ = NULL;
06116 delete this;
06117 return result;
06118 }
06119 }
06120 };
06121
06122 template <bool del, class T, class A1, class A2, class A3>
06123 class _ConstMemberResultCallback_0_3<del, void, T, A1, A2, A3> : public Callback3<A1,A2,A3> {
06124 public:
06125 typedef Callback3<A1,A2,A3> base;
06126 typedef void (T::*MemberSignature)(A1,A2,A3) const;
06127
06128 private:
06129 const T* object_;
06130 MemberSignature member_;
06131
06132 public:
06133 inline _ConstMemberResultCallback_0_3(const T* object, MemberSignature member)
06134 : Callback3<A1,A2,A3>(),
06135 object_(object),
06136 member_(member) { }
06137
06138 virtual bool IsRepeatable() const {
06139 return !del;
06140 }
06141
06142 virtual void CheckIsRepeatable() const {
06143 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06144 }
06145
06146 virtual void Run(A1 a1,A2 a2,A3 a3) {
06147 if (!del) {
06148 (object_->*member_)(a1,a2,a3);
06149 } else {
06150 (object_->*member_)(a1,a2,a3);
06151
06152 member_ = NULL;
06153 delete this;
06154 }
06155 }
06156 };
06157 }
06158 #ifndef SWIG
06159 template <class T1, class T2, class R, class A1, class A2, class A3>
06160 inline typename _ConstMemberResultCallback_0_3<true,R,T1,A1,A2,A3>::base*
06161 NewCallback(const T1* obj, R (T2::*member)(A1,A2,A3) const) {
06162 return new _ConstMemberResultCallback_0_3<true,R,T1,A1,A2,A3>(obj, member);
06163 }
06164 #endif
06165
06166 #ifndef SWIG
06167 template <class T1, class T2, class R, class A1, class A2, class A3>
06168 inline typename _ConstMemberResultCallback_0_3<false,R,T1,A1,A2,A3>::base*
06169 NewPermanentCallback(const T1* obj, R (T2::*member)(A1,A2,A3) const) {
06170 return new _ConstMemberResultCallback_0_3<false,R,T1,A1,A2,A3>(obj, member);
06171 }
06172 #endif
06173
06174 namespace {
06175 template <bool del, class R, class T, class A1, class A2, class A3>
06176 class _MemberResultCallback_0_3 : public ResultCallback3<R,A1,A2,A3> {
06177 public:
06178 typedef ResultCallback3<R,A1,A2,A3> base;
06179 typedef R (T::*MemberSignature)(A1,A2,A3) ;
06180
06181 private:
06182 T* object_;
06183 MemberSignature member_;
06184
06185 public:
06186 inline _MemberResultCallback_0_3( T* object, MemberSignature member)
06187 : ResultCallback3<R,A1,A2,A3>(),
06188 object_(object),
06189 member_(member) { }
06190
06191 virtual bool IsRepeatable() const {
06192 return !del;
06193 }
06194
06195 virtual void CheckIsRepeatable() const {
06196 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06197 }
06198
06199 virtual R Run(A1 a1,A2 a2,A3 a3) {
06200 if (!del) {
06201 R result = (object_->*member_)(a1,a2,a3);
06202 return result;
06203 } else {
06204 R result = (object_->*member_)(a1,a2,a3);
06205
06206 member_ = NULL;
06207 delete this;
06208 return result;
06209 }
06210 }
06211 };
06212
06213 template <bool del, class T, class A1, class A2, class A3>
06214 class _MemberResultCallback_0_3<del, void, T, A1, A2, A3> : public Callback3<A1,A2,A3> {
06215 public:
06216 typedef Callback3<A1,A2,A3> base;
06217 typedef void (T::*MemberSignature)(A1,A2,A3) ;
06218
06219 private:
06220 T* object_;
06221 MemberSignature member_;
06222
06223 public:
06224 inline _MemberResultCallback_0_3( T* object, MemberSignature member)
06225 : Callback3<A1,A2,A3>(),
06226 object_(object),
06227 member_(member) { }
06228
06229 virtual bool IsRepeatable() const {
06230 return !del;
06231 }
06232
06233 virtual void CheckIsRepeatable() const {
06234 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06235 }
06236
06237 virtual void Run(A1 a1,A2 a2,A3 a3) {
06238 if (!del) {
06239 (object_->*member_)(a1,a2,a3);
06240 } else {
06241 (object_->*member_)(a1,a2,a3);
06242
06243 member_ = NULL;
06244 delete this;
06245 }
06246 }
06247 };
06248 }
06249 #ifndef SWIG
06250 template <class T1, class T2, class R, class A1, class A2, class A3>
06251 inline typename _MemberResultCallback_0_3<true,R,T1,A1,A2,A3>::base*
06252 NewCallback( T1* obj, R (T2::*member)(A1,A2,A3) ) {
06253 return new _MemberResultCallback_0_3<true,R,T1,A1,A2,A3>(obj, member);
06254 }
06255 #endif
06256
06257 #ifndef SWIG
06258 template <class T1, class T2, class R, class A1, class A2, class A3>
06259 inline typename _MemberResultCallback_0_3<false,R,T1,A1,A2,A3>::base*
06260 NewPermanentCallback( T1* obj, R (T2::*member)(A1,A2,A3) ) {
06261 return new _MemberResultCallback_0_3<false,R,T1,A1,A2,A3>(obj, member);
06262 }
06263 #endif
06264
06265 namespace {
06266 template <bool del, class R, class A1, class A2, class A3>
06267 class _FunctionResultCallback_0_3 : public ResultCallback3<R,A1,A2,A3> {
06268 public:
06269 typedef ResultCallback3<R,A1,A2,A3> base;
06270 typedef R (*FunctionSignature)(A1,A2,A3);
06271
06272 private:
06273 FunctionSignature function_;
06274
06275 public:
06276 inline _FunctionResultCallback_0_3(FunctionSignature function)
06277 : ResultCallback3<R,A1,A2,A3>(),
06278 function_(function) { }
06279
06280 virtual bool IsRepeatable() const {
06281 return !del;
06282 }
06283
06284 virtual void CheckIsRepeatable() const {
06285 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06286 }
06287
06288 virtual R Run(A1 a1,A2 a2,A3 a3) {
06289 if (!del) {
06290 R result = (*function_)(a1,a2,a3);
06291 return result;
06292 } else {
06293 R result = (*function_)(a1,a2,a3);
06294
06295 function_ = NULL;
06296 delete this;
06297 return result;
06298 }
06299 }
06300 };
06301
06302 template <bool del, class A1, class A2, class A3>
06303 class _FunctionResultCallback_0_3<del, void, A1, A2, A3> : public Callback3<A1,A2,A3> {
06304 public:
06305 typedef Callback3<A1,A2,A3> base;
06306 typedef void (*FunctionSignature)(A1,A2,A3);
06307
06308 private:
06309 FunctionSignature function_;
06310
06311 public:
06312 inline _FunctionResultCallback_0_3(FunctionSignature function)
06313 : Callback3<A1,A2,A3>(),
06314 function_(function) { }
06315
06316 virtual bool IsRepeatable() const {
06317 return !del;
06318 }
06319
06320 virtual void CheckIsRepeatable() const {
06321 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06322 }
06323
06324 virtual void Run(A1 a1,A2 a2,A3 a3) {
06325 if (!del) {
06326 (*function_)(a1,a2,a3);
06327 } else {
06328 (*function_)(a1,a2,a3);
06329
06330 function_ = NULL;
06331 delete this;
06332 }
06333 }
06334 };
06335 }
06336 template <class R, class A1, class A2, class A3>
06337 inline typename _FunctionResultCallback_0_3<true,R,A1,A2,A3>::base*
06338 NewCallback(R (*function)(A1,A2,A3)) {
06339 return new _FunctionResultCallback_0_3<true,R,A1,A2,A3>(function);
06340 }
06341
06342 template <class R, class A1, class A2, class A3>
06343 inline typename _FunctionResultCallback_0_3<false,R,A1,A2,A3>::base*
06344 NewPermanentCallback(R (*function)(A1,A2,A3)) {
06345 return new _FunctionResultCallback_0_3<false,R,A1,A2,A3>(function);
06346 }
06347
06348 namespace {
06349 template <bool del, class R, class T, class P1, class A1, class A2, class A3>
06350 class _ConstMemberResultCallback_1_3 : public ResultCallback3<R,A1,A2,A3> {
06351 public:
06352 typedef ResultCallback3<R,A1,A2,A3> base;
06353 typedef R (T::*MemberSignature)(P1,A1,A2,A3) const;
06354
06355 private:
06356 const T* object_;
06357 MemberSignature member_;
06358 P1 p1_;
06359
06360 public:
06361 inline _ConstMemberResultCallback_1_3(const T* object, MemberSignature member, P1 p1)
06362 : ResultCallback3<R,A1,A2,A3>(),
06363 object_(object),
06364 member_(member), p1_(p1) { }
06365
06366 virtual bool IsRepeatable() const {
06367 return !del;
06368 }
06369
06370 virtual void CheckIsRepeatable() const {
06371 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06372 }
06373
06374 virtual R Run(A1 a1,A2 a2,A3 a3) {
06375 if (!del) {
06376 R result = (object_->*member_)(p1_,a1,a2,a3);
06377 return result;
06378 } else {
06379 R result = (object_->*member_)(p1_,a1,a2,a3);
06380
06381 member_ = NULL;
06382 delete this;
06383 return result;
06384 }
06385 }
06386 };
06387
06388 template <bool del, class T, class P1, class A1, class A2, class A3>
06389 class _ConstMemberResultCallback_1_3<del, void, T, P1, A1, A2, A3> : public Callback3<A1,A2,A3> {
06390 public:
06391 typedef Callback3<A1,A2,A3> base;
06392 typedef void (T::*MemberSignature)(P1,A1,A2,A3) const;
06393
06394 private:
06395 const T* object_;
06396 MemberSignature member_;
06397 P1 p1_;
06398
06399 public:
06400 inline _ConstMemberResultCallback_1_3(const T* object, MemberSignature member, P1 p1)
06401 : Callback3<A1,A2,A3>(),
06402 object_(object),
06403 member_(member), p1_(p1) { }
06404
06405 virtual bool IsRepeatable() const {
06406 return !del;
06407 }
06408
06409 virtual void CheckIsRepeatable() const {
06410 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06411 }
06412
06413 virtual void Run(A1 a1,A2 a2,A3 a3) {
06414 if (!del) {
06415 (object_->*member_)(p1_,a1,a2,a3);
06416 } else {
06417 (object_->*member_)(p1_,a1,a2,a3);
06418
06419 member_ = NULL;
06420 delete this;
06421 }
06422 }
06423 };
06424 }
06425 #ifndef SWIG
06426 template <class T1, class T2, class R, class P1, class A1, class A2, class A3>
06427 inline typename _ConstMemberResultCallback_1_3<true,R,T1,P1,A1,A2,A3>::base*
06428 NewCallback(const T1* obj, R (T2::*member)(P1,A1,A2,A3) const, P1 p1) {
06429 return new _ConstMemberResultCallback_1_3<true,R,T1,P1,A1,A2,A3>(obj, member, p1);
06430 }
06431 #endif
06432
06433 #ifndef SWIG
06434 template <class T1, class T2, class R, class P1, class A1, class A2, class A3>
06435 inline typename _ConstMemberResultCallback_1_3<false,R,T1,P1,A1,A2,A3>::base*
06436 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,A1,A2,A3) const, P1 p1) {
06437 return new _ConstMemberResultCallback_1_3<false,R,T1,P1,A1,A2,A3>(obj, member, p1);
06438 }
06439 #endif
06440
06441 namespace {
06442 template <bool del, class R, class T, class P1, class A1, class A2, class A3>
06443 class _MemberResultCallback_1_3 : public ResultCallback3<R,A1,A2,A3> {
06444 public:
06445 typedef ResultCallback3<R,A1,A2,A3> base;
06446 typedef R (T::*MemberSignature)(P1,A1,A2,A3) ;
06447
06448 private:
06449 T* object_;
06450 MemberSignature member_;
06451 P1 p1_;
06452
06453 public:
06454 inline _MemberResultCallback_1_3( T* object, MemberSignature member, P1 p1)
06455 : ResultCallback3<R,A1,A2,A3>(),
06456 object_(object),
06457 member_(member), p1_(p1) { }
06458
06459 virtual bool IsRepeatable() const {
06460 return !del;
06461 }
06462
06463 virtual void CheckIsRepeatable() const {
06464 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06465 }
06466
06467 virtual R Run(A1 a1,A2 a2,A3 a3) {
06468 if (!del) {
06469 R result = (object_->*member_)(p1_,a1,a2,a3);
06470 return result;
06471 } else {
06472 R result = (object_->*member_)(p1_,a1,a2,a3);
06473
06474 member_ = NULL;
06475 delete this;
06476 return result;
06477 }
06478 }
06479 };
06480
06481 template <bool del, class T, class P1, class A1, class A2, class A3>
06482 class _MemberResultCallback_1_3<del, void, T, P1, A1, A2, A3> : public Callback3<A1,A2,A3> {
06483 public:
06484 typedef Callback3<A1,A2,A3> base;
06485 typedef void (T::*MemberSignature)(P1,A1,A2,A3) ;
06486
06487 private:
06488 T* object_;
06489 MemberSignature member_;
06490 P1 p1_;
06491
06492 public:
06493 inline _MemberResultCallback_1_3( T* object, MemberSignature member, P1 p1)
06494 : Callback3<A1,A2,A3>(),
06495 object_(object),
06496 member_(member), p1_(p1) { }
06497
06498 virtual bool IsRepeatable() const {
06499 return !del;
06500 }
06501
06502 virtual void CheckIsRepeatable() const {
06503 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06504 }
06505
06506 virtual void Run(A1 a1,A2 a2,A3 a3) {
06507 if (!del) {
06508 (object_->*member_)(p1_,a1,a2,a3);
06509 } else {
06510 (object_->*member_)(p1_,a1,a2,a3);
06511
06512 member_ = NULL;
06513 delete this;
06514 }
06515 }
06516 };
06517 }
06518 #ifndef SWIG
06519 template <class T1, class T2, class R, class P1, class A1, class A2, class A3>
06520 inline typename _MemberResultCallback_1_3<true,R,T1,P1,A1,A2,A3>::base*
06521 NewCallback( T1* obj, R (T2::*member)(P1,A1,A2,A3) , P1 p1) {
06522 return new _MemberResultCallback_1_3<true,R,T1,P1,A1,A2,A3>(obj, member, p1);
06523 }
06524 #endif
06525
06526 #ifndef SWIG
06527 template <class T1, class T2, class R, class P1, class A1, class A2, class A3>
06528 inline typename _MemberResultCallback_1_3<false,R,T1,P1,A1,A2,A3>::base*
06529 NewPermanentCallback( T1* obj, R (T2::*member)(P1,A1,A2,A3) , P1 p1) {
06530 return new _MemberResultCallback_1_3<false,R,T1,P1,A1,A2,A3>(obj, member, p1);
06531 }
06532 #endif
06533
06534 namespace {
06535 template <bool del, class R, class P1, class A1, class A2, class A3>
06536 class _FunctionResultCallback_1_3 : public ResultCallback3<R,A1,A2,A3> {
06537 public:
06538 typedef ResultCallback3<R,A1,A2,A3> base;
06539 typedef R (*FunctionSignature)(P1,A1,A2,A3);
06540
06541 private:
06542 FunctionSignature function_;
06543 P1 p1_;
06544
06545 public:
06546 inline _FunctionResultCallback_1_3(FunctionSignature function, P1 p1)
06547 : ResultCallback3<R,A1,A2,A3>(),
06548 function_(function), p1_(p1) { }
06549
06550 virtual bool IsRepeatable() const {
06551 return !del;
06552 }
06553
06554 virtual void CheckIsRepeatable() const {
06555 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06556 }
06557
06558 virtual R Run(A1 a1,A2 a2,A3 a3) {
06559 if (!del) {
06560 R result = (*function_)(p1_,a1,a2,a3);
06561 return result;
06562 } else {
06563 R result = (*function_)(p1_,a1,a2,a3);
06564
06565 function_ = NULL;
06566 delete this;
06567 return result;
06568 }
06569 }
06570 };
06571
06572 template <bool del, class P1, class A1, class A2, class A3>
06573 class _FunctionResultCallback_1_3<del, void, P1, A1, A2, A3> : public Callback3<A1,A2,A3> {
06574 public:
06575 typedef Callback3<A1,A2,A3> base;
06576 typedef void (*FunctionSignature)(P1,A1,A2,A3);
06577
06578 private:
06579 FunctionSignature function_;
06580 P1 p1_;
06581
06582 public:
06583 inline _FunctionResultCallback_1_3(FunctionSignature function, P1 p1)
06584 : Callback3<A1,A2,A3>(),
06585 function_(function), p1_(p1) { }
06586
06587 virtual bool IsRepeatable() const {
06588 return !del;
06589 }
06590
06591 virtual void CheckIsRepeatable() const {
06592 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06593 }
06594
06595 virtual void Run(A1 a1,A2 a2,A3 a3) {
06596 if (!del) {
06597 (*function_)(p1_,a1,a2,a3);
06598 } else {
06599 (*function_)(p1_,a1,a2,a3);
06600
06601 function_ = NULL;
06602 delete this;
06603 }
06604 }
06605 };
06606 }
06607 template <class R, class P1, class A1, class A2, class A3>
06608 inline typename _FunctionResultCallback_1_3<true,R,P1,A1,A2,A3>::base*
06609 NewCallback(R (*function)(P1,A1,A2,A3), P1 p1) {
06610 return new _FunctionResultCallback_1_3<true,R,P1,A1,A2,A3>(function, p1);
06611 }
06612
06613 template <class R, class P1, class A1, class A2, class A3>
06614 inline typename _FunctionResultCallback_1_3<false,R,P1,A1,A2,A3>::base*
06615 NewPermanentCallback(R (*function)(P1,A1,A2,A3), P1 p1) {
06616 return new _FunctionResultCallback_1_3<false,R,P1,A1,A2,A3>(function, p1);
06617 }
06618
06619 namespace {
06620 template <bool del, class R, class T, class P1, class P2, class A1, class A2, class A3>
06621 class _ConstMemberResultCallback_2_3 : public ResultCallback3<R,A1,A2,A3> {
06622 public:
06623 typedef ResultCallback3<R,A1,A2,A3> base;
06624 typedef R (T::*MemberSignature)(P1,P2,A1,A2,A3) const;
06625
06626 private:
06627 const T* object_;
06628 MemberSignature member_;
06629 P1 p1_;
06630 P2 p2_;
06631
06632 public:
06633 inline _ConstMemberResultCallback_2_3(const T* object, MemberSignature member, P1 p1, P2 p2)
06634 : ResultCallback3<R,A1,A2,A3>(),
06635 object_(object),
06636 member_(member), p1_(p1), p2_(p2) { }
06637
06638 virtual bool IsRepeatable() const {
06639 return !del;
06640 }
06641
06642 virtual void CheckIsRepeatable() const {
06643 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06644 }
06645
06646 virtual R Run(A1 a1,A2 a2,A3 a3) {
06647 if (!del) {
06648 R result = (object_->*member_)(p1_,p2_,a1,a2,a3);
06649 return result;
06650 } else {
06651 R result = (object_->*member_)(p1_,p2_,a1,a2,a3);
06652
06653 member_ = NULL;
06654 delete this;
06655 return result;
06656 }
06657 }
06658 };
06659
06660 template <bool del, class T, class P1, class P2, class A1, class A2, class A3>
06661 class _ConstMemberResultCallback_2_3<del, void, T, P1, P2, A1, A2, A3> : public Callback3<A1,A2,A3> {
06662 public:
06663 typedef Callback3<A1,A2,A3> base;
06664 typedef void (T::*MemberSignature)(P1,P2,A1,A2,A3) const;
06665
06666 private:
06667 const T* object_;
06668 MemberSignature member_;
06669 P1 p1_;
06670 P2 p2_;
06671
06672 public:
06673 inline _ConstMemberResultCallback_2_3(const T* object, MemberSignature member, P1 p1, P2 p2)
06674 : Callback3<A1,A2,A3>(),
06675 object_(object),
06676 member_(member), p1_(p1), p2_(p2) { }
06677
06678 virtual bool IsRepeatable() const {
06679 return !del;
06680 }
06681
06682 virtual void CheckIsRepeatable() const {
06683 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06684 }
06685
06686 virtual void Run(A1 a1,A2 a2,A3 a3) {
06687 if (!del) {
06688 (object_->*member_)(p1_,p2_,a1,a2,a3);
06689 } else {
06690 (object_->*member_)(p1_,p2_,a1,a2,a3);
06691
06692 member_ = NULL;
06693 delete this;
06694 }
06695 }
06696 };
06697 }
06698 #ifndef SWIG
06699 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3>
06700 inline typename _ConstMemberResultCallback_2_3<true,R,T1,P1,P2,A1,A2,A3>::base*
06701 NewCallback(const T1* obj, R (T2::*member)(P1,P2,A1,A2,A3) const, P1 p1, P2 p2) {
06702 return new _ConstMemberResultCallback_2_3<true,R,T1,P1,P2,A1,A2,A3>(obj, member, p1, p2);
06703 }
06704 #endif
06705
06706 #ifndef SWIG
06707 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3>
06708 inline typename _ConstMemberResultCallback_2_3<false,R,T1,P1,P2,A1,A2,A3>::base*
06709 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,A1,A2,A3) const, P1 p1, P2 p2) {
06710 return new _ConstMemberResultCallback_2_3<false,R,T1,P1,P2,A1,A2,A3>(obj, member, p1, p2);
06711 }
06712 #endif
06713
06714 namespace {
06715 template <bool del, class R, class T, class P1, class P2, class A1, class A2, class A3>
06716 class _MemberResultCallback_2_3 : public ResultCallback3<R,A1,A2,A3> {
06717 public:
06718 typedef ResultCallback3<R,A1,A2,A3> base;
06719 typedef R (T::*MemberSignature)(P1,P2,A1,A2,A3) ;
06720
06721 private:
06722 T* object_;
06723 MemberSignature member_;
06724 P1 p1_;
06725 P2 p2_;
06726
06727 public:
06728 inline _MemberResultCallback_2_3( T* object, MemberSignature member, P1 p1, P2 p2)
06729 : ResultCallback3<R,A1,A2,A3>(),
06730 object_(object),
06731 member_(member), p1_(p1), p2_(p2) { }
06732
06733 virtual bool IsRepeatable() const {
06734 return !del;
06735 }
06736
06737 virtual void CheckIsRepeatable() const {
06738 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06739 }
06740
06741 virtual R Run(A1 a1,A2 a2,A3 a3) {
06742 if (!del) {
06743 R result = (object_->*member_)(p1_,p2_,a1,a2,a3);
06744 return result;
06745 } else {
06746 R result = (object_->*member_)(p1_,p2_,a1,a2,a3);
06747
06748 member_ = NULL;
06749 delete this;
06750 return result;
06751 }
06752 }
06753 };
06754
06755 template <bool del, class T, class P1, class P2, class A1, class A2, class A3>
06756 class _MemberResultCallback_2_3<del, void, T, P1, P2, A1, A2, A3> : public Callback3<A1,A2,A3> {
06757 public:
06758 typedef Callback3<A1,A2,A3> base;
06759 typedef void (T::*MemberSignature)(P1,P2,A1,A2,A3) ;
06760
06761 private:
06762 T* object_;
06763 MemberSignature member_;
06764 P1 p1_;
06765 P2 p2_;
06766
06767 public:
06768 inline _MemberResultCallback_2_3( T* object, MemberSignature member, P1 p1, P2 p2)
06769 : Callback3<A1,A2,A3>(),
06770 object_(object),
06771 member_(member), p1_(p1), p2_(p2) { }
06772
06773 virtual bool IsRepeatable() const {
06774 return !del;
06775 }
06776
06777 virtual void CheckIsRepeatable() const {
06778 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06779 }
06780
06781 virtual void Run(A1 a1,A2 a2,A3 a3) {
06782 if (!del) {
06783 (object_->*member_)(p1_,p2_,a1,a2,a3);
06784 } else {
06785 (object_->*member_)(p1_,p2_,a1,a2,a3);
06786
06787 member_ = NULL;
06788 delete this;
06789 }
06790 }
06791 };
06792 }
06793 #ifndef SWIG
06794 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3>
06795 inline typename _MemberResultCallback_2_3<true,R,T1,P1,P2,A1,A2,A3>::base*
06796 NewCallback( T1* obj, R (T2::*member)(P1,P2,A1,A2,A3) , P1 p1, P2 p2) {
06797 return new _MemberResultCallback_2_3<true,R,T1,P1,P2,A1,A2,A3>(obj, member, p1, p2);
06798 }
06799 #endif
06800
06801 #ifndef SWIG
06802 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3>
06803 inline typename _MemberResultCallback_2_3<false,R,T1,P1,P2,A1,A2,A3>::base*
06804 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,A1,A2,A3) , P1 p1, P2 p2) {
06805 return new _MemberResultCallback_2_3<false,R,T1,P1,P2,A1,A2,A3>(obj, member, p1, p2);
06806 }
06807 #endif
06808
06809 namespace {
06810 template <bool del, class R, class P1, class P2, class A1, class A2, class A3>
06811 class _FunctionResultCallback_2_3 : public ResultCallback3<R,A1,A2,A3> {
06812 public:
06813 typedef ResultCallback3<R,A1,A2,A3> base;
06814 typedef R (*FunctionSignature)(P1,P2,A1,A2,A3);
06815
06816 private:
06817 FunctionSignature function_;
06818 P1 p1_;
06819 P2 p2_;
06820
06821 public:
06822 inline _FunctionResultCallback_2_3(FunctionSignature function, P1 p1, P2 p2)
06823 : ResultCallback3<R,A1,A2,A3>(),
06824 function_(function), p1_(p1), p2_(p2) { }
06825
06826 virtual bool IsRepeatable() const {
06827 return !del;
06828 }
06829
06830 virtual void CheckIsRepeatable() const {
06831 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06832 }
06833
06834 virtual R Run(A1 a1,A2 a2,A3 a3) {
06835 if (!del) {
06836 R result = (*function_)(p1_,p2_,a1,a2,a3);
06837 return result;
06838 } else {
06839 R result = (*function_)(p1_,p2_,a1,a2,a3);
06840
06841 function_ = NULL;
06842 delete this;
06843 return result;
06844 }
06845 }
06846 };
06847
06848 template <bool del, class P1, class P2, class A1, class A2, class A3>
06849 class _FunctionResultCallback_2_3<del, void, P1, P2, A1, A2, A3> : public Callback3<A1,A2,A3> {
06850 public:
06851 typedef Callback3<A1,A2,A3> base;
06852 typedef void (*FunctionSignature)(P1,P2,A1,A2,A3);
06853
06854 private:
06855 FunctionSignature function_;
06856 P1 p1_;
06857 P2 p2_;
06858
06859 public:
06860 inline _FunctionResultCallback_2_3(FunctionSignature function, P1 p1, P2 p2)
06861 : Callback3<A1,A2,A3>(),
06862 function_(function), p1_(p1), p2_(p2) { }
06863
06864 virtual bool IsRepeatable() const {
06865 return !del;
06866 }
06867
06868 virtual void CheckIsRepeatable() const {
06869 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06870 }
06871
06872 virtual void Run(A1 a1,A2 a2,A3 a3) {
06873 if (!del) {
06874 (*function_)(p1_,p2_,a1,a2,a3);
06875 } else {
06876 (*function_)(p1_,p2_,a1,a2,a3);
06877
06878 function_ = NULL;
06879 delete this;
06880 }
06881 }
06882 };
06883 }
06884 template <class R, class P1, class P2, class A1, class A2, class A3>
06885 inline typename _FunctionResultCallback_2_3<true,R,P1,P2,A1,A2,A3>::base*
06886 NewCallback(R (*function)(P1,P2,A1,A2,A3), P1 p1, P2 p2) {
06887 return new _FunctionResultCallback_2_3<true,R,P1,P2,A1,A2,A3>(function, p1, p2);
06888 }
06889
06890 template <class R, class P1, class P2, class A1, class A2, class A3>
06891 inline typename _FunctionResultCallback_2_3<false,R,P1,P2,A1,A2,A3>::base*
06892 NewPermanentCallback(R (*function)(P1,P2,A1,A2,A3), P1 p1, P2 p2) {
06893 return new _FunctionResultCallback_2_3<false,R,P1,P2,A1,A2,A3>(function, p1, p2);
06894 }
06895
06896 namespace {
06897 template <bool del, class R, class T, class P1, class P2, class P3, class A1, class A2, class A3>
06898 class _ConstMemberResultCallback_3_3 : public ResultCallback3<R,A1,A2,A3> {
06899 public:
06900 typedef ResultCallback3<R,A1,A2,A3> base;
06901 typedef R (T::*MemberSignature)(P1,P2,P3,A1,A2,A3) const;
06902
06903 private:
06904 const T* object_;
06905 MemberSignature member_;
06906 P1 p1_;
06907 P2 p2_;
06908 P3 p3_;
06909
06910 public:
06911 inline _ConstMemberResultCallback_3_3(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
06912 : ResultCallback3<R,A1,A2,A3>(),
06913 object_(object),
06914 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
06915
06916 virtual bool IsRepeatable() const {
06917 return !del;
06918 }
06919
06920 virtual void CheckIsRepeatable() const {
06921 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
06922 }
06923
06924 virtual R Run(A1 a1,A2 a2,A3 a3) {
06925 if (!del) {
06926 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3);
06927 return result;
06928 } else {
06929 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3);
06930
06931 member_ = NULL;
06932 delete this;
06933 return result;
06934 }
06935 }
06936 };
06937
06938 template <bool del, class T, class P1, class P2, class P3, class A1, class A2, class A3>
06939 class _ConstMemberResultCallback_3_3<del, void, T, P1, P2, P3, A1, A2, A3> : public Callback3<A1,A2,A3> {
06940 public:
06941 typedef Callback3<A1,A2,A3> base;
06942 typedef void (T::*MemberSignature)(P1,P2,P3,A1,A2,A3) const;
06943
06944 private:
06945 const T* object_;
06946 MemberSignature member_;
06947 P1 p1_;
06948 P2 p2_;
06949 P3 p3_;
06950
06951 public:
06952 inline _ConstMemberResultCallback_3_3(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
06953 : Callback3<A1,A2,A3>(),
06954 object_(object),
06955 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
06956
06957 virtual bool IsRepeatable() const {
06958 return !del;
06959 }
06960
06961 virtual void CheckIsRepeatable() const {
06962 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
06963 }
06964
06965 virtual void Run(A1 a1,A2 a2,A3 a3) {
06966 if (!del) {
06967 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3);
06968 } else {
06969 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3);
06970
06971 member_ = NULL;
06972 delete this;
06973 }
06974 }
06975 };
06976 }
06977 #ifndef SWIG
06978 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3>
06979 inline typename _ConstMemberResultCallback_3_3<true,R,T1,P1,P2,P3,A1,A2,A3>::base*
06980 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3) const, P1 p1, P2 p2, P3 p3) {
06981 return new _ConstMemberResultCallback_3_3<true,R,T1,P1,P2,P3,A1,A2,A3>(obj, member, p1, p2, p3);
06982 }
06983 #endif
06984
06985 #ifndef SWIG
06986 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3>
06987 inline typename _ConstMemberResultCallback_3_3<false,R,T1,P1,P2,P3,A1,A2,A3>::base*
06988 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3) const, P1 p1, P2 p2, P3 p3) {
06989 return new _ConstMemberResultCallback_3_3<false,R,T1,P1,P2,P3,A1,A2,A3>(obj, member, p1, p2, p3);
06990 }
06991 #endif
06992
06993 namespace {
06994 template <bool del, class R, class T, class P1, class P2, class P3, class A1, class A2, class A3>
06995 class _MemberResultCallback_3_3 : public ResultCallback3<R,A1,A2,A3> {
06996 public:
06997 typedef ResultCallback3<R,A1,A2,A3> base;
06998 typedef R (T::*MemberSignature)(P1,P2,P3,A1,A2,A3) ;
06999
07000 private:
07001 T* object_;
07002 MemberSignature member_;
07003 P1 p1_;
07004 P2 p2_;
07005 P3 p3_;
07006
07007 public:
07008 inline _MemberResultCallback_3_3( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
07009 : ResultCallback3<R,A1,A2,A3>(),
07010 object_(object),
07011 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
07012
07013 virtual bool IsRepeatable() const {
07014 return !del;
07015 }
07016
07017 virtual void CheckIsRepeatable() const {
07018 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07019 }
07020
07021 virtual R Run(A1 a1,A2 a2,A3 a3) {
07022 if (!del) {
07023 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3);
07024 return result;
07025 } else {
07026 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3);
07027
07028 member_ = NULL;
07029 delete this;
07030 return result;
07031 }
07032 }
07033 };
07034
07035 template <bool del, class T, class P1, class P2, class P3, class A1, class A2, class A3>
07036 class _MemberResultCallback_3_3<del, void, T, P1, P2, P3, A1, A2, A3> : public Callback3<A1,A2,A3> {
07037 public:
07038 typedef Callback3<A1,A2,A3> base;
07039 typedef void (T::*MemberSignature)(P1,P2,P3,A1,A2,A3) ;
07040
07041 private:
07042 T* object_;
07043 MemberSignature member_;
07044 P1 p1_;
07045 P2 p2_;
07046 P3 p3_;
07047
07048 public:
07049 inline _MemberResultCallback_3_3( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
07050 : Callback3<A1,A2,A3>(),
07051 object_(object),
07052 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
07053
07054 virtual bool IsRepeatable() const {
07055 return !del;
07056 }
07057
07058 virtual void CheckIsRepeatable() const {
07059 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07060 }
07061
07062 virtual void Run(A1 a1,A2 a2,A3 a3) {
07063 if (!del) {
07064 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3);
07065 } else {
07066 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3);
07067
07068 member_ = NULL;
07069 delete this;
07070 }
07071 }
07072 };
07073 }
07074 #ifndef SWIG
07075 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3>
07076 inline typename _MemberResultCallback_3_3<true,R,T1,P1,P2,P3,A1,A2,A3>::base*
07077 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3) , P1 p1, P2 p2, P3 p3) {
07078 return new _MemberResultCallback_3_3<true,R,T1,P1,P2,P3,A1,A2,A3>(obj, member, p1, p2, p3);
07079 }
07080 #endif
07081
07082 #ifndef SWIG
07083 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3>
07084 inline typename _MemberResultCallback_3_3<false,R,T1,P1,P2,P3,A1,A2,A3>::base*
07085 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3) , P1 p1, P2 p2, P3 p3) {
07086 return new _MemberResultCallback_3_3<false,R,T1,P1,P2,P3,A1,A2,A3>(obj, member, p1, p2, p3);
07087 }
07088 #endif
07089
07090 namespace {
07091 template <bool del, class R, class P1, class P2, class P3, class A1, class A2, class A3>
07092 class _FunctionResultCallback_3_3 : public ResultCallback3<R,A1,A2,A3> {
07093 public:
07094 typedef ResultCallback3<R,A1,A2,A3> base;
07095 typedef R (*FunctionSignature)(P1,P2,P3,A1,A2,A3);
07096
07097 private:
07098 FunctionSignature function_;
07099 P1 p1_;
07100 P2 p2_;
07101 P3 p3_;
07102
07103 public:
07104 inline _FunctionResultCallback_3_3(FunctionSignature function, P1 p1, P2 p2, P3 p3)
07105 : ResultCallback3<R,A1,A2,A3>(),
07106 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
07107
07108 virtual bool IsRepeatable() const {
07109 return !del;
07110 }
07111
07112 virtual void CheckIsRepeatable() const {
07113 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07114 }
07115
07116 virtual R Run(A1 a1,A2 a2,A3 a3) {
07117 if (!del) {
07118 R result = (*function_)(p1_,p2_,p3_,a1,a2,a3);
07119 return result;
07120 } else {
07121 R result = (*function_)(p1_,p2_,p3_,a1,a2,a3);
07122
07123 function_ = NULL;
07124 delete this;
07125 return result;
07126 }
07127 }
07128 };
07129
07130 template <bool del, class P1, class P2, class P3, class A1, class A2, class A3>
07131 class _FunctionResultCallback_3_3<del, void, P1, P2, P3, A1, A2, A3> : public Callback3<A1,A2,A3> {
07132 public:
07133 typedef Callback3<A1,A2,A3> base;
07134 typedef void (*FunctionSignature)(P1,P2,P3,A1,A2,A3);
07135
07136 private:
07137 FunctionSignature function_;
07138 P1 p1_;
07139 P2 p2_;
07140 P3 p3_;
07141
07142 public:
07143 inline _FunctionResultCallback_3_3(FunctionSignature function, P1 p1, P2 p2, P3 p3)
07144 : Callback3<A1,A2,A3>(),
07145 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
07146
07147 virtual bool IsRepeatable() const {
07148 return !del;
07149 }
07150
07151 virtual void CheckIsRepeatable() const {
07152 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07153 }
07154
07155 virtual void Run(A1 a1,A2 a2,A3 a3) {
07156 if (!del) {
07157 (*function_)(p1_,p2_,p3_,a1,a2,a3);
07158 } else {
07159 (*function_)(p1_,p2_,p3_,a1,a2,a3);
07160
07161 function_ = NULL;
07162 delete this;
07163 }
07164 }
07165 };
07166 }
07167 template <class R, class P1, class P2, class P3, class A1, class A2, class A3>
07168 inline typename _FunctionResultCallback_3_3<true,R,P1,P2,P3,A1,A2,A3>::base*
07169 NewCallback(R (*function)(P1,P2,P3,A1,A2,A3), P1 p1, P2 p2, P3 p3) {
07170 return new _FunctionResultCallback_3_3<true,R,P1,P2,P3,A1,A2,A3>(function, p1, p2, p3);
07171 }
07172
07173 template <class R, class P1, class P2, class P3, class A1, class A2, class A3>
07174 inline typename _FunctionResultCallback_3_3<false,R,P1,P2,P3,A1,A2,A3>::base*
07175 NewPermanentCallback(R (*function)(P1,P2,P3,A1,A2,A3), P1 p1, P2 p2, P3 p3) {
07176 return new _FunctionResultCallback_3_3<false,R,P1,P2,P3,A1,A2,A3>(function, p1, p2, p3);
07177 }
07178
07179 namespace {
07180 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07181 class _ConstMemberResultCallback_4_3 : public ResultCallback3<R,A1,A2,A3> {
07182 public:
07183 typedef ResultCallback3<R,A1,A2,A3> base;
07184 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3) const;
07185
07186 private:
07187 const T* object_;
07188 MemberSignature member_;
07189 P1 p1_;
07190 P2 p2_;
07191 P3 p3_;
07192 P4 p4_;
07193
07194 public:
07195 inline _ConstMemberResultCallback_4_3(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
07196 : ResultCallback3<R,A1,A2,A3>(),
07197 object_(object),
07198 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
07199
07200 virtual bool IsRepeatable() const {
07201 return !del;
07202 }
07203
07204 virtual void CheckIsRepeatable() const {
07205 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07206 }
07207
07208 virtual R Run(A1 a1,A2 a2,A3 a3) {
07209 if (!del) {
07210 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07211 return result;
07212 } else {
07213 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07214
07215 member_ = NULL;
07216 delete this;
07217 return result;
07218 }
07219 }
07220 };
07221
07222 template <bool del, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07223 class _ConstMemberResultCallback_4_3<del, void, T, P1, P2, P3, P4, A1, A2, A3> : public Callback3<A1,A2,A3> {
07224 public:
07225 typedef Callback3<A1,A2,A3> base;
07226 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3) const;
07227
07228 private:
07229 const T* object_;
07230 MemberSignature member_;
07231 P1 p1_;
07232 P2 p2_;
07233 P3 p3_;
07234 P4 p4_;
07235
07236 public:
07237 inline _ConstMemberResultCallback_4_3(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
07238 : Callback3<A1,A2,A3>(),
07239 object_(object),
07240 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
07241
07242 virtual bool IsRepeatable() const {
07243 return !del;
07244 }
07245
07246 virtual void CheckIsRepeatable() const {
07247 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07248 }
07249
07250 virtual void Run(A1 a1,A2 a2,A3 a3) {
07251 if (!del) {
07252 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07253 } else {
07254 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07255
07256 member_ = NULL;
07257 delete this;
07258 }
07259 }
07260 };
07261 }
07262 #ifndef SWIG
07263 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07264 inline typename _ConstMemberResultCallback_4_3<true,R,T1,P1,P2,P3,P4,A1,A2,A3>::base*
07265 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3) const, P1 p1, P2 p2, P3 p3, P4 p4) {
07266 return new _ConstMemberResultCallback_4_3<true,R,T1,P1,P2,P3,P4,A1,A2,A3>(obj, member, p1, p2, p3, p4);
07267 }
07268 #endif
07269
07270 #ifndef SWIG
07271 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07272 inline typename _ConstMemberResultCallback_4_3<false,R,T1,P1,P2,P3,P4,A1,A2,A3>::base*
07273 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3) const, P1 p1, P2 p2, P3 p3, P4 p4) {
07274 return new _ConstMemberResultCallback_4_3<false,R,T1,P1,P2,P3,P4,A1,A2,A3>(obj, member, p1, p2, p3, p4);
07275 }
07276 #endif
07277
07278 namespace {
07279 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07280 class _MemberResultCallback_4_3 : public ResultCallback3<R,A1,A2,A3> {
07281 public:
07282 typedef ResultCallback3<R,A1,A2,A3> base;
07283 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3) ;
07284
07285 private:
07286 T* object_;
07287 MemberSignature member_;
07288 P1 p1_;
07289 P2 p2_;
07290 P3 p3_;
07291 P4 p4_;
07292
07293 public:
07294 inline _MemberResultCallback_4_3( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
07295 : ResultCallback3<R,A1,A2,A3>(),
07296 object_(object),
07297 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
07298
07299 virtual bool IsRepeatable() const {
07300 return !del;
07301 }
07302
07303 virtual void CheckIsRepeatable() const {
07304 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07305 }
07306
07307 virtual R Run(A1 a1,A2 a2,A3 a3) {
07308 if (!del) {
07309 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07310 return result;
07311 } else {
07312 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07313
07314 member_ = NULL;
07315 delete this;
07316 return result;
07317 }
07318 }
07319 };
07320
07321 template <bool del, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07322 class _MemberResultCallback_4_3<del, void, T, P1, P2, P3, P4, A1, A2, A3> : public Callback3<A1,A2,A3> {
07323 public:
07324 typedef Callback3<A1,A2,A3> base;
07325 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3) ;
07326
07327 private:
07328 T* object_;
07329 MemberSignature member_;
07330 P1 p1_;
07331 P2 p2_;
07332 P3 p3_;
07333 P4 p4_;
07334
07335 public:
07336 inline _MemberResultCallback_4_3( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
07337 : Callback3<A1,A2,A3>(),
07338 object_(object),
07339 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
07340
07341 virtual bool IsRepeatable() const {
07342 return !del;
07343 }
07344
07345 virtual void CheckIsRepeatable() const {
07346 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07347 }
07348
07349 virtual void Run(A1 a1,A2 a2,A3 a3) {
07350 if (!del) {
07351 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07352 } else {
07353 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07354
07355 member_ = NULL;
07356 delete this;
07357 }
07358 }
07359 };
07360 }
07361 #ifndef SWIG
07362 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07363 inline typename _MemberResultCallback_4_3<true,R,T1,P1,P2,P3,P4,A1,A2,A3>::base*
07364 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3) , P1 p1, P2 p2, P3 p3, P4 p4) {
07365 return new _MemberResultCallback_4_3<true,R,T1,P1,P2,P3,P4,A1,A2,A3>(obj, member, p1, p2, p3, p4);
07366 }
07367 #endif
07368
07369 #ifndef SWIG
07370 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07371 inline typename _MemberResultCallback_4_3<false,R,T1,P1,P2,P3,P4,A1,A2,A3>::base*
07372 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3) , P1 p1, P2 p2, P3 p3, P4 p4) {
07373 return new _MemberResultCallback_4_3<false,R,T1,P1,P2,P3,P4,A1,A2,A3>(obj, member, p1, p2, p3, p4);
07374 }
07375 #endif
07376
07377 namespace {
07378 template <bool del, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07379 class _FunctionResultCallback_4_3 : public ResultCallback3<R,A1,A2,A3> {
07380 public:
07381 typedef ResultCallback3<R,A1,A2,A3> base;
07382 typedef R (*FunctionSignature)(P1,P2,P3,P4,A1,A2,A3);
07383
07384 private:
07385 FunctionSignature function_;
07386 P1 p1_;
07387 P2 p2_;
07388 P3 p3_;
07389 P4 p4_;
07390
07391 public:
07392 inline _FunctionResultCallback_4_3(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
07393 : ResultCallback3<R,A1,A2,A3>(),
07394 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
07395
07396 virtual bool IsRepeatable() const {
07397 return !del;
07398 }
07399
07400 virtual void CheckIsRepeatable() const {
07401 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07402 }
07403
07404 virtual R Run(A1 a1,A2 a2,A3 a3) {
07405 if (!del) {
07406 R result = (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07407 return result;
07408 } else {
07409 R result = (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07410
07411 function_ = NULL;
07412 delete this;
07413 return result;
07414 }
07415 }
07416 };
07417
07418 template <bool del, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07419 class _FunctionResultCallback_4_3<del, void, P1, P2, P3, P4, A1, A2, A3> : public Callback3<A1,A2,A3> {
07420 public:
07421 typedef Callback3<A1,A2,A3> base;
07422 typedef void (*FunctionSignature)(P1,P2,P3,P4,A1,A2,A3);
07423
07424 private:
07425 FunctionSignature function_;
07426 P1 p1_;
07427 P2 p2_;
07428 P3 p3_;
07429 P4 p4_;
07430
07431 public:
07432 inline _FunctionResultCallback_4_3(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
07433 : Callback3<A1,A2,A3>(),
07434 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
07435
07436 virtual bool IsRepeatable() const {
07437 return !del;
07438 }
07439
07440 virtual void CheckIsRepeatable() const {
07441 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07442 }
07443
07444 virtual void Run(A1 a1,A2 a2,A3 a3) {
07445 if (!del) {
07446 (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07447 } else {
07448 (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3);
07449
07450 function_ = NULL;
07451 delete this;
07452 }
07453 }
07454 };
07455 }
07456 template <class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07457 inline typename _FunctionResultCallback_4_3<true,R,P1,P2,P3,P4,A1,A2,A3>::base*
07458 NewCallback(R (*function)(P1,P2,P3,P4,A1,A2,A3), P1 p1, P2 p2, P3 p3, P4 p4) {
07459 return new _FunctionResultCallback_4_3<true,R,P1,P2,P3,P4,A1,A2,A3>(function, p1, p2, p3, p4);
07460 }
07461
07462 template <class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3>
07463 inline typename _FunctionResultCallback_4_3<false,R,P1,P2,P3,P4,A1,A2,A3>::base*
07464 NewPermanentCallback(R (*function)(P1,P2,P3,P4,A1,A2,A3), P1 p1, P2 p2, P3 p3, P4 p4) {
07465 return new _FunctionResultCallback_4_3<false,R,P1,P2,P3,P4,A1,A2,A3>(function, p1, p2, p3, p4);
07466 }
07467
07468 namespace {
07469 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07470 class _ConstMemberResultCallback_5_3 : public ResultCallback3<R,A1,A2,A3> {
07471 public:
07472 typedef ResultCallback3<R,A1,A2,A3> base;
07473 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3) const;
07474
07475 private:
07476 const T* object_;
07477 MemberSignature member_;
07478 P1 p1_;
07479 P2 p2_;
07480 P3 p3_;
07481 P4 p4_;
07482 P5 p5_;
07483
07484 public:
07485 inline _ConstMemberResultCallback_5_3(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
07486 : ResultCallback3<R,A1,A2,A3>(),
07487 object_(object),
07488 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
07489
07490 virtual bool IsRepeatable() const {
07491 return !del;
07492 }
07493
07494 virtual void CheckIsRepeatable() const {
07495 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07496 }
07497
07498 virtual R Run(A1 a1,A2 a2,A3 a3) {
07499 if (!del) {
07500 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07501 return result;
07502 } else {
07503 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07504
07505 member_ = NULL;
07506 delete this;
07507 return result;
07508 }
07509 }
07510 };
07511
07512 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07513 class _ConstMemberResultCallback_5_3<del, void, T, P1, P2, P3, P4, P5, A1, A2, A3> : public Callback3<A1,A2,A3> {
07514 public:
07515 typedef Callback3<A1,A2,A3> base;
07516 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3) const;
07517
07518 private:
07519 const T* object_;
07520 MemberSignature member_;
07521 P1 p1_;
07522 P2 p2_;
07523 P3 p3_;
07524 P4 p4_;
07525 P5 p5_;
07526
07527 public:
07528 inline _ConstMemberResultCallback_5_3(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
07529 : Callback3<A1,A2,A3>(),
07530 object_(object),
07531 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
07532
07533 virtual bool IsRepeatable() const {
07534 return !del;
07535 }
07536
07537 virtual void CheckIsRepeatable() const {
07538 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07539 }
07540
07541 virtual void Run(A1 a1,A2 a2,A3 a3) {
07542 if (!del) {
07543 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07544 } else {
07545 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07546
07547 member_ = NULL;
07548 delete this;
07549 }
07550 }
07551 };
07552 }
07553 #ifndef SWIG
07554 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07555 inline typename _ConstMemberResultCallback_5_3<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3>::base*
07556 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
07557 return new _ConstMemberResultCallback_5_3<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3>(obj, member, p1, p2, p3, p4, p5);
07558 }
07559 #endif
07560
07561 #ifndef SWIG
07562 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07563 inline typename _ConstMemberResultCallback_5_3<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3>::base*
07564 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
07565 return new _ConstMemberResultCallback_5_3<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3>(obj, member, p1, p2, p3, p4, p5);
07566 }
07567 #endif
07568
07569 namespace {
07570 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07571 class _MemberResultCallback_5_3 : public ResultCallback3<R,A1,A2,A3> {
07572 public:
07573 typedef ResultCallback3<R,A1,A2,A3> base;
07574 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3) ;
07575
07576 private:
07577 T* object_;
07578 MemberSignature member_;
07579 P1 p1_;
07580 P2 p2_;
07581 P3 p3_;
07582 P4 p4_;
07583 P5 p5_;
07584
07585 public:
07586 inline _MemberResultCallback_5_3( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
07587 : ResultCallback3<R,A1,A2,A3>(),
07588 object_(object),
07589 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
07590
07591 virtual bool IsRepeatable() const {
07592 return !del;
07593 }
07594
07595 virtual void CheckIsRepeatable() const {
07596 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07597 }
07598
07599 virtual R Run(A1 a1,A2 a2,A3 a3) {
07600 if (!del) {
07601 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07602 return result;
07603 } else {
07604 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07605
07606 member_ = NULL;
07607 delete this;
07608 return result;
07609 }
07610 }
07611 };
07612
07613 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07614 class _MemberResultCallback_5_3<del, void, T, P1, P2, P3, P4, P5, A1, A2, A3> : public Callback3<A1,A2,A3> {
07615 public:
07616 typedef Callback3<A1,A2,A3> base;
07617 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3) ;
07618
07619 private:
07620 T* object_;
07621 MemberSignature member_;
07622 P1 p1_;
07623 P2 p2_;
07624 P3 p3_;
07625 P4 p4_;
07626 P5 p5_;
07627
07628 public:
07629 inline _MemberResultCallback_5_3( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
07630 : Callback3<A1,A2,A3>(),
07631 object_(object),
07632 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
07633
07634 virtual bool IsRepeatable() const {
07635 return !del;
07636 }
07637
07638 virtual void CheckIsRepeatable() const {
07639 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07640 }
07641
07642 virtual void Run(A1 a1,A2 a2,A3 a3) {
07643 if (!del) {
07644 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07645 } else {
07646 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07647
07648 member_ = NULL;
07649 delete this;
07650 }
07651 }
07652 };
07653 }
07654 #ifndef SWIG
07655 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07656 inline typename _MemberResultCallback_5_3<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3>::base*
07657 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
07658 return new _MemberResultCallback_5_3<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3>(obj, member, p1, p2, p3, p4, p5);
07659 }
07660 #endif
07661
07662 #ifndef SWIG
07663 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07664 inline typename _MemberResultCallback_5_3<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3>::base*
07665 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
07666 return new _MemberResultCallback_5_3<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3>(obj, member, p1, p2, p3, p4, p5);
07667 }
07668 #endif
07669
07670 namespace {
07671 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07672 class _FunctionResultCallback_5_3 : public ResultCallback3<R,A1,A2,A3> {
07673 public:
07674 typedef ResultCallback3<R,A1,A2,A3> base;
07675 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,A1,A2,A3);
07676
07677 private:
07678 FunctionSignature function_;
07679 P1 p1_;
07680 P2 p2_;
07681 P3 p3_;
07682 P4 p4_;
07683 P5 p5_;
07684
07685 public:
07686 inline _FunctionResultCallback_5_3(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
07687 : ResultCallback3<R,A1,A2,A3>(),
07688 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
07689
07690 virtual bool IsRepeatable() const {
07691 return !del;
07692 }
07693
07694 virtual void CheckIsRepeatable() const {
07695 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07696 }
07697
07698 virtual R Run(A1 a1,A2 a2,A3 a3) {
07699 if (!del) {
07700 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07701 return result;
07702 } else {
07703 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07704
07705 function_ = NULL;
07706 delete this;
07707 return result;
07708 }
07709 }
07710 };
07711
07712 template <bool del, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07713 class _FunctionResultCallback_5_3<del, void, P1, P2, P3, P4, P5, A1, A2, A3> : public Callback3<A1,A2,A3> {
07714 public:
07715 typedef Callback3<A1,A2,A3> base;
07716 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,A1,A2,A3);
07717
07718 private:
07719 FunctionSignature function_;
07720 P1 p1_;
07721 P2 p2_;
07722 P3 p3_;
07723 P4 p4_;
07724 P5 p5_;
07725
07726 public:
07727 inline _FunctionResultCallback_5_3(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
07728 : Callback3<A1,A2,A3>(),
07729 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
07730
07731 virtual bool IsRepeatable() const {
07732 return !del;
07733 }
07734
07735 virtual void CheckIsRepeatable() const {
07736 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07737 }
07738
07739 virtual void Run(A1 a1,A2 a2,A3 a3) {
07740 if (!del) {
07741 (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07742 } else {
07743 (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3);
07744
07745 function_ = NULL;
07746 delete this;
07747 }
07748 }
07749 };
07750 }
07751 template <class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07752 inline typename _FunctionResultCallback_5_3<true,R,P1,P2,P3,P4,P5,A1,A2,A3>::base*
07753 NewCallback(R (*function)(P1,P2,P3,P4,P5,A1,A2,A3), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
07754 return new _FunctionResultCallback_5_3<true,R,P1,P2,P3,P4,P5,A1,A2,A3>(function, p1, p2, p3, p4, p5);
07755 }
07756
07757 template <class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3>
07758 inline typename _FunctionResultCallback_5_3<false,R,P1,P2,P3,P4,P5,A1,A2,A3>::base*
07759 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,A1,A2,A3), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
07760 return new _FunctionResultCallback_5_3<false,R,P1,P2,P3,P4,P5,A1,A2,A3>(function, p1, p2, p3, p4, p5);
07761 }
07762
07763 namespace {
07764 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
07765 class _ConstMemberResultCallback_6_3 : public ResultCallback3<R,A1,A2,A3> {
07766 public:
07767 typedef ResultCallback3<R,A1,A2,A3> base;
07768 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3) const;
07769
07770 private:
07771 const T* object_;
07772 MemberSignature member_;
07773 P1 p1_;
07774 P2 p2_;
07775 P3 p3_;
07776 P4 p4_;
07777 P5 p5_;
07778 P6 p6_;
07779
07780 public:
07781 inline _ConstMemberResultCallback_6_3(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
07782 : ResultCallback3<R,A1,A2,A3>(),
07783 object_(object),
07784 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
07785
07786 virtual bool IsRepeatable() const {
07787 return !del;
07788 }
07789
07790 virtual void CheckIsRepeatable() const {
07791 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07792 }
07793
07794 virtual R Run(A1 a1,A2 a2,A3 a3) {
07795 if (!del) {
07796 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
07797 return result;
07798 } else {
07799 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
07800
07801 member_ = NULL;
07802 delete this;
07803 return result;
07804 }
07805 }
07806 };
07807
07808 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
07809 class _ConstMemberResultCallback_6_3<del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3> : public Callback3<A1,A2,A3> {
07810 public:
07811 typedef Callback3<A1,A2,A3> base;
07812 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3) const;
07813
07814 private:
07815 const T* object_;
07816 MemberSignature member_;
07817 P1 p1_;
07818 P2 p2_;
07819 P3 p3_;
07820 P4 p4_;
07821 P5 p5_;
07822 P6 p6_;
07823
07824 public:
07825 inline _ConstMemberResultCallback_6_3(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
07826 : Callback3<A1,A2,A3>(),
07827 object_(object),
07828 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
07829
07830 virtual bool IsRepeatable() const {
07831 return !del;
07832 }
07833
07834 virtual void CheckIsRepeatable() const {
07835 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07836 }
07837
07838 virtual void Run(A1 a1,A2 a2,A3 a3) {
07839 if (!del) {
07840 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
07841 } else {
07842 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
07843
07844 member_ = NULL;
07845 delete this;
07846 }
07847 }
07848 };
07849 }
07850 #ifndef SWIG
07851 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
07852 inline typename _ConstMemberResultCallback_6_3<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3>::base*
07853 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
07854 return new _ConstMemberResultCallback_6_3<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3>(obj, member, p1, p2, p3, p4, p5, p6);
07855 }
07856 #endif
07857
07858 #ifndef SWIG
07859 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
07860 inline typename _ConstMemberResultCallback_6_3<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3>::base*
07861 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
07862 return new _ConstMemberResultCallback_6_3<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3>(obj, member, p1, p2, p3, p4, p5, p6);
07863 }
07864 #endif
07865
07866 namespace {
07867 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
07868 class _MemberResultCallback_6_3 : public ResultCallback3<R,A1,A2,A3> {
07869 public:
07870 typedef ResultCallback3<R,A1,A2,A3> base;
07871 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3) ;
07872
07873 private:
07874 T* object_;
07875 MemberSignature member_;
07876 P1 p1_;
07877 P2 p2_;
07878 P3 p3_;
07879 P4 p4_;
07880 P5 p5_;
07881 P6 p6_;
07882
07883 public:
07884 inline _MemberResultCallback_6_3( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
07885 : ResultCallback3<R,A1,A2,A3>(),
07886 object_(object),
07887 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
07888
07889 virtual bool IsRepeatable() const {
07890 return !del;
07891 }
07892
07893 virtual void CheckIsRepeatable() const {
07894 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07895 }
07896
07897 virtual R Run(A1 a1,A2 a2,A3 a3) {
07898 if (!del) {
07899 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
07900 return result;
07901 } else {
07902 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
07903
07904 member_ = NULL;
07905 delete this;
07906 return result;
07907 }
07908 }
07909 };
07910
07911 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
07912 class _MemberResultCallback_6_3<del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3> : public Callback3<A1,A2,A3> {
07913 public:
07914 typedef Callback3<A1,A2,A3> base;
07915 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3) ;
07916
07917 private:
07918 T* object_;
07919 MemberSignature member_;
07920 P1 p1_;
07921 P2 p2_;
07922 P3 p3_;
07923 P4 p4_;
07924 P5 p5_;
07925 P6 p6_;
07926
07927 public:
07928 inline _MemberResultCallback_6_3( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
07929 : Callback3<A1,A2,A3>(),
07930 object_(object),
07931 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
07932
07933 virtual bool IsRepeatable() const {
07934 return !del;
07935 }
07936
07937 virtual void CheckIsRepeatable() const {
07938 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
07939 }
07940
07941 virtual void Run(A1 a1,A2 a2,A3 a3) {
07942 if (!del) {
07943 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
07944 } else {
07945 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
07946
07947 member_ = NULL;
07948 delete this;
07949 }
07950 }
07951 };
07952 }
07953 #ifndef SWIG
07954 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
07955 inline typename _MemberResultCallback_6_3<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3>::base*
07956 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
07957 return new _MemberResultCallback_6_3<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3>(obj, member, p1, p2, p3, p4, p5, p6);
07958 }
07959 #endif
07960
07961 #ifndef SWIG
07962 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
07963 inline typename _MemberResultCallback_6_3<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3>::base*
07964 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
07965 return new _MemberResultCallback_6_3<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3>(obj, member, p1, p2, p3, p4, p5, p6);
07966 }
07967 #endif
07968
07969 namespace {
07970 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
07971 class _FunctionResultCallback_6_3 : public ResultCallback3<R,A1,A2,A3> {
07972 public:
07973 typedef ResultCallback3<R,A1,A2,A3> base;
07974 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3);
07975
07976 private:
07977 FunctionSignature function_;
07978 P1 p1_;
07979 P2 p2_;
07980 P3 p3_;
07981 P4 p4_;
07982 P5 p5_;
07983 P6 p6_;
07984
07985 public:
07986 inline _FunctionResultCallback_6_3(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
07987 : ResultCallback3<R,A1,A2,A3>(),
07988 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
07989
07990 virtual bool IsRepeatable() const {
07991 return !del;
07992 }
07993
07994 virtual void CheckIsRepeatable() const {
07995 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback3<R,A1,A2,A3>");
07996 }
07997
07998 virtual R Run(A1 a1,A2 a2,A3 a3) {
07999 if (!del) {
08000 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
08001 return result;
08002 } else {
08003 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
08004
08005 function_ = NULL;
08006 delete this;
08007 return result;
08008 }
08009 }
08010 };
08011
08012 template <bool del, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
08013 class _FunctionResultCallback_6_3<del, void, P1, P2, P3, P4, P5, P6, A1, A2, A3> : public Callback3<A1,A2,A3> {
08014 public:
08015 typedef Callback3<A1,A2,A3> base;
08016 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3);
08017
08018 private:
08019 FunctionSignature function_;
08020 P1 p1_;
08021 P2 p2_;
08022 P3 p3_;
08023 P4 p4_;
08024 P5 p5_;
08025 P6 p6_;
08026
08027 public:
08028 inline _FunctionResultCallback_6_3(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
08029 : Callback3<A1,A2,A3>(),
08030 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
08031
08032 virtual bool IsRepeatable() const {
08033 return !del;
08034 }
08035
08036 virtual void CheckIsRepeatable() const {
08037 if (del) CallbackUtils_::FailIsRepeatable("Callback3<A1,A2,A3>");
08038 }
08039
08040 virtual void Run(A1 a1,A2 a2,A3 a3) {
08041 if (!del) {
08042 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
08043 } else {
08044 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3);
08045
08046 function_ = NULL;
08047 delete this;
08048 }
08049 }
08050 };
08051 }
08052 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
08053 inline typename _FunctionResultCallback_6_3<true,R,P1,P2,P3,P4,P5,P6,A1,A2,A3>::base*
08054 NewCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1,A2,A3), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
08055 return new _FunctionResultCallback_6_3<true,R,P1,P2,P3,P4,P5,P6,A1,A2,A3>(function, p1, p2, p3, p4, p5, p6);
08056 }
08057
08058 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3>
08059 inline typename _FunctionResultCallback_6_3<false,R,P1,P2,P3,P4,P5,P6,A1,A2,A3>::base*
08060 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1,A2,A3), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
08061 return new _FunctionResultCallback_6_3<false,R,P1,P2,P3,P4,P5,P6,A1,A2,A3>(function, p1, p2, p3, p4, p5, p6);
08062 }
08063
08064 namespace {
08065 template <bool del, class R, class T, class A1, class A2, class A3, class A4>
08066 class _ConstMemberResultCallback_0_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08067 public:
08068 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08069 typedef R (T::*MemberSignature)(A1,A2,A3,A4) const;
08070
08071 private:
08072 const T* object_;
08073 MemberSignature member_;
08074
08075 public:
08076 inline _ConstMemberResultCallback_0_4(const T* object, MemberSignature member)
08077 : ResultCallback4<R,A1,A2,A3,A4>(),
08078 object_(object),
08079 member_(member) { }
08080
08081 virtual bool IsRepeatable() const {
08082 return !del;
08083 }
08084
08085 virtual void CheckIsRepeatable() const {
08086 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08087 }
08088
08089 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08090 if (!del) {
08091 R result = (object_->*member_)(a1,a2,a3,a4);
08092 return result;
08093 } else {
08094 R result = (object_->*member_)(a1,a2,a3,a4);
08095
08096 member_ = NULL;
08097 delete this;
08098 return result;
08099 }
08100 }
08101 };
08102
08103 template <bool del, class T, class A1, class A2, class A3, class A4>
08104 class _ConstMemberResultCallback_0_4<del, void, T, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08105 public:
08106 typedef Callback4<A1,A2,A3,A4> base;
08107 typedef void (T::*MemberSignature)(A1,A2,A3,A4) const;
08108
08109 private:
08110 const T* object_;
08111 MemberSignature member_;
08112
08113 public:
08114 inline _ConstMemberResultCallback_0_4(const T* object, MemberSignature member)
08115 : Callback4<A1,A2,A3,A4>(),
08116 object_(object),
08117 member_(member) { }
08118
08119 virtual bool IsRepeatable() const {
08120 return !del;
08121 }
08122
08123 virtual void CheckIsRepeatable() const {
08124 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08125 }
08126
08127 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08128 if (!del) {
08129 (object_->*member_)(a1,a2,a3,a4);
08130 } else {
08131 (object_->*member_)(a1,a2,a3,a4);
08132
08133 member_ = NULL;
08134 delete this;
08135 }
08136 }
08137 };
08138 }
08139 #ifndef SWIG
08140 template <class T1, class T2, class R, class A1, class A2, class A3, class A4>
08141 inline typename _ConstMemberResultCallback_0_4<true,R,T1,A1,A2,A3,A4>::base*
08142 NewCallback(const T1* obj, R (T2::*member)(A1,A2,A3,A4) const) {
08143 return new _ConstMemberResultCallback_0_4<true,R,T1,A1,A2,A3,A4>(obj, member);
08144 }
08145 #endif
08146
08147 #ifndef SWIG
08148 template <class T1, class T2, class R, class A1, class A2, class A3, class A4>
08149 inline typename _ConstMemberResultCallback_0_4<false,R,T1,A1,A2,A3,A4>::base*
08150 NewPermanentCallback(const T1* obj, R (T2::*member)(A1,A2,A3,A4) const) {
08151 return new _ConstMemberResultCallback_0_4<false,R,T1,A1,A2,A3,A4>(obj, member);
08152 }
08153 #endif
08154
08155 namespace {
08156 template <bool del, class R, class T, class A1, class A2, class A3, class A4>
08157 class _MemberResultCallback_0_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08158 public:
08159 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08160 typedef R (T::*MemberSignature)(A1,A2,A3,A4) ;
08161
08162 private:
08163 T* object_;
08164 MemberSignature member_;
08165
08166 public:
08167 inline _MemberResultCallback_0_4( T* object, MemberSignature member)
08168 : ResultCallback4<R,A1,A2,A3,A4>(),
08169 object_(object),
08170 member_(member) { }
08171
08172 virtual bool IsRepeatable() const {
08173 return !del;
08174 }
08175
08176 virtual void CheckIsRepeatable() const {
08177 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08178 }
08179
08180 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08181 if (!del) {
08182 R result = (object_->*member_)(a1,a2,a3,a4);
08183 return result;
08184 } else {
08185 R result = (object_->*member_)(a1,a2,a3,a4);
08186
08187 member_ = NULL;
08188 delete this;
08189 return result;
08190 }
08191 }
08192 };
08193
08194 template <bool del, class T, class A1, class A2, class A3, class A4>
08195 class _MemberResultCallback_0_4<del, void, T, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08196 public:
08197 typedef Callback4<A1,A2,A3,A4> base;
08198 typedef void (T::*MemberSignature)(A1,A2,A3,A4) ;
08199
08200 private:
08201 T* object_;
08202 MemberSignature member_;
08203
08204 public:
08205 inline _MemberResultCallback_0_4( T* object, MemberSignature member)
08206 : Callback4<A1,A2,A3,A4>(),
08207 object_(object),
08208 member_(member) { }
08209
08210 virtual bool IsRepeatable() const {
08211 return !del;
08212 }
08213
08214 virtual void CheckIsRepeatable() const {
08215 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08216 }
08217
08218 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08219 if (!del) {
08220 (object_->*member_)(a1,a2,a3,a4);
08221 } else {
08222 (object_->*member_)(a1,a2,a3,a4);
08223
08224 member_ = NULL;
08225 delete this;
08226 }
08227 }
08228 };
08229 }
08230 #ifndef SWIG
08231 template <class T1, class T2, class R, class A1, class A2, class A3, class A4>
08232 inline typename _MemberResultCallback_0_4<true,R,T1,A1,A2,A3,A4>::base*
08233 NewCallback( T1* obj, R (T2::*member)(A1,A2,A3,A4) ) {
08234 return new _MemberResultCallback_0_4<true,R,T1,A1,A2,A3,A4>(obj, member);
08235 }
08236 #endif
08237
08238 #ifndef SWIG
08239 template <class T1, class T2, class R, class A1, class A2, class A3, class A4>
08240 inline typename _MemberResultCallback_0_4<false,R,T1,A1,A2,A3,A4>::base*
08241 NewPermanentCallback( T1* obj, R (T2::*member)(A1,A2,A3,A4) ) {
08242 return new _MemberResultCallback_0_4<false,R,T1,A1,A2,A3,A4>(obj, member);
08243 }
08244 #endif
08245
08246 namespace {
08247 template <bool del, class R, class A1, class A2, class A3, class A4>
08248 class _FunctionResultCallback_0_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08249 public:
08250 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08251 typedef R (*FunctionSignature)(A1,A2,A3,A4);
08252
08253 private:
08254 FunctionSignature function_;
08255
08256 public:
08257 inline _FunctionResultCallback_0_4(FunctionSignature function)
08258 : ResultCallback4<R,A1,A2,A3,A4>(),
08259 function_(function) { }
08260
08261 virtual bool IsRepeatable() const {
08262 return !del;
08263 }
08264
08265 virtual void CheckIsRepeatable() const {
08266 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08267 }
08268
08269 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08270 if (!del) {
08271 R result = (*function_)(a1,a2,a3,a4);
08272 return result;
08273 } else {
08274 R result = (*function_)(a1,a2,a3,a4);
08275
08276 function_ = NULL;
08277 delete this;
08278 return result;
08279 }
08280 }
08281 };
08282
08283 template <bool del, class A1, class A2, class A3, class A4>
08284 class _FunctionResultCallback_0_4<del, void, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08285 public:
08286 typedef Callback4<A1,A2,A3,A4> base;
08287 typedef void (*FunctionSignature)(A1,A2,A3,A4);
08288
08289 private:
08290 FunctionSignature function_;
08291
08292 public:
08293 inline _FunctionResultCallback_0_4(FunctionSignature function)
08294 : Callback4<A1,A2,A3,A4>(),
08295 function_(function) { }
08296
08297 virtual bool IsRepeatable() const {
08298 return !del;
08299 }
08300
08301 virtual void CheckIsRepeatable() const {
08302 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08303 }
08304
08305 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08306 if (!del) {
08307 (*function_)(a1,a2,a3,a4);
08308 } else {
08309 (*function_)(a1,a2,a3,a4);
08310
08311 function_ = NULL;
08312 delete this;
08313 }
08314 }
08315 };
08316 }
08317 template <class R, class A1, class A2, class A3, class A4>
08318 inline typename _FunctionResultCallback_0_4<true,R,A1,A2,A3,A4>::base*
08319 NewCallback(R (*function)(A1,A2,A3,A4)) {
08320 return new _FunctionResultCallback_0_4<true,R,A1,A2,A3,A4>(function);
08321 }
08322
08323 template <class R, class A1, class A2, class A3, class A4>
08324 inline typename _FunctionResultCallback_0_4<false,R,A1,A2,A3,A4>::base*
08325 NewPermanentCallback(R (*function)(A1,A2,A3,A4)) {
08326 return new _FunctionResultCallback_0_4<false,R,A1,A2,A3,A4>(function);
08327 }
08328
08329 namespace {
08330 template <bool del, class R, class T, class P1, class A1, class A2, class A3, class A4>
08331 class _ConstMemberResultCallback_1_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08332 public:
08333 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08334 typedef R (T::*MemberSignature)(P1,A1,A2,A3,A4) const;
08335
08336 private:
08337 const T* object_;
08338 MemberSignature member_;
08339 P1 p1_;
08340
08341 public:
08342 inline _ConstMemberResultCallback_1_4(const T* object, MemberSignature member, P1 p1)
08343 : ResultCallback4<R,A1,A2,A3,A4>(),
08344 object_(object),
08345 member_(member), p1_(p1) { }
08346
08347 virtual bool IsRepeatable() const {
08348 return !del;
08349 }
08350
08351 virtual void CheckIsRepeatable() const {
08352 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08353 }
08354
08355 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08356 if (!del) {
08357 R result = (object_->*member_)(p1_,a1,a2,a3,a4);
08358 return result;
08359 } else {
08360 R result = (object_->*member_)(p1_,a1,a2,a3,a4);
08361
08362 member_ = NULL;
08363 delete this;
08364 return result;
08365 }
08366 }
08367 };
08368
08369 template <bool del, class T, class P1, class A1, class A2, class A3, class A4>
08370 class _ConstMemberResultCallback_1_4<del, void, T, P1, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08371 public:
08372 typedef Callback4<A1,A2,A3,A4> base;
08373 typedef void (T::*MemberSignature)(P1,A1,A2,A3,A4) const;
08374
08375 private:
08376 const T* object_;
08377 MemberSignature member_;
08378 P1 p1_;
08379
08380 public:
08381 inline _ConstMemberResultCallback_1_4(const T* object, MemberSignature member, P1 p1)
08382 : Callback4<A1,A2,A3,A4>(),
08383 object_(object),
08384 member_(member), p1_(p1) { }
08385
08386 virtual bool IsRepeatable() const {
08387 return !del;
08388 }
08389
08390 virtual void CheckIsRepeatable() const {
08391 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08392 }
08393
08394 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08395 if (!del) {
08396 (object_->*member_)(p1_,a1,a2,a3,a4);
08397 } else {
08398 (object_->*member_)(p1_,a1,a2,a3,a4);
08399
08400 member_ = NULL;
08401 delete this;
08402 }
08403 }
08404 };
08405 }
08406 #ifndef SWIG
08407 template <class T1, class T2, class R, class P1, class A1, class A2, class A3, class A4>
08408 inline typename _ConstMemberResultCallback_1_4<true,R,T1,P1,A1,A2,A3,A4>::base*
08409 NewCallback(const T1* obj, R (T2::*member)(P1,A1,A2,A3,A4) const, P1 p1) {
08410 return new _ConstMemberResultCallback_1_4<true,R,T1,P1,A1,A2,A3,A4>(obj, member, p1);
08411 }
08412 #endif
08413
08414 #ifndef SWIG
08415 template <class T1, class T2, class R, class P1, class A1, class A2, class A3, class A4>
08416 inline typename _ConstMemberResultCallback_1_4<false,R,T1,P1,A1,A2,A3,A4>::base*
08417 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,A1,A2,A3,A4) const, P1 p1) {
08418 return new _ConstMemberResultCallback_1_4<false,R,T1,P1,A1,A2,A3,A4>(obj, member, p1);
08419 }
08420 #endif
08421
08422 namespace {
08423 template <bool del, class R, class T, class P1, class A1, class A2, class A3, class A4>
08424 class _MemberResultCallback_1_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08425 public:
08426 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08427 typedef R (T::*MemberSignature)(P1,A1,A2,A3,A4) ;
08428
08429 private:
08430 T* object_;
08431 MemberSignature member_;
08432 P1 p1_;
08433
08434 public:
08435 inline _MemberResultCallback_1_4( T* object, MemberSignature member, P1 p1)
08436 : ResultCallback4<R,A1,A2,A3,A4>(),
08437 object_(object),
08438 member_(member), p1_(p1) { }
08439
08440 virtual bool IsRepeatable() const {
08441 return !del;
08442 }
08443
08444 virtual void CheckIsRepeatable() const {
08445 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08446 }
08447
08448 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08449 if (!del) {
08450 R result = (object_->*member_)(p1_,a1,a2,a3,a4);
08451 return result;
08452 } else {
08453 R result = (object_->*member_)(p1_,a1,a2,a3,a4);
08454
08455 member_ = NULL;
08456 delete this;
08457 return result;
08458 }
08459 }
08460 };
08461
08462 template <bool del, class T, class P1, class A1, class A2, class A3, class A4>
08463 class _MemberResultCallback_1_4<del, void, T, P1, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08464 public:
08465 typedef Callback4<A1,A2,A3,A4> base;
08466 typedef void (T::*MemberSignature)(P1,A1,A2,A3,A4) ;
08467
08468 private:
08469 T* object_;
08470 MemberSignature member_;
08471 P1 p1_;
08472
08473 public:
08474 inline _MemberResultCallback_1_4( T* object, MemberSignature member, P1 p1)
08475 : Callback4<A1,A2,A3,A4>(),
08476 object_(object),
08477 member_(member), p1_(p1) { }
08478
08479 virtual bool IsRepeatable() const {
08480 return !del;
08481 }
08482
08483 virtual void CheckIsRepeatable() const {
08484 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08485 }
08486
08487 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08488 if (!del) {
08489 (object_->*member_)(p1_,a1,a2,a3,a4);
08490 } else {
08491 (object_->*member_)(p1_,a1,a2,a3,a4);
08492
08493 member_ = NULL;
08494 delete this;
08495 }
08496 }
08497 };
08498 }
08499 #ifndef SWIG
08500 template <class T1, class T2, class R, class P1, class A1, class A2, class A3, class A4>
08501 inline typename _MemberResultCallback_1_4<true,R,T1,P1,A1,A2,A3,A4>::base*
08502 NewCallback( T1* obj, R (T2::*member)(P1,A1,A2,A3,A4) , P1 p1) {
08503 return new _MemberResultCallback_1_4<true,R,T1,P1,A1,A2,A3,A4>(obj, member, p1);
08504 }
08505 #endif
08506
08507 #ifndef SWIG
08508 template <class T1, class T2, class R, class P1, class A1, class A2, class A3, class A4>
08509 inline typename _MemberResultCallback_1_4<false,R,T1,P1,A1,A2,A3,A4>::base*
08510 NewPermanentCallback( T1* obj, R (T2::*member)(P1,A1,A2,A3,A4) , P1 p1) {
08511 return new _MemberResultCallback_1_4<false,R,T1,P1,A1,A2,A3,A4>(obj, member, p1);
08512 }
08513 #endif
08514
08515 namespace {
08516 template <bool del, class R, class P1, class A1, class A2, class A3, class A4>
08517 class _FunctionResultCallback_1_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08518 public:
08519 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08520 typedef R (*FunctionSignature)(P1,A1,A2,A3,A4);
08521
08522 private:
08523 FunctionSignature function_;
08524 P1 p1_;
08525
08526 public:
08527 inline _FunctionResultCallback_1_4(FunctionSignature function, P1 p1)
08528 : ResultCallback4<R,A1,A2,A3,A4>(),
08529 function_(function), p1_(p1) { }
08530
08531 virtual bool IsRepeatable() const {
08532 return !del;
08533 }
08534
08535 virtual void CheckIsRepeatable() const {
08536 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08537 }
08538
08539 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08540 if (!del) {
08541 R result = (*function_)(p1_,a1,a2,a3,a4);
08542 return result;
08543 } else {
08544 R result = (*function_)(p1_,a1,a2,a3,a4);
08545
08546 function_ = NULL;
08547 delete this;
08548 return result;
08549 }
08550 }
08551 };
08552
08553 template <bool del, class P1, class A1, class A2, class A3, class A4>
08554 class _FunctionResultCallback_1_4<del, void, P1, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08555 public:
08556 typedef Callback4<A1,A2,A3,A4> base;
08557 typedef void (*FunctionSignature)(P1,A1,A2,A3,A4);
08558
08559 private:
08560 FunctionSignature function_;
08561 P1 p1_;
08562
08563 public:
08564 inline _FunctionResultCallback_1_4(FunctionSignature function, P1 p1)
08565 : Callback4<A1,A2,A3,A4>(),
08566 function_(function), p1_(p1) { }
08567
08568 virtual bool IsRepeatable() const {
08569 return !del;
08570 }
08571
08572 virtual void CheckIsRepeatable() const {
08573 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08574 }
08575
08576 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08577 if (!del) {
08578 (*function_)(p1_,a1,a2,a3,a4);
08579 } else {
08580 (*function_)(p1_,a1,a2,a3,a4);
08581
08582 function_ = NULL;
08583 delete this;
08584 }
08585 }
08586 };
08587 }
08588 template <class R, class P1, class A1, class A2, class A3, class A4>
08589 inline typename _FunctionResultCallback_1_4<true,R,P1,A1,A2,A3,A4>::base*
08590 NewCallback(R (*function)(P1,A1,A2,A3,A4), P1 p1) {
08591 return new _FunctionResultCallback_1_4<true,R,P1,A1,A2,A3,A4>(function, p1);
08592 }
08593
08594 template <class R, class P1, class A1, class A2, class A3, class A4>
08595 inline typename _FunctionResultCallback_1_4<false,R,P1,A1,A2,A3,A4>::base*
08596 NewPermanentCallback(R (*function)(P1,A1,A2,A3,A4), P1 p1) {
08597 return new _FunctionResultCallback_1_4<false,R,P1,A1,A2,A3,A4>(function, p1);
08598 }
08599
08600 namespace {
08601 template <bool del, class R, class T, class P1, class P2, class A1, class A2, class A3, class A4>
08602 class _ConstMemberResultCallback_2_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08603 public:
08604 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08605 typedef R (T::*MemberSignature)(P1,P2,A1,A2,A3,A4) const;
08606
08607 private:
08608 const T* object_;
08609 MemberSignature member_;
08610 P1 p1_;
08611 P2 p2_;
08612
08613 public:
08614 inline _ConstMemberResultCallback_2_4(const T* object, MemberSignature member, P1 p1, P2 p2)
08615 : ResultCallback4<R,A1,A2,A3,A4>(),
08616 object_(object),
08617 member_(member), p1_(p1), p2_(p2) { }
08618
08619 virtual bool IsRepeatable() const {
08620 return !del;
08621 }
08622
08623 virtual void CheckIsRepeatable() const {
08624 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08625 }
08626
08627 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08628 if (!del) {
08629 R result = (object_->*member_)(p1_,p2_,a1,a2,a3,a4);
08630 return result;
08631 } else {
08632 R result = (object_->*member_)(p1_,p2_,a1,a2,a3,a4);
08633
08634 member_ = NULL;
08635 delete this;
08636 return result;
08637 }
08638 }
08639 };
08640
08641 template <bool del, class T, class P1, class P2, class A1, class A2, class A3, class A4>
08642 class _ConstMemberResultCallback_2_4<del, void, T, P1, P2, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08643 public:
08644 typedef Callback4<A1,A2,A3,A4> base;
08645 typedef void (T::*MemberSignature)(P1,P2,A1,A2,A3,A4) const;
08646
08647 private:
08648 const T* object_;
08649 MemberSignature member_;
08650 P1 p1_;
08651 P2 p2_;
08652
08653 public:
08654 inline _ConstMemberResultCallback_2_4(const T* object, MemberSignature member, P1 p1, P2 p2)
08655 : Callback4<A1,A2,A3,A4>(),
08656 object_(object),
08657 member_(member), p1_(p1), p2_(p2) { }
08658
08659 virtual bool IsRepeatable() const {
08660 return !del;
08661 }
08662
08663 virtual void CheckIsRepeatable() const {
08664 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08665 }
08666
08667 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08668 if (!del) {
08669 (object_->*member_)(p1_,p2_,a1,a2,a3,a4);
08670 } else {
08671 (object_->*member_)(p1_,p2_,a1,a2,a3,a4);
08672
08673 member_ = NULL;
08674 delete this;
08675 }
08676 }
08677 };
08678 }
08679 #ifndef SWIG
08680 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3, class A4>
08681 inline typename _ConstMemberResultCallback_2_4<true,R,T1,P1,P2,A1,A2,A3,A4>::base*
08682 NewCallback(const T1* obj, R (T2::*member)(P1,P2,A1,A2,A3,A4) const, P1 p1, P2 p2) {
08683 return new _ConstMemberResultCallback_2_4<true,R,T1,P1,P2,A1,A2,A3,A4>(obj, member, p1, p2);
08684 }
08685 #endif
08686
08687 #ifndef SWIG
08688 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3, class A4>
08689 inline typename _ConstMemberResultCallback_2_4<false,R,T1,P1,P2,A1,A2,A3,A4>::base*
08690 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,A1,A2,A3,A4) const, P1 p1, P2 p2) {
08691 return new _ConstMemberResultCallback_2_4<false,R,T1,P1,P2,A1,A2,A3,A4>(obj, member, p1, p2);
08692 }
08693 #endif
08694
08695 namespace {
08696 template <bool del, class R, class T, class P1, class P2, class A1, class A2, class A3, class A4>
08697 class _MemberResultCallback_2_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08698 public:
08699 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08700 typedef R (T::*MemberSignature)(P1,P2,A1,A2,A3,A4) ;
08701
08702 private:
08703 T* object_;
08704 MemberSignature member_;
08705 P1 p1_;
08706 P2 p2_;
08707
08708 public:
08709 inline _MemberResultCallback_2_4( T* object, MemberSignature member, P1 p1, P2 p2)
08710 : ResultCallback4<R,A1,A2,A3,A4>(),
08711 object_(object),
08712 member_(member), p1_(p1), p2_(p2) { }
08713
08714 virtual bool IsRepeatable() const {
08715 return !del;
08716 }
08717
08718 virtual void CheckIsRepeatable() const {
08719 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08720 }
08721
08722 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08723 if (!del) {
08724 R result = (object_->*member_)(p1_,p2_,a1,a2,a3,a4);
08725 return result;
08726 } else {
08727 R result = (object_->*member_)(p1_,p2_,a1,a2,a3,a4);
08728
08729 member_ = NULL;
08730 delete this;
08731 return result;
08732 }
08733 }
08734 };
08735
08736 template <bool del, class T, class P1, class P2, class A1, class A2, class A3, class A4>
08737 class _MemberResultCallback_2_4<del, void, T, P1, P2, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08738 public:
08739 typedef Callback4<A1,A2,A3,A4> base;
08740 typedef void (T::*MemberSignature)(P1,P2,A1,A2,A3,A4) ;
08741
08742 private:
08743 T* object_;
08744 MemberSignature member_;
08745 P1 p1_;
08746 P2 p2_;
08747
08748 public:
08749 inline _MemberResultCallback_2_4( T* object, MemberSignature member, P1 p1, P2 p2)
08750 : Callback4<A1,A2,A3,A4>(),
08751 object_(object),
08752 member_(member), p1_(p1), p2_(p2) { }
08753
08754 virtual bool IsRepeatable() const {
08755 return !del;
08756 }
08757
08758 virtual void CheckIsRepeatable() const {
08759 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08760 }
08761
08762 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08763 if (!del) {
08764 (object_->*member_)(p1_,p2_,a1,a2,a3,a4);
08765 } else {
08766 (object_->*member_)(p1_,p2_,a1,a2,a3,a4);
08767
08768 member_ = NULL;
08769 delete this;
08770 }
08771 }
08772 };
08773 }
08774 #ifndef SWIG
08775 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3, class A4>
08776 inline typename _MemberResultCallback_2_4<true,R,T1,P1,P2,A1,A2,A3,A4>::base*
08777 NewCallback( T1* obj, R (T2::*member)(P1,P2,A1,A2,A3,A4) , P1 p1, P2 p2) {
08778 return new _MemberResultCallback_2_4<true,R,T1,P1,P2,A1,A2,A3,A4>(obj, member, p1, p2);
08779 }
08780 #endif
08781
08782 #ifndef SWIG
08783 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3, class A4>
08784 inline typename _MemberResultCallback_2_4<false,R,T1,P1,P2,A1,A2,A3,A4>::base*
08785 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,A1,A2,A3,A4) , P1 p1, P2 p2) {
08786 return new _MemberResultCallback_2_4<false,R,T1,P1,P2,A1,A2,A3,A4>(obj, member, p1, p2);
08787 }
08788 #endif
08789
08790 namespace {
08791 template <bool del, class R, class P1, class P2, class A1, class A2, class A3, class A4>
08792 class _FunctionResultCallback_2_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08793 public:
08794 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08795 typedef R (*FunctionSignature)(P1,P2,A1,A2,A3,A4);
08796
08797 private:
08798 FunctionSignature function_;
08799 P1 p1_;
08800 P2 p2_;
08801
08802 public:
08803 inline _FunctionResultCallback_2_4(FunctionSignature function, P1 p1, P2 p2)
08804 : ResultCallback4<R,A1,A2,A3,A4>(),
08805 function_(function), p1_(p1), p2_(p2) { }
08806
08807 virtual bool IsRepeatable() const {
08808 return !del;
08809 }
08810
08811 virtual void CheckIsRepeatable() const {
08812 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08813 }
08814
08815 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08816 if (!del) {
08817 R result = (*function_)(p1_,p2_,a1,a2,a3,a4);
08818 return result;
08819 } else {
08820 R result = (*function_)(p1_,p2_,a1,a2,a3,a4);
08821
08822 function_ = NULL;
08823 delete this;
08824 return result;
08825 }
08826 }
08827 };
08828
08829 template <bool del, class P1, class P2, class A1, class A2, class A3, class A4>
08830 class _FunctionResultCallback_2_4<del, void, P1, P2, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08831 public:
08832 typedef Callback4<A1,A2,A3,A4> base;
08833 typedef void (*FunctionSignature)(P1,P2,A1,A2,A3,A4);
08834
08835 private:
08836 FunctionSignature function_;
08837 P1 p1_;
08838 P2 p2_;
08839
08840 public:
08841 inline _FunctionResultCallback_2_4(FunctionSignature function, P1 p1, P2 p2)
08842 : Callback4<A1,A2,A3,A4>(),
08843 function_(function), p1_(p1), p2_(p2) { }
08844
08845 virtual bool IsRepeatable() const {
08846 return !del;
08847 }
08848
08849 virtual void CheckIsRepeatable() const {
08850 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08851 }
08852
08853 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08854 if (!del) {
08855 (*function_)(p1_,p2_,a1,a2,a3,a4);
08856 } else {
08857 (*function_)(p1_,p2_,a1,a2,a3,a4);
08858
08859 function_ = NULL;
08860 delete this;
08861 }
08862 }
08863 };
08864 }
08865 template <class R, class P1, class P2, class A1, class A2, class A3, class A4>
08866 inline typename _FunctionResultCallback_2_4<true,R,P1,P2,A1,A2,A3,A4>::base*
08867 NewCallback(R (*function)(P1,P2,A1,A2,A3,A4), P1 p1, P2 p2) {
08868 return new _FunctionResultCallback_2_4<true,R,P1,P2,A1,A2,A3,A4>(function, p1, p2);
08869 }
08870
08871 template <class R, class P1, class P2, class A1, class A2, class A3, class A4>
08872 inline typename _FunctionResultCallback_2_4<false,R,P1,P2,A1,A2,A3,A4>::base*
08873 NewPermanentCallback(R (*function)(P1,P2,A1,A2,A3,A4), P1 p1, P2 p2) {
08874 return new _FunctionResultCallback_2_4<false,R,P1,P2,A1,A2,A3,A4>(function, p1, p2);
08875 }
08876
08877 namespace {
08878 template <bool del, class R, class T, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
08879 class _ConstMemberResultCallback_3_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08880 public:
08881 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08882 typedef R (T::*MemberSignature)(P1,P2,P3,A1,A2,A3,A4) const;
08883
08884 private:
08885 const T* object_;
08886 MemberSignature member_;
08887 P1 p1_;
08888 P2 p2_;
08889 P3 p3_;
08890
08891 public:
08892 inline _ConstMemberResultCallback_3_4(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
08893 : ResultCallback4<R,A1,A2,A3,A4>(),
08894 object_(object),
08895 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
08896
08897 virtual bool IsRepeatable() const {
08898 return !del;
08899 }
08900
08901 virtual void CheckIsRepeatable() const {
08902 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
08903 }
08904
08905 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08906 if (!del) {
08907 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4);
08908 return result;
08909 } else {
08910 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4);
08911
08912 member_ = NULL;
08913 delete this;
08914 return result;
08915 }
08916 }
08917 };
08918
08919 template <bool del, class T, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
08920 class _ConstMemberResultCallback_3_4<del, void, T, P1, P2, P3, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
08921 public:
08922 typedef Callback4<A1,A2,A3,A4> base;
08923 typedef void (T::*MemberSignature)(P1,P2,P3,A1,A2,A3,A4) const;
08924
08925 private:
08926 const T* object_;
08927 MemberSignature member_;
08928 P1 p1_;
08929 P2 p2_;
08930 P3 p3_;
08931
08932 public:
08933 inline _ConstMemberResultCallback_3_4(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
08934 : Callback4<A1,A2,A3,A4>(),
08935 object_(object),
08936 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
08937
08938 virtual bool IsRepeatable() const {
08939 return !del;
08940 }
08941
08942 virtual void CheckIsRepeatable() const {
08943 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
08944 }
08945
08946 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
08947 if (!del) {
08948 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4);
08949 } else {
08950 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4);
08951
08952 member_ = NULL;
08953 delete this;
08954 }
08955 }
08956 };
08957 }
08958 #ifndef SWIG
08959 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
08960 inline typename _ConstMemberResultCallback_3_4<true,R,T1,P1,P2,P3,A1,A2,A3,A4>::base*
08961 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3,A4) const, P1 p1, P2 p2, P3 p3) {
08962 return new _ConstMemberResultCallback_3_4<true,R,T1,P1,P2,P3,A1,A2,A3,A4>(obj, member, p1, p2, p3);
08963 }
08964 #endif
08965
08966 #ifndef SWIG
08967 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
08968 inline typename _ConstMemberResultCallback_3_4<false,R,T1,P1,P2,P3,A1,A2,A3,A4>::base*
08969 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3,A4) const, P1 p1, P2 p2, P3 p3) {
08970 return new _ConstMemberResultCallback_3_4<false,R,T1,P1,P2,P3,A1,A2,A3,A4>(obj, member, p1, p2, p3);
08971 }
08972 #endif
08973
08974 namespace {
08975 template <bool del, class R, class T, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
08976 class _MemberResultCallback_3_4 : public ResultCallback4<R,A1,A2,A3,A4> {
08977 public:
08978 typedef ResultCallback4<R,A1,A2,A3,A4> base;
08979 typedef R (T::*MemberSignature)(P1,P2,P3,A1,A2,A3,A4) ;
08980
08981 private:
08982 T* object_;
08983 MemberSignature member_;
08984 P1 p1_;
08985 P2 p2_;
08986 P3 p3_;
08987
08988 public:
08989 inline _MemberResultCallback_3_4( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
08990 : ResultCallback4<R,A1,A2,A3,A4>(),
08991 object_(object),
08992 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
08993
08994 virtual bool IsRepeatable() const {
08995 return !del;
08996 }
08997
08998 virtual void CheckIsRepeatable() const {
08999 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09000 }
09001
09002 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09003 if (!del) {
09004 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4);
09005 return result;
09006 } else {
09007 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4);
09008
09009 member_ = NULL;
09010 delete this;
09011 return result;
09012 }
09013 }
09014 };
09015
09016 template <bool del, class T, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
09017 class _MemberResultCallback_3_4<del, void, T, P1, P2, P3, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09018 public:
09019 typedef Callback4<A1,A2,A3,A4> base;
09020 typedef void (T::*MemberSignature)(P1,P2,P3,A1,A2,A3,A4) ;
09021
09022 private:
09023 T* object_;
09024 MemberSignature member_;
09025 P1 p1_;
09026 P2 p2_;
09027 P3 p3_;
09028
09029 public:
09030 inline _MemberResultCallback_3_4( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
09031 : Callback4<A1,A2,A3,A4>(),
09032 object_(object),
09033 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
09034
09035 virtual bool IsRepeatable() const {
09036 return !del;
09037 }
09038
09039 virtual void CheckIsRepeatable() const {
09040 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09041 }
09042
09043 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09044 if (!del) {
09045 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4);
09046 } else {
09047 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4);
09048
09049 member_ = NULL;
09050 delete this;
09051 }
09052 }
09053 };
09054 }
09055 #ifndef SWIG
09056 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
09057 inline typename _MemberResultCallback_3_4<true,R,T1,P1,P2,P3,A1,A2,A3,A4>::base*
09058 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3,A4) , P1 p1, P2 p2, P3 p3) {
09059 return new _MemberResultCallback_3_4<true,R,T1,P1,P2,P3,A1,A2,A3,A4>(obj, member, p1, p2, p3);
09060 }
09061 #endif
09062
09063 #ifndef SWIG
09064 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
09065 inline typename _MemberResultCallback_3_4<false,R,T1,P1,P2,P3,A1,A2,A3,A4>::base*
09066 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3,A4) , P1 p1, P2 p2, P3 p3) {
09067 return new _MemberResultCallback_3_4<false,R,T1,P1,P2,P3,A1,A2,A3,A4>(obj, member, p1, p2, p3);
09068 }
09069 #endif
09070
09071 namespace {
09072 template <bool del, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
09073 class _FunctionResultCallback_3_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09074 public:
09075 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09076 typedef R (*FunctionSignature)(P1,P2,P3,A1,A2,A3,A4);
09077
09078 private:
09079 FunctionSignature function_;
09080 P1 p1_;
09081 P2 p2_;
09082 P3 p3_;
09083
09084 public:
09085 inline _FunctionResultCallback_3_4(FunctionSignature function, P1 p1, P2 p2, P3 p3)
09086 : ResultCallback4<R,A1,A2,A3,A4>(),
09087 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
09088
09089 virtual bool IsRepeatable() const {
09090 return !del;
09091 }
09092
09093 virtual void CheckIsRepeatable() const {
09094 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09095 }
09096
09097 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09098 if (!del) {
09099 R result = (*function_)(p1_,p2_,p3_,a1,a2,a3,a4);
09100 return result;
09101 } else {
09102 R result = (*function_)(p1_,p2_,p3_,a1,a2,a3,a4);
09103
09104 function_ = NULL;
09105 delete this;
09106 return result;
09107 }
09108 }
09109 };
09110
09111 template <bool del, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
09112 class _FunctionResultCallback_3_4<del, void, P1, P2, P3, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09113 public:
09114 typedef Callback4<A1,A2,A3,A4> base;
09115 typedef void (*FunctionSignature)(P1,P2,P3,A1,A2,A3,A4);
09116
09117 private:
09118 FunctionSignature function_;
09119 P1 p1_;
09120 P2 p2_;
09121 P3 p3_;
09122
09123 public:
09124 inline _FunctionResultCallback_3_4(FunctionSignature function, P1 p1, P2 p2, P3 p3)
09125 : Callback4<A1,A2,A3,A4>(),
09126 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
09127
09128 virtual bool IsRepeatable() const {
09129 return !del;
09130 }
09131
09132 virtual void CheckIsRepeatable() const {
09133 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09134 }
09135
09136 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09137 if (!del) {
09138 (*function_)(p1_,p2_,p3_,a1,a2,a3,a4);
09139 } else {
09140 (*function_)(p1_,p2_,p3_,a1,a2,a3,a4);
09141
09142 function_ = NULL;
09143 delete this;
09144 }
09145 }
09146 };
09147 }
09148 template <class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
09149 inline typename _FunctionResultCallback_3_4<true,R,P1,P2,P3,A1,A2,A3,A4>::base*
09150 NewCallback(R (*function)(P1,P2,P3,A1,A2,A3,A4), P1 p1, P2 p2, P3 p3) {
09151 return new _FunctionResultCallback_3_4<true,R,P1,P2,P3,A1,A2,A3,A4>(function, p1, p2, p3);
09152 }
09153
09154 template <class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4>
09155 inline typename _FunctionResultCallback_3_4<false,R,P1,P2,P3,A1,A2,A3,A4>::base*
09156 NewPermanentCallback(R (*function)(P1,P2,P3,A1,A2,A3,A4), P1 p1, P2 p2, P3 p3) {
09157 return new _FunctionResultCallback_3_4<false,R,P1,P2,P3,A1,A2,A3,A4>(function, p1, p2, p3);
09158 }
09159
09160 namespace {
09161 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09162 class _ConstMemberResultCallback_4_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09163 public:
09164 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09165 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3,A4) const;
09166
09167 private:
09168 const T* object_;
09169 MemberSignature member_;
09170 P1 p1_;
09171 P2 p2_;
09172 P3 p3_;
09173 P4 p4_;
09174
09175 public:
09176 inline _ConstMemberResultCallback_4_4(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
09177 : ResultCallback4<R,A1,A2,A3,A4>(),
09178 object_(object),
09179 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
09180
09181 virtual bool IsRepeatable() const {
09182 return !del;
09183 }
09184
09185 virtual void CheckIsRepeatable() const {
09186 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09187 }
09188
09189 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09190 if (!del) {
09191 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09192 return result;
09193 } else {
09194 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09195
09196 member_ = NULL;
09197 delete this;
09198 return result;
09199 }
09200 }
09201 };
09202
09203 template <bool del, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09204 class _ConstMemberResultCallback_4_4<del, void, T, P1, P2, P3, P4, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09205 public:
09206 typedef Callback4<A1,A2,A3,A4> base;
09207 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3,A4) const;
09208
09209 private:
09210 const T* object_;
09211 MemberSignature member_;
09212 P1 p1_;
09213 P2 p2_;
09214 P3 p3_;
09215 P4 p4_;
09216
09217 public:
09218 inline _ConstMemberResultCallback_4_4(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
09219 : Callback4<A1,A2,A3,A4>(),
09220 object_(object),
09221 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
09222
09223 virtual bool IsRepeatable() const {
09224 return !del;
09225 }
09226
09227 virtual void CheckIsRepeatable() const {
09228 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09229 }
09230
09231 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09232 if (!del) {
09233 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09234 } else {
09235 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09236
09237 member_ = NULL;
09238 delete this;
09239 }
09240 }
09241 };
09242 }
09243 #ifndef SWIG
09244 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09245 inline typename _ConstMemberResultCallback_4_4<true,R,T1,P1,P2,P3,P4,A1,A2,A3,A4>::base*
09246 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3,A4) const, P1 p1, P2 p2, P3 p3, P4 p4) {
09247 return new _ConstMemberResultCallback_4_4<true,R,T1,P1,P2,P3,P4,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4);
09248 }
09249 #endif
09250
09251 #ifndef SWIG
09252 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09253 inline typename _ConstMemberResultCallback_4_4<false,R,T1,P1,P2,P3,P4,A1,A2,A3,A4>::base*
09254 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3,A4) const, P1 p1, P2 p2, P3 p3, P4 p4) {
09255 return new _ConstMemberResultCallback_4_4<false,R,T1,P1,P2,P3,P4,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4);
09256 }
09257 #endif
09258
09259 namespace {
09260 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09261 class _MemberResultCallback_4_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09262 public:
09263 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09264 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3,A4) ;
09265
09266 private:
09267 T* object_;
09268 MemberSignature member_;
09269 P1 p1_;
09270 P2 p2_;
09271 P3 p3_;
09272 P4 p4_;
09273
09274 public:
09275 inline _MemberResultCallback_4_4( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
09276 : ResultCallback4<R,A1,A2,A3,A4>(),
09277 object_(object),
09278 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
09279
09280 virtual bool IsRepeatable() const {
09281 return !del;
09282 }
09283
09284 virtual void CheckIsRepeatable() const {
09285 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09286 }
09287
09288 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09289 if (!del) {
09290 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09291 return result;
09292 } else {
09293 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09294
09295 member_ = NULL;
09296 delete this;
09297 return result;
09298 }
09299 }
09300 };
09301
09302 template <bool del, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09303 class _MemberResultCallback_4_4<del, void, T, P1, P2, P3, P4, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09304 public:
09305 typedef Callback4<A1,A2,A3,A4> base;
09306 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3,A4) ;
09307
09308 private:
09309 T* object_;
09310 MemberSignature member_;
09311 P1 p1_;
09312 P2 p2_;
09313 P3 p3_;
09314 P4 p4_;
09315
09316 public:
09317 inline _MemberResultCallback_4_4( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
09318 : Callback4<A1,A2,A3,A4>(),
09319 object_(object),
09320 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
09321
09322 virtual bool IsRepeatable() const {
09323 return !del;
09324 }
09325
09326 virtual void CheckIsRepeatable() const {
09327 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09328 }
09329
09330 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09331 if (!del) {
09332 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09333 } else {
09334 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09335
09336 member_ = NULL;
09337 delete this;
09338 }
09339 }
09340 };
09341 }
09342 #ifndef SWIG
09343 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09344 inline typename _MemberResultCallback_4_4<true,R,T1,P1,P2,P3,P4,A1,A2,A3,A4>::base*
09345 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3,A4) , P1 p1, P2 p2, P3 p3, P4 p4) {
09346 return new _MemberResultCallback_4_4<true,R,T1,P1,P2,P3,P4,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4);
09347 }
09348 #endif
09349
09350 #ifndef SWIG
09351 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09352 inline typename _MemberResultCallback_4_4<false,R,T1,P1,P2,P3,P4,A1,A2,A3,A4>::base*
09353 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3,A4) , P1 p1, P2 p2, P3 p3, P4 p4) {
09354 return new _MemberResultCallback_4_4<false,R,T1,P1,P2,P3,P4,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4);
09355 }
09356 #endif
09357
09358 namespace {
09359 template <bool del, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09360 class _FunctionResultCallback_4_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09361 public:
09362 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09363 typedef R (*FunctionSignature)(P1,P2,P3,P4,A1,A2,A3,A4);
09364
09365 private:
09366 FunctionSignature function_;
09367 P1 p1_;
09368 P2 p2_;
09369 P3 p3_;
09370 P4 p4_;
09371
09372 public:
09373 inline _FunctionResultCallback_4_4(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
09374 : ResultCallback4<R,A1,A2,A3,A4>(),
09375 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
09376
09377 virtual bool IsRepeatable() const {
09378 return !del;
09379 }
09380
09381 virtual void CheckIsRepeatable() const {
09382 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09383 }
09384
09385 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09386 if (!del) {
09387 R result = (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09388 return result;
09389 } else {
09390 R result = (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09391
09392 function_ = NULL;
09393 delete this;
09394 return result;
09395 }
09396 }
09397 };
09398
09399 template <bool del, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09400 class _FunctionResultCallback_4_4<del, void, P1, P2, P3, P4, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09401 public:
09402 typedef Callback4<A1,A2,A3,A4> base;
09403 typedef void (*FunctionSignature)(P1,P2,P3,P4,A1,A2,A3,A4);
09404
09405 private:
09406 FunctionSignature function_;
09407 P1 p1_;
09408 P2 p2_;
09409 P3 p3_;
09410 P4 p4_;
09411
09412 public:
09413 inline _FunctionResultCallback_4_4(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
09414 : Callback4<A1,A2,A3,A4>(),
09415 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
09416
09417 virtual bool IsRepeatable() const {
09418 return !del;
09419 }
09420
09421 virtual void CheckIsRepeatable() const {
09422 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09423 }
09424
09425 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09426 if (!del) {
09427 (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09428 } else {
09429 (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4);
09430
09431 function_ = NULL;
09432 delete this;
09433 }
09434 }
09435 };
09436 }
09437 template <class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09438 inline typename _FunctionResultCallback_4_4<true,R,P1,P2,P3,P4,A1,A2,A3,A4>::base*
09439 NewCallback(R (*function)(P1,P2,P3,P4,A1,A2,A3,A4), P1 p1, P2 p2, P3 p3, P4 p4) {
09440 return new _FunctionResultCallback_4_4<true,R,P1,P2,P3,P4,A1,A2,A3,A4>(function, p1, p2, p3, p4);
09441 }
09442
09443 template <class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4>
09444 inline typename _FunctionResultCallback_4_4<false,R,P1,P2,P3,P4,A1,A2,A3,A4>::base*
09445 NewPermanentCallback(R (*function)(P1,P2,P3,P4,A1,A2,A3,A4), P1 p1, P2 p2, P3 p3, P4 p4) {
09446 return new _FunctionResultCallback_4_4<false,R,P1,P2,P3,P4,A1,A2,A3,A4>(function, p1, p2, p3, p4);
09447 }
09448
09449 namespace {
09450 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09451 class _ConstMemberResultCallback_5_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09452 public:
09453 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09454 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4) const;
09455
09456 private:
09457 const T* object_;
09458 MemberSignature member_;
09459 P1 p1_;
09460 P2 p2_;
09461 P3 p3_;
09462 P4 p4_;
09463 P5 p5_;
09464
09465 public:
09466 inline _ConstMemberResultCallback_5_4(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
09467 : ResultCallback4<R,A1,A2,A3,A4>(),
09468 object_(object),
09469 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
09470
09471 virtual bool IsRepeatable() const {
09472 return !del;
09473 }
09474
09475 virtual void CheckIsRepeatable() const {
09476 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09477 }
09478
09479 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09480 if (!del) {
09481 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09482 return result;
09483 } else {
09484 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09485
09486 member_ = NULL;
09487 delete this;
09488 return result;
09489 }
09490 }
09491 };
09492
09493 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09494 class _ConstMemberResultCallback_5_4<del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09495 public:
09496 typedef Callback4<A1,A2,A3,A4> base;
09497 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4) const;
09498
09499 private:
09500 const T* object_;
09501 MemberSignature member_;
09502 P1 p1_;
09503 P2 p2_;
09504 P3 p3_;
09505 P4 p4_;
09506 P5 p5_;
09507
09508 public:
09509 inline _ConstMemberResultCallback_5_4(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
09510 : Callback4<A1,A2,A3,A4>(),
09511 object_(object),
09512 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
09513
09514 virtual bool IsRepeatable() const {
09515 return !del;
09516 }
09517
09518 virtual void CheckIsRepeatable() const {
09519 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09520 }
09521
09522 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09523 if (!del) {
09524 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09525 } else {
09526 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09527
09528 member_ = NULL;
09529 delete this;
09530 }
09531 }
09532 };
09533 }
09534 #ifndef SWIG
09535 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09536 inline typename _ConstMemberResultCallback_5_4<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4>::base*
09537 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3,A4) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
09538 return new _ConstMemberResultCallback_5_4<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4, p5);
09539 }
09540 #endif
09541
09542 #ifndef SWIG
09543 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09544 inline typename _ConstMemberResultCallback_5_4<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4>::base*
09545 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3,A4) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
09546 return new _ConstMemberResultCallback_5_4<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4, p5);
09547 }
09548 #endif
09549
09550 namespace {
09551 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09552 class _MemberResultCallback_5_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09553 public:
09554 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09555 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4) ;
09556
09557 private:
09558 T* object_;
09559 MemberSignature member_;
09560 P1 p1_;
09561 P2 p2_;
09562 P3 p3_;
09563 P4 p4_;
09564 P5 p5_;
09565
09566 public:
09567 inline _MemberResultCallback_5_4( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
09568 : ResultCallback4<R,A1,A2,A3,A4>(),
09569 object_(object),
09570 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
09571
09572 virtual bool IsRepeatable() const {
09573 return !del;
09574 }
09575
09576 virtual void CheckIsRepeatable() const {
09577 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09578 }
09579
09580 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09581 if (!del) {
09582 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09583 return result;
09584 } else {
09585 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09586
09587 member_ = NULL;
09588 delete this;
09589 return result;
09590 }
09591 }
09592 };
09593
09594 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09595 class _MemberResultCallback_5_4<del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09596 public:
09597 typedef Callback4<A1,A2,A3,A4> base;
09598 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4) ;
09599
09600 private:
09601 T* object_;
09602 MemberSignature member_;
09603 P1 p1_;
09604 P2 p2_;
09605 P3 p3_;
09606 P4 p4_;
09607 P5 p5_;
09608
09609 public:
09610 inline _MemberResultCallback_5_4( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
09611 : Callback4<A1,A2,A3,A4>(),
09612 object_(object),
09613 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
09614
09615 virtual bool IsRepeatable() const {
09616 return !del;
09617 }
09618
09619 virtual void CheckIsRepeatable() const {
09620 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09621 }
09622
09623 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09624 if (!del) {
09625 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09626 } else {
09627 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09628
09629 member_ = NULL;
09630 delete this;
09631 }
09632 }
09633 };
09634 }
09635 #ifndef SWIG
09636 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09637 inline typename _MemberResultCallback_5_4<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4>::base*
09638 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3,A4) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
09639 return new _MemberResultCallback_5_4<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4, p5);
09640 }
09641 #endif
09642
09643 #ifndef SWIG
09644 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09645 inline typename _MemberResultCallback_5_4<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4>::base*
09646 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3,A4) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
09647 return new _MemberResultCallback_5_4<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4, p5);
09648 }
09649 #endif
09650
09651 namespace {
09652 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09653 class _FunctionResultCallback_5_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09654 public:
09655 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09656 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4);
09657
09658 private:
09659 FunctionSignature function_;
09660 P1 p1_;
09661 P2 p2_;
09662 P3 p3_;
09663 P4 p4_;
09664 P5 p5_;
09665
09666 public:
09667 inline _FunctionResultCallback_5_4(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
09668 : ResultCallback4<R,A1,A2,A3,A4>(),
09669 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
09670
09671 virtual bool IsRepeatable() const {
09672 return !del;
09673 }
09674
09675 virtual void CheckIsRepeatable() const {
09676 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09677 }
09678
09679 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09680 if (!del) {
09681 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09682 return result;
09683 } else {
09684 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09685
09686 function_ = NULL;
09687 delete this;
09688 return result;
09689 }
09690 }
09691 };
09692
09693 template <bool del, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09694 class _FunctionResultCallback_5_4<del, void, P1, P2, P3, P4, P5, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09695 public:
09696 typedef Callback4<A1,A2,A3,A4> base;
09697 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4);
09698
09699 private:
09700 FunctionSignature function_;
09701 P1 p1_;
09702 P2 p2_;
09703 P3 p3_;
09704 P4 p4_;
09705 P5 p5_;
09706
09707 public:
09708 inline _FunctionResultCallback_5_4(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
09709 : Callback4<A1,A2,A3,A4>(),
09710 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
09711
09712 virtual bool IsRepeatable() const {
09713 return !del;
09714 }
09715
09716 virtual void CheckIsRepeatable() const {
09717 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09718 }
09719
09720 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09721 if (!del) {
09722 (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09723 } else {
09724 (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4);
09725
09726 function_ = NULL;
09727 delete this;
09728 }
09729 }
09730 };
09731 }
09732 template <class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09733 inline typename _FunctionResultCallback_5_4<true,R,P1,P2,P3,P4,P5,A1,A2,A3,A4>::base*
09734 NewCallback(R (*function)(P1,P2,P3,P4,P5,A1,A2,A3,A4), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
09735 return new _FunctionResultCallback_5_4<true,R,P1,P2,P3,P4,P5,A1,A2,A3,A4>(function, p1, p2, p3, p4, p5);
09736 }
09737
09738 template <class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4>
09739 inline typename _FunctionResultCallback_5_4<false,R,P1,P2,P3,P4,P5,A1,A2,A3,A4>::base*
09740 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,A1,A2,A3,A4), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
09741 return new _FunctionResultCallback_5_4<false,R,P1,P2,P3,P4,P5,A1,A2,A3,A4>(function, p1, p2, p3, p4, p5);
09742 }
09743
09744 namespace {
09745 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09746 class _ConstMemberResultCallback_6_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09747 public:
09748 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09749 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4) const;
09750
09751 private:
09752 const T* object_;
09753 MemberSignature member_;
09754 P1 p1_;
09755 P2 p2_;
09756 P3 p3_;
09757 P4 p4_;
09758 P5 p5_;
09759 P6 p6_;
09760
09761 public:
09762 inline _ConstMemberResultCallback_6_4(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
09763 : ResultCallback4<R,A1,A2,A3,A4>(),
09764 object_(object),
09765 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
09766
09767 virtual bool IsRepeatable() const {
09768 return !del;
09769 }
09770
09771 virtual void CheckIsRepeatable() const {
09772 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09773 }
09774
09775 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09776 if (!del) {
09777 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09778 return result;
09779 } else {
09780 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09781
09782 member_ = NULL;
09783 delete this;
09784 return result;
09785 }
09786 }
09787 };
09788
09789 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09790 class _ConstMemberResultCallback_6_4<del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09791 public:
09792 typedef Callback4<A1,A2,A3,A4> base;
09793 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4) const;
09794
09795 private:
09796 const T* object_;
09797 MemberSignature member_;
09798 P1 p1_;
09799 P2 p2_;
09800 P3 p3_;
09801 P4 p4_;
09802 P5 p5_;
09803 P6 p6_;
09804
09805 public:
09806 inline _ConstMemberResultCallback_6_4(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
09807 : Callback4<A1,A2,A3,A4>(),
09808 object_(object),
09809 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
09810
09811 virtual bool IsRepeatable() const {
09812 return !del;
09813 }
09814
09815 virtual void CheckIsRepeatable() const {
09816 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09817 }
09818
09819 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09820 if (!del) {
09821 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09822 } else {
09823 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09824
09825 member_ = NULL;
09826 delete this;
09827 }
09828 }
09829 };
09830 }
09831 #ifndef SWIG
09832 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09833 inline typename _ConstMemberResultCallback_6_4<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>::base*
09834 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
09835 return new _ConstMemberResultCallback_6_4<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4, p5, p6);
09836 }
09837 #endif
09838
09839 #ifndef SWIG
09840 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09841 inline typename _ConstMemberResultCallback_6_4<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>::base*
09842 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
09843 return new _ConstMemberResultCallback_6_4<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4, p5, p6);
09844 }
09845 #endif
09846
09847 namespace {
09848 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09849 class _MemberResultCallback_6_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09850 public:
09851 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09852 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4) ;
09853
09854 private:
09855 T* object_;
09856 MemberSignature member_;
09857 P1 p1_;
09858 P2 p2_;
09859 P3 p3_;
09860 P4 p4_;
09861 P5 p5_;
09862 P6 p6_;
09863
09864 public:
09865 inline _MemberResultCallback_6_4( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
09866 : ResultCallback4<R,A1,A2,A3,A4>(),
09867 object_(object),
09868 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
09869
09870 virtual bool IsRepeatable() const {
09871 return !del;
09872 }
09873
09874 virtual void CheckIsRepeatable() const {
09875 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09876 }
09877
09878 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09879 if (!del) {
09880 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09881 return result;
09882 } else {
09883 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09884
09885 member_ = NULL;
09886 delete this;
09887 return result;
09888 }
09889 }
09890 };
09891
09892 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09893 class _MemberResultCallback_6_4<del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09894 public:
09895 typedef Callback4<A1,A2,A3,A4> base;
09896 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4) ;
09897
09898 private:
09899 T* object_;
09900 MemberSignature member_;
09901 P1 p1_;
09902 P2 p2_;
09903 P3 p3_;
09904 P4 p4_;
09905 P5 p5_;
09906 P6 p6_;
09907
09908 public:
09909 inline _MemberResultCallback_6_4( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
09910 : Callback4<A1,A2,A3,A4>(),
09911 object_(object),
09912 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
09913
09914 virtual bool IsRepeatable() const {
09915 return !del;
09916 }
09917
09918 virtual void CheckIsRepeatable() const {
09919 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
09920 }
09921
09922 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09923 if (!del) {
09924 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09925 } else {
09926 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09927
09928 member_ = NULL;
09929 delete this;
09930 }
09931 }
09932 };
09933 }
09934 #ifndef SWIG
09935 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09936 inline typename _MemberResultCallback_6_4<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>::base*
09937 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
09938 return new _MemberResultCallback_6_4<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4, p5, p6);
09939 }
09940 #endif
09941
09942 #ifndef SWIG
09943 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09944 inline typename _MemberResultCallback_6_4<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>::base*
09945 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
09946 return new _MemberResultCallback_6_4<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>(obj, member, p1, p2, p3, p4, p5, p6);
09947 }
09948 #endif
09949
09950 namespace {
09951 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09952 class _FunctionResultCallback_6_4 : public ResultCallback4<R,A1,A2,A3,A4> {
09953 public:
09954 typedef ResultCallback4<R,A1,A2,A3,A4> base;
09955 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4);
09956
09957 private:
09958 FunctionSignature function_;
09959 P1 p1_;
09960 P2 p2_;
09961 P3 p3_;
09962 P4 p4_;
09963 P5 p5_;
09964 P6 p6_;
09965
09966 public:
09967 inline _FunctionResultCallback_6_4(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
09968 : ResultCallback4<R,A1,A2,A3,A4>(),
09969 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
09970
09971 virtual bool IsRepeatable() const {
09972 return !del;
09973 }
09974
09975 virtual void CheckIsRepeatable() const {
09976 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback4<R,A1,A2,A3,A4>");
09977 }
09978
09979 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4) {
09980 if (!del) {
09981 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09982 return result;
09983 } else {
09984 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
09985
09986 function_ = NULL;
09987 delete this;
09988 return result;
09989 }
09990 }
09991 };
09992
09993 template <bool del, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
09994 class _FunctionResultCallback_6_4<del, void, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4> : public Callback4<A1,A2,A3,A4> {
09995 public:
09996 typedef Callback4<A1,A2,A3,A4> base;
09997 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4);
09998
09999 private:
10000 FunctionSignature function_;
10001 P1 p1_;
10002 P2 p2_;
10003 P3 p3_;
10004 P4 p4_;
10005 P5 p5_;
10006 P6 p6_;
10007
10008 public:
10009 inline _FunctionResultCallback_6_4(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
10010 : Callback4<A1,A2,A3,A4>(),
10011 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
10012
10013 virtual bool IsRepeatable() const {
10014 return !del;
10015 }
10016
10017 virtual void CheckIsRepeatable() const {
10018 if (del) CallbackUtils_::FailIsRepeatable("Callback4<A1,A2,A3,A4>");
10019 }
10020
10021 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4) {
10022 if (!del) {
10023 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
10024 } else {
10025 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4);
10026
10027 function_ = NULL;
10028 delete this;
10029 }
10030 }
10031 };
10032 }
10033 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
10034 inline typename _FunctionResultCallback_6_4<true,R,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>::base*
10035 NewCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
10036 return new _FunctionResultCallback_6_4<true,R,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>(function, p1, p2, p3, p4, p5, p6);
10037 }
10038
10039 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4>
10040 inline typename _FunctionResultCallback_6_4<false,R,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>::base*
10041 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
10042 return new _FunctionResultCallback_6_4<false,R,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4>(function, p1, p2, p3, p4, p5, p6);
10043 }
10044
10045 namespace {
10046 template <bool del, class R, class T, class A1, class A2, class A3, class A4, class A5>
10047 class _ConstMemberResultCallback_0_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10048 public:
10049 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10050 typedef R (T::*MemberSignature)(A1,A2,A3,A4,A5) const;
10051
10052 private:
10053 const T* object_;
10054 MemberSignature member_;
10055
10056 public:
10057 inline _ConstMemberResultCallback_0_5(const T* object, MemberSignature member)
10058 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10059 object_(object),
10060 member_(member) { }
10061
10062 virtual bool IsRepeatable() const {
10063 return !del;
10064 }
10065
10066 virtual void CheckIsRepeatable() const {
10067 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10068 }
10069
10070 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10071 if (!del) {
10072 R result = (object_->*member_)(a1,a2,a3,a4,a5);
10073 return result;
10074 } else {
10075 R result = (object_->*member_)(a1,a2,a3,a4,a5);
10076
10077 member_ = NULL;
10078 delete this;
10079 return result;
10080 }
10081 }
10082 };
10083
10084 template <bool del, class T, class A1, class A2, class A3, class A4, class A5>
10085 class _ConstMemberResultCallback_0_5<del, void, T, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10086 public:
10087 typedef Callback5<A1,A2,A3,A4,A5> base;
10088 typedef void (T::*MemberSignature)(A1,A2,A3,A4,A5) const;
10089
10090 private:
10091 const T* object_;
10092 MemberSignature member_;
10093
10094 public:
10095 inline _ConstMemberResultCallback_0_5(const T* object, MemberSignature member)
10096 : Callback5<A1,A2,A3,A4,A5>(),
10097 object_(object),
10098 member_(member) { }
10099
10100 virtual bool IsRepeatable() const {
10101 return !del;
10102 }
10103
10104 virtual void CheckIsRepeatable() const {
10105 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10106 }
10107
10108 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10109 if (!del) {
10110 (object_->*member_)(a1,a2,a3,a4,a5);
10111 } else {
10112 (object_->*member_)(a1,a2,a3,a4,a5);
10113
10114 member_ = NULL;
10115 delete this;
10116 }
10117 }
10118 };
10119 }
10120 #ifndef SWIG
10121 template <class T1, class T2, class R, class A1, class A2, class A3, class A4, class A5>
10122 inline typename _ConstMemberResultCallback_0_5<true,R,T1,A1,A2,A3,A4,A5>::base*
10123 NewCallback(const T1* obj, R (T2::*member)(A1,A2,A3,A4,A5) const) {
10124 return new _ConstMemberResultCallback_0_5<true,R,T1,A1,A2,A3,A4,A5>(obj, member);
10125 }
10126 #endif
10127
10128 #ifndef SWIG
10129 template <class T1, class T2, class R, class A1, class A2, class A3, class A4, class A5>
10130 inline typename _ConstMemberResultCallback_0_5<false,R,T1,A1,A2,A3,A4,A5>::base*
10131 NewPermanentCallback(const T1* obj, R (T2::*member)(A1,A2,A3,A4,A5) const) {
10132 return new _ConstMemberResultCallback_0_5<false,R,T1,A1,A2,A3,A4,A5>(obj, member);
10133 }
10134 #endif
10135
10136 namespace {
10137 template <bool del, class R, class T, class A1, class A2, class A3, class A4, class A5>
10138 class _MemberResultCallback_0_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10139 public:
10140 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10141 typedef R (T::*MemberSignature)(A1,A2,A3,A4,A5) ;
10142
10143 private:
10144 T* object_;
10145 MemberSignature member_;
10146
10147 public:
10148 inline _MemberResultCallback_0_5( T* object, MemberSignature member)
10149 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10150 object_(object),
10151 member_(member) { }
10152
10153 virtual bool IsRepeatable() const {
10154 return !del;
10155 }
10156
10157 virtual void CheckIsRepeatable() const {
10158 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10159 }
10160
10161 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10162 if (!del) {
10163 R result = (object_->*member_)(a1,a2,a3,a4,a5);
10164 return result;
10165 } else {
10166 R result = (object_->*member_)(a1,a2,a3,a4,a5);
10167
10168 member_ = NULL;
10169 delete this;
10170 return result;
10171 }
10172 }
10173 };
10174
10175 template <bool del, class T, class A1, class A2, class A3, class A4, class A5>
10176 class _MemberResultCallback_0_5<del, void, T, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10177 public:
10178 typedef Callback5<A1,A2,A3,A4,A5> base;
10179 typedef void (T::*MemberSignature)(A1,A2,A3,A4,A5) ;
10180
10181 private:
10182 T* object_;
10183 MemberSignature member_;
10184
10185 public:
10186 inline _MemberResultCallback_0_5( T* object, MemberSignature member)
10187 : Callback5<A1,A2,A3,A4,A5>(),
10188 object_(object),
10189 member_(member) { }
10190
10191 virtual bool IsRepeatable() const {
10192 return !del;
10193 }
10194
10195 virtual void CheckIsRepeatable() const {
10196 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10197 }
10198
10199 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10200 if (!del) {
10201 (object_->*member_)(a1,a2,a3,a4,a5);
10202 } else {
10203 (object_->*member_)(a1,a2,a3,a4,a5);
10204
10205 member_ = NULL;
10206 delete this;
10207 }
10208 }
10209 };
10210 }
10211 #ifndef SWIG
10212 template <class T1, class T2, class R, class A1, class A2, class A3, class A4, class A5>
10213 inline typename _MemberResultCallback_0_5<true,R,T1,A1,A2,A3,A4,A5>::base*
10214 NewCallback( T1* obj, R (T2::*member)(A1,A2,A3,A4,A5) ) {
10215 return new _MemberResultCallback_0_5<true,R,T1,A1,A2,A3,A4,A5>(obj, member);
10216 }
10217 #endif
10218
10219 #ifndef SWIG
10220 template <class T1, class T2, class R, class A1, class A2, class A3, class A4, class A5>
10221 inline typename _MemberResultCallback_0_5<false,R,T1,A1,A2,A3,A4,A5>::base*
10222 NewPermanentCallback( T1* obj, R (T2::*member)(A1,A2,A3,A4,A5) ) {
10223 return new _MemberResultCallback_0_5<false,R,T1,A1,A2,A3,A4,A5>(obj, member);
10224 }
10225 #endif
10226
10227 namespace {
10228 template <bool del, class R, class A1, class A2, class A3, class A4, class A5>
10229 class _FunctionResultCallback_0_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10230 public:
10231 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10232 typedef R (*FunctionSignature)(A1,A2,A3,A4,A5);
10233
10234 private:
10235 FunctionSignature function_;
10236
10237 public:
10238 inline _FunctionResultCallback_0_5(FunctionSignature function)
10239 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10240 function_(function) { }
10241
10242 virtual bool IsRepeatable() const {
10243 return !del;
10244 }
10245
10246 virtual void CheckIsRepeatable() const {
10247 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10248 }
10249
10250 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10251 if (!del) {
10252 R result = (*function_)(a1,a2,a3,a4,a5);
10253 return result;
10254 } else {
10255 R result = (*function_)(a1,a2,a3,a4,a5);
10256
10257 function_ = NULL;
10258 delete this;
10259 return result;
10260 }
10261 }
10262 };
10263
10264 template <bool del, class A1, class A2, class A3, class A4, class A5>
10265 class _FunctionResultCallback_0_5<del, void, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10266 public:
10267 typedef Callback5<A1,A2,A3,A4,A5> base;
10268 typedef void (*FunctionSignature)(A1,A2,A3,A4,A5);
10269
10270 private:
10271 FunctionSignature function_;
10272
10273 public:
10274 inline _FunctionResultCallback_0_5(FunctionSignature function)
10275 : Callback5<A1,A2,A3,A4,A5>(),
10276 function_(function) { }
10277
10278 virtual bool IsRepeatable() const {
10279 return !del;
10280 }
10281
10282 virtual void CheckIsRepeatable() const {
10283 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10284 }
10285
10286 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10287 if (!del) {
10288 (*function_)(a1,a2,a3,a4,a5);
10289 } else {
10290 (*function_)(a1,a2,a3,a4,a5);
10291
10292 function_ = NULL;
10293 delete this;
10294 }
10295 }
10296 };
10297 }
10298 template <class R, class A1, class A2, class A3, class A4, class A5>
10299 inline typename _FunctionResultCallback_0_5<true,R,A1,A2,A3,A4,A5>::base*
10300 NewCallback(R (*function)(A1,A2,A3,A4,A5)) {
10301 return new _FunctionResultCallback_0_5<true,R,A1,A2,A3,A4,A5>(function);
10302 }
10303
10304 template <class R, class A1, class A2, class A3, class A4, class A5>
10305 inline typename _FunctionResultCallback_0_5<false,R,A1,A2,A3,A4,A5>::base*
10306 NewPermanentCallback(R (*function)(A1,A2,A3,A4,A5)) {
10307 return new _FunctionResultCallback_0_5<false,R,A1,A2,A3,A4,A5>(function);
10308 }
10309
10310 namespace {
10311 template <bool del, class R, class T, class P1, class A1, class A2, class A3, class A4, class A5>
10312 class _ConstMemberResultCallback_1_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10313 public:
10314 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10315 typedef R (T::*MemberSignature)(P1,A1,A2,A3,A4,A5) const;
10316
10317 private:
10318 const T* object_;
10319 MemberSignature member_;
10320 P1 p1_;
10321
10322 public:
10323 inline _ConstMemberResultCallback_1_5(const T* object, MemberSignature member, P1 p1)
10324 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10325 object_(object),
10326 member_(member), p1_(p1) { }
10327
10328 virtual bool IsRepeatable() const {
10329 return !del;
10330 }
10331
10332 virtual void CheckIsRepeatable() const {
10333 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10334 }
10335
10336 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10337 if (!del) {
10338 R result = (object_->*member_)(p1_,a1,a2,a3,a4,a5);
10339 return result;
10340 } else {
10341 R result = (object_->*member_)(p1_,a1,a2,a3,a4,a5);
10342
10343 member_ = NULL;
10344 delete this;
10345 return result;
10346 }
10347 }
10348 };
10349
10350 template <bool del, class T, class P1, class A1, class A2, class A3, class A4, class A5>
10351 class _ConstMemberResultCallback_1_5<del, void, T, P1, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10352 public:
10353 typedef Callback5<A1,A2,A3,A4,A5> base;
10354 typedef void (T::*MemberSignature)(P1,A1,A2,A3,A4,A5) const;
10355
10356 private:
10357 const T* object_;
10358 MemberSignature member_;
10359 P1 p1_;
10360
10361 public:
10362 inline _ConstMemberResultCallback_1_5(const T* object, MemberSignature member, P1 p1)
10363 : Callback5<A1,A2,A3,A4,A5>(),
10364 object_(object),
10365 member_(member), p1_(p1) { }
10366
10367 virtual bool IsRepeatable() const {
10368 return !del;
10369 }
10370
10371 virtual void CheckIsRepeatable() const {
10372 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10373 }
10374
10375 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10376 if (!del) {
10377 (object_->*member_)(p1_,a1,a2,a3,a4,a5);
10378 } else {
10379 (object_->*member_)(p1_,a1,a2,a3,a4,a5);
10380
10381 member_ = NULL;
10382 delete this;
10383 }
10384 }
10385 };
10386 }
10387 #ifndef SWIG
10388 template <class T1, class T2, class R, class P1, class A1, class A2, class A3, class A4, class A5>
10389 inline typename _ConstMemberResultCallback_1_5<true,R,T1,P1,A1,A2,A3,A4,A5>::base*
10390 NewCallback(const T1* obj, R (T2::*member)(P1,A1,A2,A3,A4,A5) const, P1 p1) {
10391 return new _ConstMemberResultCallback_1_5<true,R,T1,P1,A1,A2,A3,A4,A5>(obj, member, p1);
10392 }
10393 #endif
10394
10395 #ifndef SWIG
10396 template <class T1, class T2, class R, class P1, class A1, class A2, class A3, class A4, class A5>
10397 inline typename _ConstMemberResultCallback_1_5<false,R,T1,P1,A1,A2,A3,A4,A5>::base*
10398 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,A1,A2,A3,A4,A5) const, P1 p1) {
10399 return new _ConstMemberResultCallback_1_5<false,R,T1,P1,A1,A2,A3,A4,A5>(obj, member, p1);
10400 }
10401 #endif
10402
10403 namespace {
10404 template <bool del, class R, class T, class P1, class A1, class A2, class A3, class A4, class A5>
10405 class _MemberResultCallback_1_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10406 public:
10407 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10408 typedef R (T::*MemberSignature)(P1,A1,A2,A3,A4,A5) ;
10409
10410 private:
10411 T* object_;
10412 MemberSignature member_;
10413 P1 p1_;
10414
10415 public:
10416 inline _MemberResultCallback_1_5( T* object, MemberSignature member, P1 p1)
10417 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10418 object_(object),
10419 member_(member), p1_(p1) { }
10420
10421 virtual bool IsRepeatable() const {
10422 return !del;
10423 }
10424
10425 virtual void CheckIsRepeatable() const {
10426 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10427 }
10428
10429 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10430 if (!del) {
10431 R result = (object_->*member_)(p1_,a1,a2,a3,a4,a5);
10432 return result;
10433 } else {
10434 R result = (object_->*member_)(p1_,a1,a2,a3,a4,a5);
10435
10436 member_ = NULL;
10437 delete this;
10438 return result;
10439 }
10440 }
10441 };
10442
10443 template <bool del, class T, class P1, class A1, class A2, class A3, class A4, class A5>
10444 class _MemberResultCallback_1_5<del, void, T, P1, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10445 public:
10446 typedef Callback5<A1,A2,A3,A4,A5> base;
10447 typedef void (T::*MemberSignature)(P1,A1,A2,A3,A4,A5) ;
10448
10449 private:
10450 T* object_;
10451 MemberSignature member_;
10452 P1 p1_;
10453
10454 public:
10455 inline _MemberResultCallback_1_5( T* object, MemberSignature member, P1 p1)
10456 : Callback5<A1,A2,A3,A4,A5>(),
10457 object_(object),
10458 member_(member), p1_(p1) { }
10459
10460 virtual bool IsRepeatable() const {
10461 return !del;
10462 }
10463
10464 virtual void CheckIsRepeatable() const {
10465 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10466 }
10467
10468 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10469 if (!del) {
10470 (object_->*member_)(p1_,a1,a2,a3,a4,a5);
10471 } else {
10472 (object_->*member_)(p1_,a1,a2,a3,a4,a5);
10473
10474 member_ = NULL;
10475 delete this;
10476 }
10477 }
10478 };
10479 }
10480 #ifndef SWIG
10481 template <class T1, class T2, class R, class P1, class A1, class A2, class A3, class A4, class A5>
10482 inline typename _MemberResultCallback_1_5<true,R,T1,P1,A1,A2,A3,A4,A5>::base*
10483 NewCallback( T1* obj, R (T2::*member)(P1,A1,A2,A3,A4,A5) , P1 p1) {
10484 return new _MemberResultCallback_1_5<true,R,T1,P1,A1,A2,A3,A4,A5>(obj, member, p1);
10485 }
10486 #endif
10487
10488 #ifndef SWIG
10489 template <class T1, class T2, class R, class P1, class A1, class A2, class A3, class A4, class A5>
10490 inline typename _MemberResultCallback_1_5<false,R,T1,P1,A1,A2,A3,A4,A5>::base*
10491 NewPermanentCallback( T1* obj, R (T2::*member)(P1,A1,A2,A3,A4,A5) , P1 p1) {
10492 return new _MemberResultCallback_1_5<false,R,T1,P1,A1,A2,A3,A4,A5>(obj, member, p1);
10493 }
10494 #endif
10495
10496 namespace {
10497 template <bool del, class R, class P1, class A1, class A2, class A3, class A4, class A5>
10498 class _FunctionResultCallback_1_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10499 public:
10500 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10501 typedef R (*FunctionSignature)(P1,A1,A2,A3,A4,A5);
10502
10503 private:
10504 FunctionSignature function_;
10505 P1 p1_;
10506
10507 public:
10508 inline _FunctionResultCallback_1_5(FunctionSignature function, P1 p1)
10509 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10510 function_(function), p1_(p1) { }
10511
10512 virtual bool IsRepeatable() const {
10513 return !del;
10514 }
10515
10516 virtual void CheckIsRepeatable() const {
10517 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10518 }
10519
10520 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10521 if (!del) {
10522 R result = (*function_)(p1_,a1,a2,a3,a4,a5);
10523 return result;
10524 } else {
10525 R result = (*function_)(p1_,a1,a2,a3,a4,a5);
10526
10527 function_ = NULL;
10528 delete this;
10529 return result;
10530 }
10531 }
10532 };
10533
10534 template <bool del, class P1, class A1, class A2, class A3, class A4, class A5>
10535 class _FunctionResultCallback_1_5<del, void, P1, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10536 public:
10537 typedef Callback5<A1,A2,A3,A4,A5> base;
10538 typedef void (*FunctionSignature)(P1,A1,A2,A3,A4,A5);
10539
10540 private:
10541 FunctionSignature function_;
10542 P1 p1_;
10543
10544 public:
10545 inline _FunctionResultCallback_1_5(FunctionSignature function, P1 p1)
10546 : Callback5<A1,A2,A3,A4,A5>(),
10547 function_(function), p1_(p1) { }
10548
10549 virtual bool IsRepeatable() const {
10550 return !del;
10551 }
10552
10553 virtual void CheckIsRepeatable() const {
10554 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10555 }
10556
10557 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10558 if (!del) {
10559 (*function_)(p1_,a1,a2,a3,a4,a5);
10560 } else {
10561 (*function_)(p1_,a1,a2,a3,a4,a5);
10562
10563 function_ = NULL;
10564 delete this;
10565 }
10566 }
10567 };
10568 }
10569 template <class R, class P1, class A1, class A2, class A3, class A4, class A5>
10570 inline typename _FunctionResultCallback_1_5<true,R,P1,A1,A2,A3,A4,A5>::base*
10571 NewCallback(R (*function)(P1,A1,A2,A3,A4,A5), P1 p1) {
10572 return new _FunctionResultCallback_1_5<true,R,P1,A1,A2,A3,A4,A5>(function, p1);
10573 }
10574
10575 template <class R, class P1, class A1, class A2, class A3, class A4, class A5>
10576 inline typename _FunctionResultCallback_1_5<false,R,P1,A1,A2,A3,A4,A5>::base*
10577 NewPermanentCallback(R (*function)(P1,A1,A2,A3,A4,A5), P1 p1) {
10578 return new _FunctionResultCallback_1_5<false,R,P1,A1,A2,A3,A4,A5>(function, p1);
10579 }
10580
10581 namespace {
10582 template <bool del, class R, class T, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10583 class _ConstMemberResultCallback_2_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10584 public:
10585 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10586 typedef R (T::*MemberSignature)(P1,P2,A1,A2,A3,A4,A5) const;
10587
10588 private:
10589 const T* object_;
10590 MemberSignature member_;
10591 P1 p1_;
10592 P2 p2_;
10593
10594 public:
10595 inline _ConstMemberResultCallback_2_5(const T* object, MemberSignature member, P1 p1, P2 p2)
10596 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10597 object_(object),
10598 member_(member), p1_(p1), p2_(p2) { }
10599
10600 virtual bool IsRepeatable() const {
10601 return !del;
10602 }
10603
10604 virtual void CheckIsRepeatable() const {
10605 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10606 }
10607
10608 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10609 if (!del) {
10610 R result = (object_->*member_)(p1_,p2_,a1,a2,a3,a4,a5);
10611 return result;
10612 } else {
10613 R result = (object_->*member_)(p1_,p2_,a1,a2,a3,a4,a5);
10614
10615 member_ = NULL;
10616 delete this;
10617 return result;
10618 }
10619 }
10620 };
10621
10622 template <bool del, class T, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10623 class _ConstMemberResultCallback_2_5<del, void, T, P1, P2, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10624 public:
10625 typedef Callback5<A1,A2,A3,A4,A5> base;
10626 typedef void (T::*MemberSignature)(P1,P2,A1,A2,A3,A4,A5) const;
10627
10628 private:
10629 const T* object_;
10630 MemberSignature member_;
10631 P1 p1_;
10632 P2 p2_;
10633
10634 public:
10635 inline _ConstMemberResultCallback_2_5(const T* object, MemberSignature member, P1 p1, P2 p2)
10636 : Callback5<A1,A2,A3,A4,A5>(),
10637 object_(object),
10638 member_(member), p1_(p1), p2_(p2) { }
10639
10640 virtual bool IsRepeatable() const {
10641 return !del;
10642 }
10643
10644 virtual void CheckIsRepeatable() const {
10645 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10646 }
10647
10648 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10649 if (!del) {
10650 (object_->*member_)(p1_,p2_,a1,a2,a3,a4,a5);
10651 } else {
10652 (object_->*member_)(p1_,p2_,a1,a2,a3,a4,a5);
10653
10654 member_ = NULL;
10655 delete this;
10656 }
10657 }
10658 };
10659 }
10660 #ifndef SWIG
10661 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10662 inline typename _ConstMemberResultCallback_2_5<true,R,T1,P1,P2,A1,A2,A3,A4,A5>::base*
10663 NewCallback(const T1* obj, R (T2::*member)(P1,P2,A1,A2,A3,A4,A5) const, P1 p1, P2 p2) {
10664 return new _ConstMemberResultCallback_2_5<true,R,T1,P1,P2,A1,A2,A3,A4,A5>(obj, member, p1, p2);
10665 }
10666 #endif
10667
10668 #ifndef SWIG
10669 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10670 inline typename _ConstMemberResultCallback_2_5<false,R,T1,P1,P2,A1,A2,A3,A4,A5>::base*
10671 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,A1,A2,A3,A4,A5) const, P1 p1, P2 p2) {
10672 return new _ConstMemberResultCallback_2_5<false,R,T1,P1,P2,A1,A2,A3,A4,A5>(obj, member, p1, p2);
10673 }
10674 #endif
10675
10676 namespace {
10677 template <bool del, class R, class T, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10678 class _MemberResultCallback_2_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10679 public:
10680 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10681 typedef R (T::*MemberSignature)(P1,P2,A1,A2,A3,A4,A5) ;
10682
10683 private:
10684 T* object_;
10685 MemberSignature member_;
10686 P1 p1_;
10687 P2 p2_;
10688
10689 public:
10690 inline _MemberResultCallback_2_5( T* object, MemberSignature member, P1 p1, P2 p2)
10691 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10692 object_(object),
10693 member_(member), p1_(p1), p2_(p2) { }
10694
10695 virtual bool IsRepeatable() const {
10696 return !del;
10697 }
10698
10699 virtual void CheckIsRepeatable() const {
10700 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10701 }
10702
10703 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10704 if (!del) {
10705 R result = (object_->*member_)(p1_,p2_,a1,a2,a3,a4,a5);
10706 return result;
10707 } else {
10708 R result = (object_->*member_)(p1_,p2_,a1,a2,a3,a4,a5);
10709
10710 member_ = NULL;
10711 delete this;
10712 return result;
10713 }
10714 }
10715 };
10716
10717 template <bool del, class T, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10718 class _MemberResultCallback_2_5<del, void, T, P1, P2, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10719 public:
10720 typedef Callback5<A1,A2,A3,A4,A5> base;
10721 typedef void (T::*MemberSignature)(P1,P2,A1,A2,A3,A4,A5) ;
10722
10723 private:
10724 T* object_;
10725 MemberSignature member_;
10726 P1 p1_;
10727 P2 p2_;
10728
10729 public:
10730 inline _MemberResultCallback_2_5( T* object, MemberSignature member, P1 p1, P2 p2)
10731 : Callback5<A1,A2,A3,A4,A5>(),
10732 object_(object),
10733 member_(member), p1_(p1), p2_(p2) { }
10734
10735 virtual bool IsRepeatable() const {
10736 return !del;
10737 }
10738
10739 virtual void CheckIsRepeatable() const {
10740 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10741 }
10742
10743 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10744 if (!del) {
10745 (object_->*member_)(p1_,p2_,a1,a2,a3,a4,a5);
10746 } else {
10747 (object_->*member_)(p1_,p2_,a1,a2,a3,a4,a5);
10748
10749 member_ = NULL;
10750 delete this;
10751 }
10752 }
10753 };
10754 }
10755 #ifndef SWIG
10756 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10757 inline typename _MemberResultCallback_2_5<true,R,T1,P1,P2,A1,A2,A3,A4,A5>::base*
10758 NewCallback( T1* obj, R (T2::*member)(P1,P2,A1,A2,A3,A4,A5) , P1 p1, P2 p2) {
10759 return new _MemberResultCallback_2_5<true,R,T1,P1,P2,A1,A2,A3,A4,A5>(obj, member, p1, p2);
10760 }
10761 #endif
10762
10763 #ifndef SWIG
10764 template <class T1, class T2, class R, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10765 inline typename _MemberResultCallback_2_5<false,R,T1,P1,P2,A1,A2,A3,A4,A5>::base*
10766 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,A1,A2,A3,A4,A5) , P1 p1, P2 p2) {
10767 return new _MemberResultCallback_2_5<false,R,T1,P1,P2,A1,A2,A3,A4,A5>(obj, member, p1, p2);
10768 }
10769 #endif
10770
10771 namespace {
10772 template <bool del, class R, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10773 class _FunctionResultCallback_2_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10774 public:
10775 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10776 typedef R (*FunctionSignature)(P1,P2,A1,A2,A3,A4,A5);
10777
10778 private:
10779 FunctionSignature function_;
10780 P1 p1_;
10781 P2 p2_;
10782
10783 public:
10784 inline _FunctionResultCallback_2_5(FunctionSignature function, P1 p1, P2 p2)
10785 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10786 function_(function), p1_(p1), p2_(p2) { }
10787
10788 virtual bool IsRepeatable() const {
10789 return !del;
10790 }
10791
10792 virtual void CheckIsRepeatable() const {
10793 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10794 }
10795
10796 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10797 if (!del) {
10798 R result = (*function_)(p1_,p2_,a1,a2,a3,a4,a5);
10799 return result;
10800 } else {
10801 R result = (*function_)(p1_,p2_,a1,a2,a3,a4,a5);
10802
10803 function_ = NULL;
10804 delete this;
10805 return result;
10806 }
10807 }
10808 };
10809
10810 template <bool del, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10811 class _FunctionResultCallback_2_5<del, void, P1, P2, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10812 public:
10813 typedef Callback5<A1,A2,A3,A4,A5> base;
10814 typedef void (*FunctionSignature)(P1,P2,A1,A2,A3,A4,A5);
10815
10816 private:
10817 FunctionSignature function_;
10818 P1 p1_;
10819 P2 p2_;
10820
10821 public:
10822 inline _FunctionResultCallback_2_5(FunctionSignature function, P1 p1, P2 p2)
10823 : Callback5<A1,A2,A3,A4,A5>(),
10824 function_(function), p1_(p1), p2_(p2) { }
10825
10826 virtual bool IsRepeatable() const {
10827 return !del;
10828 }
10829
10830 virtual void CheckIsRepeatable() const {
10831 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10832 }
10833
10834 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10835 if (!del) {
10836 (*function_)(p1_,p2_,a1,a2,a3,a4,a5);
10837 } else {
10838 (*function_)(p1_,p2_,a1,a2,a3,a4,a5);
10839
10840 function_ = NULL;
10841 delete this;
10842 }
10843 }
10844 };
10845 }
10846 template <class R, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10847 inline typename _FunctionResultCallback_2_5<true,R,P1,P2,A1,A2,A3,A4,A5>::base*
10848 NewCallback(R (*function)(P1,P2,A1,A2,A3,A4,A5), P1 p1, P2 p2) {
10849 return new _FunctionResultCallback_2_5<true,R,P1,P2,A1,A2,A3,A4,A5>(function, p1, p2);
10850 }
10851
10852 template <class R, class P1, class P2, class A1, class A2, class A3, class A4, class A5>
10853 inline typename _FunctionResultCallback_2_5<false,R,P1,P2,A1,A2,A3,A4,A5>::base*
10854 NewPermanentCallback(R (*function)(P1,P2,A1,A2,A3,A4,A5), P1 p1, P2 p2) {
10855 return new _FunctionResultCallback_2_5<false,R,P1,P2,A1,A2,A3,A4,A5>(function, p1, p2);
10856 }
10857
10858 namespace {
10859 template <bool del, class R, class T, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
10860 class _ConstMemberResultCallback_3_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10861 public:
10862 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10863 typedef R (T::*MemberSignature)(P1,P2,P3,A1,A2,A3,A4,A5) const;
10864
10865 private:
10866 const T* object_;
10867 MemberSignature member_;
10868 P1 p1_;
10869 P2 p2_;
10870 P3 p3_;
10871
10872 public:
10873 inline _ConstMemberResultCallback_3_5(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
10874 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10875 object_(object),
10876 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
10877
10878 virtual bool IsRepeatable() const {
10879 return !del;
10880 }
10881
10882 virtual void CheckIsRepeatable() const {
10883 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10884 }
10885
10886 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10887 if (!del) {
10888 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
10889 return result;
10890 } else {
10891 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
10892
10893 member_ = NULL;
10894 delete this;
10895 return result;
10896 }
10897 }
10898 };
10899
10900 template <bool del, class T, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
10901 class _ConstMemberResultCallback_3_5<del, void, T, P1, P2, P3, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10902 public:
10903 typedef Callback5<A1,A2,A3,A4,A5> base;
10904 typedef void (T::*MemberSignature)(P1,P2,P3,A1,A2,A3,A4,A5) const;
10905
10906 private:
10907 const T* object_;
10908 MemberSignature member_;
10909 P1 p1_;
10910 P2 p2_;
10911 P3 p3_;
10912
10913 public:
10914 inline _ConstMemberResultCallback_3_5(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
10915 : Callback5<A1,A2,A3,A4,A5>(),
10916 object_(object),
10917 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
10918
10919 virtual bool IsRepeatable() const {
10920 return !del;
10921 }
10922
10923 virtual void CheckIsRepeatable() const {
10924 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
10925 }
10926
10927 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10928 if (!del) {
10929 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
10930 } else {
10931 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
10932
10933 member_ = NULL;
10934 delete this;
10935 }
10936 }
10937 };
10938 }
10939 #ifndef SWIG
10940 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
10941 inline typename _ConstMemberResultCallback_3_5<true,R,T1,P1,P2,P3,A1,A2,A3,A4,A5>::base*
10942 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3,A4,A5) const, P1 p1, P2 p2, P3 p3) {
10943 return new _ConstMemberResultCallback_3_5<true,R,T1,P1,P2,P3,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3);
10944 }
10945 #endif
10946
10947 #ifndef SWIG
10948 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
10949 inline typename _ConstMemberResultCallback_3_5<false,R,T1,P1,P2,P3,A1,A2,A3,A4,A5>::base*
10950 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3,A4,A5) const, P1 p1, P2 p2, P3 p3) {
10951 return new _ConstMemberResultCallback_3_5<false,R,T1,P1,P2,P3,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3);
10952 }
10953 #endif
10954
10955 namespace {
10956 template <bool del, class R, class T, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
10957 class _MemberResultCallback_3_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
10958 public:
10959 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
10960 typedef R (T::*MemberSignature)(P1,P2,P3,A1,A2,A3,A4,A5) ;
10961
10962 private:
10963 T* object_;
10964 MemberSignature member_;
10965 P1 p1_;
10966 P2 p2_;
10967 P3 p3_;
10968
10969 public:
10970 inline _MemberResultCallback_3_5( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
10971 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
10972 object_(object),
10973 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
10974
10975 virtual bool IsRepeatable() const {
10976 return !del;
10977 }
10978
10979 virtual void CheckIsRepeatable() const {
10980 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
10981 }
10982
10983 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
10984 if (!del) {
10985 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
10986 return result;
10987 } else {
10988 R result = (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
10989
10990 member_ = NULL;
10991 delete this;
10992 return result;
10993 }
10994 }
10995 };
10996
10997 template <bool del, class T, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
10998 class _MemberResultCallback_3_5<del, void, T, P1, P2, P3, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
10999 public:
11000 typedef Callback5<A1,A2,A3,A4,A5> base;
11001 typedef void (T::*MemberSignature)(P1,P2,P3,A1,A2,A3,A4,A5) ;
11002
11003 private:
11004 T* object_;
11005 MemberSignature member_;
11006 P1 p1_;
11007 P2 p2_;
11008 P3 p3_;
11009
11010 public:
11011 inline _MemberResultCallback_3_5( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3)
11012 : Callback5<A1,A2,A3,A4,A5>(),
11013 object_(object),
11014 member_(member), p1_(p1), p2_(p2), p3_(p3) { }
11015
11016 virtual bool IsRepeatable() const {
11017 return !del;
11018 }
11019
11020 virtual void CheckIsRepeatable() const {
11021 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11022 }
11023
11024 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11025 if (!del) {
11026 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
11027 } else {
11028 (object_->*member_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
11029
11030 member_ = NULL;
11031 delete this;
11032 }
11033 }
11034 };
11035 }
11036 #ifndef SWIG
11037 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
11038 inline typename _MemberResultCallback_3_5<true,R,T1,P1,P2,P3,A1,A2,A3,A4,A5>::base*
11039 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3,A4,A5) , P1 p1, P2 p2, P3 p3) {
11040 return new _MemberResultCallback_3_5<true,R,T1,P1,P2,P3,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3);
11041 }
11042 #endif
11043
11044 #ifndef SWIG
11045 template <class T1, class T2, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
11046 inline typename _MemberResultCallback_3_5<false,R,T1,P1,P2,P3,A1,A2,A3,A4,A5>::base*
11047 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,A1,A2,A3,A4,A5) , P1 p1, P2 p2, P3 p3) {
11048 return new _MemberResultCallback_3_5<false,R,T1,P1,P2,P3,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3);
11049 }
11050 #endif
11051
11052 namespace {
11053 template <bool del, class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
11054 class _FunctionResultCallback_3_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11055 public:
11056 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11057 typedef R (*FunctionSignature)(P1,P2,P3,A1,A2,A3,A4,A5);
11058
11059 private:
11060 FunctionSignature function_;
11061 P1 p1_;
11062 P2 p2_;
11063 P3 p3_;
11064
11065 public:
11066 inline _FunctionResultCallback_3_5(FunctionSignature function, P1 p1, P2 p2, P3 p3)
11067 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11068 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
11069
11070 virtual bool IsRepeatable() const {
11071 return !del;
11072 }
11073
11074 virtual void CheckIsRepeatable() const {
11075 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11076 }
11077
11078 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11079 if (!del) {
11080 R result = (*function_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
11081 return result;
11082 } else {
11083 R result = (*function_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
11084
11085 function_ = NULL;
11086 delete this;
11087 return result;
11088 }
11089 }
11090 };
11091
11092 template <bool del, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
11093 class _FunctionResultCallback_3_5<del, void, P1, P2, P3, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11094 public:
11095 typedef Callback5<A1,A2,A3,A4,A5> base;
11096 typedef void (*FunctionSignature)(P1,P2,P3,A1,A2,A3,A4,A5);
11097
11098 private:
11099 FunctionSignature function_;
11100 P1 p1_;
11101 P2 p2_;
11102 P3 p3_;
11103
11104 public:
11105 inline _FunctionResultCallback_3_5(FunctionSignature function, P1 p1, P2 p2, P3 p3)
11106 : Callback5<A1,A2,A3,A4,A5>(),
11107 function_(function), p1_(p1), p2_(p2), p3_(p3) { }
11108
11109 virtual bool IsRepeatable() const {
11110 return !del;
11111 }
11112
11113 virtual void CheckIsRepeatable() const {
11114 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11115 }
11116
11117 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11118 if (!del) {
11119 (*function_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
11120 } else {
11121 (*function_)(p1_,p2_,p3_,a1,a2,a3,a4,a5);
11122
11123 function_ = NULL;
11124 delete this;
11125 }
11126 }
11127 };
11128 }
11129 template <class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
11130 inline typename _FunctionResultCallback_3_5<true,R,P1,P2,P3,A1,A2,A3,A4,A5>::base*
11131 NewCallback(R (*function)(P1,P2,P3,A1,A2,A3,A4,A5), P1 p1, P2 p2, P3 p3) {
11132 return new _FunctionResultCallback_3_5<true,R,P1,P2,P3,A1,A2,A3,A4,A5>(function, p1, p2, p3);
11133 }
11134
11135 template <class R, class P1, class P2, class P3, class A1, class A2, class A3, class A4, class A5>
11136 inline typename _FunctionResultCallback_3_5<false,R,P1,P2,P3,A1,A2,A3,A4,A5>::base*
11137 NewPermanentCallback(R (*function)(P1,P2,P3,A1,A2,A3,A4,A5), P1 p1, P2 p2, P3 p3) {
11138 return new _FunctionResultCallback_3_5<false,R,P1,P2,P3,A1,A2,A3,A4,A5>(function, p1, p2, p3);
11139 }
11140
11141 namespace {
11142 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11143 class _ConstMemberResultCallback_4_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11144 public:
11145 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11146 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3,A4,A5) const;
11147
11148 private:
11149 const T* object_;
11150 MemberSignature member_;
11151 P1 p1_;
11152 P2 p2_;
11153 P3 p3_;
11154 P4 p4_;
11155
11156 public:
11157 inline _ConstMemberResultCallback_4_5(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
11158 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11159 object_(object),
11160 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
11161
11162 virtual bool IsRepeatable() const {
11163 return !del;
11164 }
11165
11166 virtual void CheckIsRepeatable() const {
11167 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11168 }
11169
11170 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11171 if (!del) {
11172 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11173 return result;
11174 } else {
11175 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11176
11177 member_ = NULL;
11178 delete this;
11179 return result;
11180 }
11181 }
11182 };
11183
11184 template <bool del, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11185 class _ConstMemberResultCallback_4_5<del, void, T, P1, P2, P3, P4, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11186 public:
11187 typedef Callback5<A1,A2,A3,A4,A5> base;
11188 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3,A4,A5) const;
11189
11190 private:
11191 const T* object_;
11192 MemberSignature member_;
11193 P1 p1_;
11194 P2 p2_;
11195 P3 p3_;
11196 P4 p4_;
11197
11198 public:
11199 inline _ConstMemberResultCallback_4_5(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
11200 : Callback5<A1,A2,A3,A4,A5>(),
11201 object_(object),
11202 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
11203
11204 virtual bool IsRepeatable() const {
11205 return !del;
11206 }
11207
11208 virtual void CheckIsRepeatable() const {
11209 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11210 }
11211
11212 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11213 if (!del) {
11214 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11215 } else {
11216 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11217
11218 member_ = NULL;
11219 delete this;
11220 }
11221 }
11222 };
11223 }
11224 #ifndef SWIG
11225 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11226 inline typename _ConstMemberResultCallback_4_5<true,R,T1,P1,P2,P3,P4,A1,A2,A3,A4,A5>::base*
11227 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3,A4,A5) const, P1 p1, P2 p2, P3 p3, P4 p4) {
11228 return new _ConstMemberResultCallback_4_5<true,R,T1,P1,P2,P3,P4,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4);
11229 }
11230 #endif
11231
11232 #ifndef SWIG
11233 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11234 inline typename _ConstMemberResultCallback_4_5<false,R,T1,P1,P2,P3,P4,A1,A2,A3,A4,A5>::base*
11235 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3,A4,A5) const, P1 p1, P2 p2, P3 p3, P4 p4) {
11236 return new _ConstMemberResultCallback_4_5<false,R,T1,P1,P2,P3,P4,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4);
11237 }
11238 #endif
11239
11240 namespace {
11241 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11242 class _MemberResultCallback_4_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11243 public:
11244 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11245 typedef R (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3,A4,A5) ;
11246
11247 private:
11248 T* object_;
11249 MemberSignature member_;
11250 P1 p1_;
11251 P2 p2_;
11252 P3 p3_;
11253 P4 p4_;
11254
11255 public:
11256 inline _MemberResultCallback_4_5( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
11257 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11258 object_(object),
11259 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
11260
11261 virtual bool IsRepeatable() const {
11262 return !del;
11263 }
11264
11265 virtual void CheckIsRepeatable() const {
11266 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11267 }
11268
11269 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11270 if (!del) {
11271 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11272 return result;
11273 } else {
11274 R result = (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11275
11276 member_ = NULL;
11277 delete this;
11278 return result;
11279 }
11280 }
11281 };
11282
11283 template <bool del, class T, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11284 class _MemberResultCallback_4_5<del, void, T, P1, P2, P3, P4, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11285 public:
11286 typedef Callback5<A1,A2,A3,A4,A5> base;
11287 typedef void (T::*MemberSignature)(P1,P2,P3,P4,A1,A2,A3,A4,A5) ;
11288
11289 private:
11290 T* object_;
11291 MemberSignature member_;
11292 P1 p1_;
11293 P2 p2_;
11294 P3 p3_;
11295 P4 p4_;
11296
11297 public:
11298 inline _MemberResultCallback_4_5( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4)
11299 : Callback5<A1,A2,A3,A4,A5>(),
11300 object_(object),
11301 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
11302
11303 virtual bool IsRepeatable() const {
11304 return !del;
11305 }
11306
11307 virtual void CheckIsRepeatable() const {
11308 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11309 }
11310
11311 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11312 if (!del) {
11313 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11314 } else {
11315 (object_->*member_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11316
11317 member_ = NULL;
11318 delete this;
11319 }
11320 }
11321 };
11322 }
11323 #ifndef SWIG
11324 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11325 inline typename _MemberResultCallback_4_5<true,R,T1,P1,P2,P3,P4,A1,A2,A3,A4,A5>::base*
11326 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3,A4,A5) , P1 p1, P2 p2, P3 p3, P4 p4) {
11327 return new _MemberResultCallback_4_5<true,R,T1,P1,P2,P3,P4,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4);
11328 }
11329 #endif
11330
11331 #ifndef SWIG
11332 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11333 inline typename _MemberResultCallback_4_5<false,R,T1,P1,P2,P3,P4,A1,A2,A3,A4,A5>::base*
11334 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,A1,A2,A3,A4,A5) , P1 p1, P2 p2, P3 p3, P4 p4) {
11335 return new _MemberResultCallback_4_5<false,R,T1,P1,P2,P3,P4,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4);
11336 }
11337 #endif
11338
11339 namespace {
11340 template <bool del, class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11341 class _FunctionResultCallback_4_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11342 public:
11343 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11344 typedef R (*FunctionSignature)(P1,P2,P3,P4,A1,A2,A3,A4,A5);
11345
11346 private:
11347 FunctionSignature function_;
11348 P1 p1_;
11349 P2 p2_;
11350 P3 p3_;
11351 P4 p4_;
11352
11353 public:
11354 inline _FunctionResultCallback_4_5(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
11355 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11356 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
11357
11358 virtual bool IsRepeatable() const {
11359 return !del;
11360 }
11361
11362 virtual void CheckIsRepeatable() const {
11363 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11364 }
11365
11366 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11367 if (!del) {
11368 R result = (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11369 return result;
11370 } else {
11371 R result = (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11372
11373 function_ = NULL;
11374 delete this;
11375 return result;
11376 }
11377 }
11378 };
11379
11380 template <bool del, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11381 class _FunctionResultCallback_4_5<del, void, P1, P2, P3, P4, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11382 public:
11383 typedef Callback5<A1,A2,A3,A4,A5> base;
11384 typedef void (*FunctionSignature)(P1,P2,P3,P4,A1,A2,A3,A4,A5);
11385
11386 private:
11387 FunctionSignature function_;
11388 P1 p1_;
11389 P2 p2_;
11390 P3 p3_;
11391 P4 p4_;
11392
11393 public:
11394 inline _FunctionResultCallback_4_5(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4)
11395 : Callback5<A1,A2,A3,A4,A5>(),
11396 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4) { }
11397
11398 virtual bool IsRepeatable() const {
11399 return !del;
11400 }
11401
11402 virtual void CheckIsRepeatable() const {
11403 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11404 }
11405
11406 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11407 if (!del) {
11408 (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11409 } else {
11410 (*function_)(p1_,p2_,p3_,p4_,a1,a2,a3,a4,a5);
11411
11412 function_ = NULL;
11413 delete this;
11414 }
11415 }
11416 };
11417 }
11418 template <class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11419 inline typename _FunctionResultCallback_4_5<true,R,P1,P2,P3,P4,A1,A2,A3,A4,A5>::base*
11420 NewCallback(R (*function)(P1,P2,P3,P4,A1,A2,A3,A4,A5), P1 p1, P2 p2, P3 p3, P4 p4) {
11421 return new _FunctionResultCallback_4_5<true,R,P1,P2,P3,P4,A1,A2,A3,A4,A5>(function, p1, p2, p3, p4);
11422 }
11423
11424 template <class R, class P1, class P2, class P3, class P4, class A1, class A2, class A3, class A4, class A5>
11425 inline typename _FunctionResultCallback_4_5<false,R,P1,P2,P3,P4,A1,A2,A3,A4,A5>::base*
11426 NewPermanentCallback(R (*function)(P1,P2,P3,P4,A1,A2,A3,A4,A5), P1 p1, P2 p2, P3 p3, P4 p4) {
11427 return new _FunctionResultCallback_4_5<false,R,P1,P2,P3,P4,A1,A2,A3,A4,A5>(function, p1, p2, p3, p4);
11428 }
11429
11430 namespace {
11431 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11432 class _ConstMemberResultCallback_5_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11433 public:
11434 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11435 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5) const;
11436
11437 private:
11438 const T* object_;
11439 MemberSignature member_;
11440 P1 p1_;
11441 P2 p2_;
11442 P3 p3_;
11443 P4 p4_;
11444 P5 p5_;
11445
11446 public:
11447 inline _ConstMemberResultCallback_5_5(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
11448 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11449 object_(object),
11450 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
11451
11452 virtual bool IsRepeatable() const {
11453 return !del;
11454 }
11455
11456 virtual void CheckIsRepeatable() const {
11457 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11458 }
11459
11460 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11461 if (!del) {
11462 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11463 return result;
11464 } else {
11465 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11466
11467 member_ = NULL;
11468 delete this;
11469 return result;
11470 }
11471 }
11472 };
11473
11474 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11475 class _ConstMemberResultCallback_5_5<del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11476 public:
11477 typedef Callback5<A1,A2,A3,A4,A5> base;
11478 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5) const;
11479
11480 private:
11481 const T* object_;
11482 MemberSignature member_;
11483 P1 p1_;
11484 P2 p2_;
11485 P3 p3_;
11486 P4 p4_;
11487 P5 p5_;
11488
11489 public:
11490 inline _ConstMemberResultCallback_5_5(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
11491 : Callback5<A1,A2,A3,A4,A5>(),
11492 object_(object),
11493 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
11494
11495 virtual bool IsRepeatable() const {
11496 return !del;
11497 }
11498
11499 virtual void CheckIsRepeatable() const {
11500 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11501 }
11502
11503 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11504 if (!del) {
11505 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11506 } else {
11507 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11508
11509 member_ = NULL;
11510 delete this;
11511 }
11512 }
11513 };
11514 }
11515 #ifndef SWIG
11516 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11517 inline typename _ConstMemberResultCallback_5_5<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>::base*
11518 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
11519 return new _ConstMemberResultCallback_5_5<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4, p5);
11520 }
11521 #endif
11522
11523 #ifndef SWIG
11524 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11525 inline typename _ConstMemberResultCallback_5_5<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>::base*
11526 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
11527 return new _ConstMemberResultCallback_5_5<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4, p5);
11528 }
11529 #endif
11530
11531 namespace {
11532 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11533 class _MemberResultCallback_5_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11534 public:
11535 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11536 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5) ;
11537
11538 private:
11539 T* object_;
11540 MemberSignature member_;
11541 P1 p1_;
11542 P2 p2_;
11543 P3 p3_;
11544 P4 p4_;
11545 P5 p5_;
11546
11547 public:
11548 inline _MemberResultCallback_5_5( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
11549 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11550 object_(object),
11551 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
11552
11553 virtual bool IsRepeatable() const {
11554 return !del;
11555 }
11556
11557 virtual void CheckIsRepeatable() const {
11558 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11559 }
11560
11561 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11562 if (!del) {
11563 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11564 return result;
11565 } else {
11566 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11567
11568 member_ = NULL;
11569 delete this;
11570 return result;
11571 }
11572 }
11573 };
11574
11575 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11576 class _MemberResultCallback_5_5<del, void, T, P1, P2, P3, P4, P5, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11577 public:
11578 typedef Callback5<A1,A2,A3,A4,A5> base;
11579 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5) ;
11580
11581 private:
11582 T* object_;
11583 MemberSignature member_;
11584 P1 p1_;
11585 P2 p2_;
11586 P3 p3_;
11587 P4 p4_;
11588 P5 p5_;
11589
11590 public:
11591 inline _MemberResultCallback_5_5( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
11592 : Callback5<A1,A2,A3,A4,A5>(),
11593 object_(object),
11594 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
11595
11596 virtual bool IsRepeatable() const {
11597 return !del;
11598 }
11599
11600 virtual void CheckIsRepeatable() const {
11601 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11602 }
11603
11604 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11605 if (!del) {
11606 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11607 } else {
11608 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11609
11610 member_ = NULL;
11611 delete this;
11612 }
11613 }
11614 };
11615 }
11616 #ifndef SWIG
11617 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11618 inline typename _MemberResultCallback_5_5<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>::base*
11619 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
11620 return new _MemberResultCallback_5_5<true,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4, p5);
11621 }
11622 #endif
11623
11624 #ifndef SWIG
11625 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11626 inline typename _MemberResultCallback_5_5<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>::base*
11627 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
11628 return new _MemberResultCallback_5_5<false,R,T1,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4, p5);
11629 }
11630 #endif
11631
11632 namespace {
11633 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11634 class _FunctionResultCallback_5_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11635 public:
11636 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11637 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5);
11638
11639 private:
11640 FunctionSignature function_;
11641 P1 p1_;
11642 P2 p2_;
11643 P3 p3_;
11644 P4 p4_;
11645 P5 p5_;
11646
11647 public:
11648 inline _FunctionResultCallback_5_5(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
11649 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11650 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
11651
11652 virtual bool IsRepeatable() const {
11653 return !del;
11654 }
11655
11656 virtual void CheckIsRepeatable() const {
11657 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11658 }
11659
11660 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11661 if (!del) {
11662 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11663 return result;
11664 } else {
11665 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11666
11667 function_ = NULL;
11668 delete this;
11669 return result;
11670 }
11671 }
11672 };
11673
11674 template <bool del, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11675 class _FunctionResultCallback_5_5<del, void, P1, P2, P3, P4, P5, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11676 public:
11677 typedef Callback5<A1,A2,A3,A4,A5> base;
11678 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5);
11679
11680 private:
11681 FunctionSignature function_;
11682 P1 p1_;
11683 P2 p2_;
11684 P3 p3_;
11685 P4 p4_;
11686 P5 p5_;
11687
11688 public:
11689 inline _FunctionResultCallback_5_5(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
11690 : Callback5<A1,A2,A3,A4,A5>(),
11691 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5) { }
11692
11693 virtual bool IsRepeatable() const {
11694 return !del;
11695 }
11696
11697 virtual void CheckIsRepeatable() const {
11698 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11699 }
11700
11701 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11702 if (!del) {
11703 (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11704 } else {
11705 (*function_)(p1_,p2_,p3_,p4_,p5_,a1,a2,a3,a4,a5);
11706
11707 function_ = NULL;
11708 delete this;
11709 }
11710 }
11711 };
11712 }
11713 template <class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11714 inline typename _FunctionResultCallback_5_5<true,R,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>::base*
11715 NewCallback(R (*function)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
11716 return new _FunctionResultCallback_5_5<true,R,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>(function, p1, p2, p3, p4, p5);
11717 }
11718
11719 template <class R, class P1, class P2, class P3, class P4, class P5, class A1, class A2, class A3, class A4, class A5>
11720 inline typename _FunctionResultCallback_5_5<false,R,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>::base*
11721 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,A1,A2,A3,A4,A5), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) {
11722 return new _FunctionResultCallback_5_5<false,R,P1,P2,P3,P4,P5,A1,A2,A3,A4,A5>(function, p1, p2, p3, p4, p5);
11723 }
11724
11725 namespace {
11726 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11727 class _ConstMemberResultCallback_6_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11728 public:
11729 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11730 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5) const;
11731
11732 private:
11733 const T* object_;
11734 MemberSignature member_;
11735 P1 p1_;
11736 P2 p2_;
11737 P3 p3_;
11738 P4 p4_;
11739 P5 p5_;
11740 P6 p6_;
11741
11742 public:
11743 inline _ConstMemberResultCallback_6_5(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
11744 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11745 object_(object),
11746 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
11747
11748 virtual bool IsRepeatable() const {
11749 return !del;
11750 }
11751
11752 virtual void CheckIsRepeatable() const {
11753 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11754 }
11755
11756 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11757 if (!del) {
11758 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11759 return result;
11760 } else {
11761 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11762
11763 member_ = NULL;
11764 delete this;
11765 return result;
11766 }
11767 }
11768 };
11769
11770 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11771 class _ConstMemberResultCallback_6_5<del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11772 public:
11773 typedef Callback5<A1,A2,A3,A4,A5> base;
11774 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5) const;
11775
11776 private:
11777 const T* object_;
11778 MemberSignature member_;
11779 P1 p1_;
11780 P2 p2_;
11781 P3 p3_;
11782 P4 p4_;
11783 P5 p5_;
11784 P6 p6_;
11785
11786 public:
11787 inline _ConstMemberResultCallback_6_5(const T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
11788 : Callback5<A1,A2,A3,A4,A5>(),
11789 object_(object),
11790 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
11791
11792 virtual bool IsRepeatable() const {
11793 return !del;
11794 }
11795
11796 virtual void CheckIsRepeatable() const {
11797 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11798 }
11799
11800 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11801 if (!del) {
11802 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11803 } else {
11804 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11805
11806 member_ = NULL;
11807 delete this;
11808 }
11809 }
11810 };
11811 }
11812 #ifndef SWIG
11813 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11814 inline typename _ConstMemberResultCallback_6_5<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>::base*
11815 NewCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
11816 return new _ConstMemberResultCallback_6_5<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4, p5, p6);
11817 }
11818 #endif
11819
11820 #ifndef SWIG
11821 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11822 inline typename _ConstMemberResultCallback_6_5<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>::base*
11823 NewPermanentCallback(const T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5) const, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
11824 return new _ConstMemberResultCallback_6_5<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4, p5, p6);
11825 }
11826 #endif
11827
11828 namespace {
11829 template <bool del, class R, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11830 class _MemberResultCallback_6_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11831 public:
11832 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11833 typedef R (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5) ;
11834
11835 private:
11836 T* object_;
11837 MemberSignature member_;
11838 P1 p1_;
11839 P2 p2_;
11840 P3 p3_;
11841 P4 p4_;
11842 P5 p5_;
11843 P6 p6_;
11844
11845 public:
11846 inline _MemberResultCallback_6_5( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
11847 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11848 object_(object),
11849 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
11850
11851 virtual bool IsRepeatable() const {
11852 return !del;
11853 }
11854
11855 virtual void CheckIsRepeatable() const {
11856 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11857 }
11858
11859 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11860 if (!del) {
11861 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11862 return result;
11863 } else {
11864 R result = (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11865
11866 member_ = NULL;
11867 delete this;
11868 return result;
11869 }
11870 }
11871 };
11872
11873 template <bool del, class T, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11874 class _MemberResultCallback_6_5<del, void, T, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11875 public:
11876 typedef Callback5<A1,A2,A3,A4,A5> base;
11877 typedef void (T::*MemberSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5) ;
11878
11879 private:
11880 T* object_;
11881 MemberSignature member_;
11882 P1 p1_;
11883 P2 p2_;
11884 P3 p3_;
11885 P4 p4_;
11886 P5 p5_;
11887 P6 p6_;
11888
11889 public:
11890 inline _MemberResultCallback_6_5( T* object, MemberSignature member, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
11891 : Callback5<A1,A2,A3,A4,A5>(),
11892 object_(object),
11893 member_(member), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
11894
11895 virtual bool IsRepeatable() const {
11896 return !del;
11897 }
11898
11899 virtual void CheckIsRepeatable() const {
11900 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
11901 }
11902
11903 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11904 if (!del) {
11905 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11906 } else {
11907 (object_->*member_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11908
11909 member_ = NULL;
11910 delete this;
11911 }
11912 }
11913 };
11914 }
11915 #ifndef SWIG
11916 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11917 inline typename _MemberResultCallback_6_5<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>::base*
11918 NewCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
11919 return new _MemberResultCallback_6_5<true,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4, p5, p6);
11920 }
11921 #endif
11922
11923 #ifndef SWIG
11924 template <class T1, class T2, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11925 inline typename _MemberResultCallback_6_5<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>::base*
11926 NewPermanentCallback( T1* obj, R (T2::*member)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5) , P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
11927 return new _MemberResultCallback_6_5<false,R,T1,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>(obj, member, p1, p2, p3, p4, p5, p6);
11928 }
11929 #endif
11930
11931 namespace {
11932 template <bool del, class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11933 class _FunctionResultCallback_6_5 : public ResultCallback5<R,A1,A2,A3,A4,A5> {
11934 public:
11935 typedef ResultCallback5<R,A1,A2,A3,A4,A5> base;
11936 typedef R (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5);
11937
11938 private:
11939 FunctionSignature function_;
11940 P1 p1_;
11941 P2 p2_;
11942 P3 p3_;
11943 P4 p4_;
11944 P5 p5_;
11945 P6 p6_;
11946
11947 public:
11948 inline _FunctionResultCallback_6_5(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
11949 : ResultCallback5<R,A1,A2,A3,A4,A5>(),
11950 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
11951
11952 virtual bool IsRepeatable() const {
11953 return !del;
11954 }
11955
11956 virtual void CheckIsRepeatable() const {
11957 if (del) CallbackUtils_::FailIsRepeatable("ResultCallback5<R,A1,A2,A3,A4,A5>");
11958 }
11959
11960 virtual R Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
11961 if (!del) {
11962 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11963 return result;
11964 } else {
11965 R result = (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
11966
11967 function_ = NULL;
11968 delete this;
11969 return result;
11970 }
11971 }
11972 };
11973
11974 template <bool del, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
11975 class _FunctionResultCallback_6_5<del, void, P1, P2, P3, P4, P5, P6, A1, A2, A3, A4, A5> : public Callback5<A1,A2,A3,A4,A5> {
11976 public:
11977 typedef Callback5<A1,A2,A3,A4,A5> base;
11978 typedef void (*FunctionSignature)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5);
11979
11980 private:
11981 FunctionSignature function_;
11982 P1 p1_;
11983 P2 p2_;
11984 P3 p3_;
11985 P4 p4_;
11986 P5 p5_;
11987 P6 p6_;
11988
11989 public:
11990 inline _FunctionResultCallback_6_5(FunctionSignature function, P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
11991 : Callback5<A1,A2,A3,A4,A5>(),
11992 function_(function), p1_(p1), p2_(p2), p3_(p3), p4_(p4), p5_(p5), p6_(p6) { }
11993
11994 virtual bool IsRepeatable() const {
11995 return !del;
11996 }
11997
11998 virtual void CheckIsRepeatable() const {
11999 if (del) CallbackUtils_::FailIsRepeatable("Callback5<A1,A2,A3,A4,A5>");
12000 }
12001
12002 virtual void Run(A1 a1,A2 a2,A3 a3,A4 a4,A5 a5) {
12003 if (!del) {
12004 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
12005 } else {
12006 (*function_)(p1_,p2_,p3_,p4_,p5_,p6_,a1,a2,a3,a4,a5);
12007
12008 function_ = NULL;
12009 delete this;
12010 }
12011 }
12012 };
12013 }
12014 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
12015 inline typename _FunctionResultCallback_6_5<true,R,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>::base*
12016 NewCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
12017 return new _FunctionResultCallback_6_5<true,R,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>(function, p1, p2, p3, p4, p5, p6);
12018 }
12019
12020 template <class R, class P1, class P2, class P3, class P4, class P5, class P6, class A1, class A2, class A3, class A4, class A5>
12021 inline typename _FunctionResultCallback_6_5<false,R,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>::base*
12022 NewPermanentCallback(R (*function)(P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5), P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) {
12023 return new _FunctionResultCallback_6_5<false,R,P1,P2,P3,P4,P5,P6,A1,A2,A3,A4,A5>(function, p1, p2, p3, p4, p5, p6);
12024 }
12025
12026 #endif // OR_TOOLS_BASE_CALLBACK_H_