50#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_PYOBJECT_CALL_INL
51#define LASS_GUARDIAN_OF_INCLUSION_UTIL_PYOBJECT_CALL_INL
69#if LASS_COMPILER_TYPE == LASS_COMPILER_TYPE_MSVC
71# pragma warning(disable: 4267)
96 template <
typename Function>
97 static PyObject* callFunction( Function function )
101 UnblockThreads LASS_UNUSED(unlock);
102 return pyBuildSimpleObject( function() );
104 LASS_PYTHON_CATCH_AND_RETURN
107 template <
typename Function,
typename... P>
108 static PyObject* callFunction(Function function, P&&... p)
112 UnblockThreads LASS_UNUSED(unlock);
113 return pyBuildSimpleObject(function(std::forward<P>(p)...));
115 LASS_PYTHON_CATCH_AND_RETURN
120 template <
typename CppClassRef,
typename Method>
121 static PyObject* callMethod( CppClassRef
object, Method method )
125 UnblockThreads LASS_UNUSED(unlock);
126 return pyBuildSimpleObject( (
object.*method)() );
128 LASS_PYTHON_CATCH_AND_RETURN
131 template <
typename CppClassRef,
typename Method,
typename... P>
132 static PyObject* callMethod(CppClassRef
object, Method method, P&&... p)
136 UnblockThreads LASS_UNUSED(unlock);
137 return pyBuildSimpleObject((
object.*method)(std::forward<P>(p)...));
139 LASS_PYTHON_CATCH_AND_RETURN
150 template <
typename Function>
151 static PyObject* callFunction( Function function )
155 UnblockThreads LASS_UNUSED(unlock);
158 LASS_PYTHON_CATCH_AND_RETURN
162 template <
typename Function,
typename... P>
163 static PyObject* callFunction(Function function, P&&... p)
167 UnblockThreads LASS_UNUSED(unlock);
168 function(std::forward<P>(p)...);
170 LASS_PYTHON_CATCH_AND_RETURN
176 template <
typename CppClassRef,
typename Method>
177 static PyObject* callMethod( CppClassRef
object, Method method )
181 UnblockThreads LASS_UNUSED(unlock);
184 LASS_PYTHON_CATCH_AND_RETURN
188 template <
typename CppClassRef,
typename Method,
typename... P>
189 static PyObject* callMethod( CppClassRef
object, Method method, P&&... p)
193 UnblockThreads LASS_UNUSED(unlock);
194 (
object.*method)(std::forward<P>(p)...);
196 LASS_PYTHON_CATCH_AND_RETURN
210 typedef R(*TFunction)();
211 if( decodeTuple(args) != 0 )
220template <
typename R,
typename P1>
223 typedef R (*TFunction)(P1);
226 if( decodeTuple<S1>( args, p1 ) != 0 )
231 function, TArg1::arg(p1) );
236template <
typename R,
typename P1,
typename P2>
239 typedef R (*TFunction)(P1, P2);
243 if( decodeTuple<S1, S2>( args, p1, p2 ) != 0 )
248 function, TArg1::arg(p1), TArg2::arg(p2) );
253template <
typename R,
typename P1,
typename P2,
typename P3>
256 typedef R (*TFunction)(P1, P2, P3);
261 if( decodeTuple<S1, S2, S3>( args, p1, p2, p3 ) != 0 )
266 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3) );
271template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4>
274 typedef R (*TFunction)(P1, P2, P3, P4);
280 if( decodeTuple<S1, S2, S3, S4>( args, p1, p2, p3, p4 ) != 0 )
285 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4) );
290template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5>
291PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5) )
293 typedef R (*TFunction)(P1, P2, P3, P4, P5);
300 if( decodeTuple<S1, S2, S3, S4, S5>( args, p1, p2, p3, p4, p5 ) != 0 )
305 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5) );
310template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6>
311PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6) )
313 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6);
321 if( decodeTuple<S1, S2, S3, S4, S5, S6>( args, p1, p2, p3, p4, p5, p6 ) != 0 )
326 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6) );
331template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7>
332PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6, P7) )
334 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6, P7);
343 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7>( args, p1, p2, p3, p4, p5, p6, p7 ) != 0 )
348 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7) );
353template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8>
354PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6, P7, P8) )
356 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6, P7, P8);
366 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8>( args, p1, p2, p3, p4, p5, p6, p7, p8 ) != 0 )
371 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8) );
376template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9>
377PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6, P7, P8, P9) )
379 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6, P7, P8, P9);
390 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) != 0 )
395 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9) );
400template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10>
401PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) )
403 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10);
413 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
415 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 ) != 0 )
420 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10) );
425template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
426PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) )
428 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11);
438 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
439 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
441 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11 ) != 0 )
446 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11) );
451template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12>
452PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) )
454 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12);
464 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
465 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
466 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
468 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12 ) != 0 )
473 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12) );
478template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13>
479PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) )
481 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13);
491 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
492 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
493 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
494 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
496 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13 ) != 0 )
501 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13) );
506template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14>
507PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) )
509 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14);
519 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
520 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
521 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
522 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
523 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
525 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 ) != 0 )
530 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14) );
535template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15>
536PyObject*
callFunction( PyObject* args, R (*function)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) )
538 typedef R (*TFunction)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15);
548 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
549 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
550 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
551 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
552 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
553 typedef ArgumentTraits<P15> TArg15;
typedef typename TArg15::TStorage S15; S15 p15 = S15();
555 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 ) != 0 )
560 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14), TArg15::arg(p15) );
569 typedef std::function<R()> TFunction;
570 if( decodeTuple(args) != 0 )
579template <
typename R,
typename P1>
582 typedef std::function<R(P1)> TFunction;
585 if( decodeTuple<S1>( args, p1 ) != 0 )
590 function, TArg1::arg(p1) );
595template <
typename R,
typename P1,
typename P2>
596PyObject*
callFunction( PyObject* args, std::function<R(P1, P2)> function )
598 typedef std::function<R(P1, P2)> TFunction;
602 if( decodeTuple<S1, S2>( args, p1, p2 ) != 0 )
607 function, TArg1::arg(p1), TArg2::arg(p2) );
612template <
typename R,
typename P1,
typename P2,
typename P3>
613PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3)> function )
615 typedef std::function<R(P1, P2, P3)> TFunction;
620 if( decodeTuple<S1, S2, S3>( args, p1, p2, p3 ) != 0 )
625 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3) );
630template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4>
631PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4)> function )
633 typedef std::function<R(P1, P2, P3, P4)> TFunction;
639 if( decodeTuple<S1, S2, S3, S4>( args, p1, p2, p3, p4 ) != 0 )
644 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4) );
649template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5>
650PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5)> function )
652 typedef std::function<R(P1, P2, P3, P4, P5)> TFunction;
659 if( decodeTuple<S1, S2, S3, S4, S5>( args, p1, p2, p3, p4, p5 ) != 0 )
664 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5) );
669template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6>
670PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6)> function )
672 typedef std::function<R(P1, P2, P3, P4, P5, P6)> TFunction;
680 if( decodeTuple<S1, S2, S3, S4, S5, S6>( args, p1, p2, p3, p4, p5, p6 ) != 0 )
685 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6) );
690template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7>
691PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6, P7)> function )
693 typedef std::function<R(P1, P2, P3, P4, P5, P6, P7)> TFunction;
702 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7>( args, p1, p2, p3, p4, p5, p6, p7 ) != 0 )
707 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7) );
712template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8>
713PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6, P7, P8)> function )
715 typedef std::function<R(P1, P2, P3, P4, P5, P6, P7, P8)> TFunction;
725 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8>( args, p1, p2, p3, p4, p5, p6, p7, p8 ) != 0 )
730 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8) );
735template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9>
736PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9)> function )
738 typedef std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9)> TFunction;
749 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) != 0 )
754 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9) );
759template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10>
760PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)> function )
762 typedef std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)> TFunction;
772 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
774 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 ) != 0 )
779 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10) );
784template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
785PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)> function )
787 typedef std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)> TFunction;
797 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
798 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
800 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11 ) != 0 )
805 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11) );
810template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12>
811PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)> function )
813 typedef std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)> TFunction;
823 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
824 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
825 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
827 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12 ) != 0 )
832 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12) );
837template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13>
838PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)> function )
840 typedef std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)> TFunction;
850 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
851 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
852 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
853 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
855 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13 ) != 0 )
860 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13) );
865template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14>
866PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)> function )
868 typedef std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)> TFunction;
878 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
879 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
880 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
881 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
882 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
884 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 ) != 0 )
889 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14) );
894template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15>
895PyObject*
callFunction( PyObject* args, std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)> function )
897 typedef std::function<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)> TFunction;
907 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
908 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
909 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
910 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
911 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
912 typedef ArgumentTraits<P15> TArg15;
typedef typename TArg15::TStorage S15; S15 p15 = S15();
914 if( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 ) != 0 )
919 function, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14), TArg15::arg(p15) );
927template <
typename ShadowTraits>
934 template <
typename C,
typename R>
935 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)() )
937 typedef typename ShadowTraits::TCppClass TCppClass;
938 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
939 typedef R (C::*TMethod)();
941 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple(args) != 0 )
945 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
947 return establishMagicalBackLinks(result,
object);
952 template <
typename C,
typename R,
typename P1>
953 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1) )
955 typedef typename ShadowTraits::TCppClass TCppClass;
956 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
957 typedef R (C::*TMethod)(P1);
959 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
961 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1>(args, p1) != 0 )
965 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
966 *self, method, TArg1::arg(p1) );
972 template <
typename C,
typename R,
typename P1,
typename P2>
973 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2) )
975 typedef typename ShadowTraits::TCppClass TCppClass;
976 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
977 typedef R (C::*TMethod)(P1, P2);
979 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
980 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
982 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2>(args, p1, p2) != 0 )
986 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
987 *self, method, TArg1::arg(p1), TArg2::arg(p2) );
993 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3>
994 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3) )
996 typedef typename ShadowTraits::TCppClass TCppClass;
997 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
998 typedef R (C::*TMethod)(P1, P2, P3);
1000 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1001 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1002 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1004 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3>(args, p1, p2, p3) != 0 )
1008 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1009 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3) );
1015 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4>
1016 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4) )
1018 typedef typename ShadowTraits::TCppClass TCppClass;
1019 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1020 typedef R (C::*TMethod)(P1, P2, P3, P4);
1022 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1023 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1024 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1025 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1027 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4>(args, p1, p2, p3, p4) != 0 )
1031 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1032 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4) );
1038 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5>
1039 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5) )
1041 typedef typename ShadowTraits::TCppClass TCppClass;
1042 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1043 typedef R (C::*TMethod)(P1, P2, P3, P4, P5);
1045 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1046 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1047 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1048 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1049 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1051 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5>(args, p1, p2, p3, p4, p5) != 0 )
1055 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1056 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5) );
1062 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6>
1063 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6) )
1065 typedef typename ShadowTraits::TCppClass TCppClass;
1066 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1067 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6);
1069 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1070 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1071 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1072 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1073 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1074 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1076 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6>(args, p1, p2, p3, p4, p5, p6) != 0 )
1080 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1081 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6) );
1087 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7>
1088 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7) )
1090 typedef typename ShadowTraits::TCppClass TCppClass;
1091 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1092 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7);
1094 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1095 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1096 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1097 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1098 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1099 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1100 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7;
1102 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7>(args, p1, p2, p3, p4, p5, p6, p7) != 0 )
1106 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1107 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7) );
1113 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8>
1114 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8) )
1116 typedef typename ShadowTraits::TCppClass TCppClass;
1117 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1118 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8);
1120 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1121 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1122 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1123 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1124 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1125 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1126 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7;
1127 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8;
1129 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8>(args, p1, p2, p3, p4, p5, p6, p7, p8) != 0 )
1133 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1134 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8) );
1140 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9>
1141 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9) )
1143 typedef typename ShadowTraits::TCppClass TCppClass;
1144 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1145 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9);
1147 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1148 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1149 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1150 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1151 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1152 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1153 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7;
1154 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8;
1155 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9;
1157 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9) != 0 )
1161 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1162 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9) );
1168 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10>
1169 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) )
1171 typedef typename ShadowTraits::TCppClass TCppClass;
1172 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1173 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10);
1175 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1176 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1177 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1178 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1179 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1180 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1181 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7;
1182 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8;
1183 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9;
1184 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10;
1186 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) != 0 )
1190 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1191 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10) );
1197 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
1198 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) )
1200 typedef typename ShadowTraits::TCppClass TCppClass;
1201 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1202 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11);
1204 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1205 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1206 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1207 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1208 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1209 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1210 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7;
1211 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8;
1212 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9;
1213 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10;
1214 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11;
1216 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) != 0 )
1220 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1221 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11) );
1227 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12>
1228 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) )
1230 typedef typename ShadowTraits::TCppClass TCppClass;
1231 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1232 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12);
1234 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1235 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1236 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1237 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1238 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1239 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1240 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7;
1241 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8;
1242 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9;
1243 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10;
1244 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11;
1245 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12;
1247 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) != 0 )
1251 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1252 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12) );
1258 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13>
1259 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) )
1261 typedef typename ShadowTraits::TCppClass TCppClass;
1262 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1263 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13);
1265 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1266 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1267 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1268 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1269 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1270 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1271 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7;
1272 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8;
1273 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9;
1274 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10;
1275 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11;
1276 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12;
1277 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13;
1279 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) != 0 )
1283 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1284 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13) );
1290 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14>
1291 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) )
1293 typedef typename ShadowTraits::TCppClass TCppClass;
1294 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1295 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14);
1297 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1298 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1299 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1300 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1301 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1302 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1303 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7;
1304 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8;
1305 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9;
1306 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10;
1307 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11;
1308 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12;
1309 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13;
1310 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14;
1312 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) != 0 )
1316 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1317 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14) );
1323 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15>
1324 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) )
1326 typedef typename ShadowTraits::TCppClass TCppClass;
1327 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
1328 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15);
1330 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1;
1331 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2;
1332 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3;
1333 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4;
1334 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5;
1335 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6;
1336 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7;
1337 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8;
1338 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9;
1339 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10;
1340 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11;
1341 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12;
1342 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13;
1343 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14;
1344 typedef ArgumentTraits<P15> TArg15;
typedef typename TArg15::TStorage S15; S15 p15;
1346 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) != 0 )
1350 PyObject* result = Caller<R>::template callMethod<TCppClass&, TMethod>(
1351 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14), TArg15::arg(p15) );
1360 template <
typename C,
typename R>
1361 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)()
const )
1363 typedef typename ShadowTraits::TCppClass TCppClass;
1364 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1365 typedef R (C::*TMethod)()
const;
1366 TConstCppClassPtr self;
1367 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple(args) != 0 )
1371 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1378 template <
typename C,
typename R,
typename P1>
1379 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1)
const )
1381 typedef typename ShadowTraits::TCppClass TCppClass;
1382 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1383 typedef R (C::*TMethod)(P1)
const;
1384 TConstCppClassPtr self;
1385 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1387 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1>(args, p1) != 0 )
1391 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1392 *self, method, TArg1::arg(p1) );
1398 template <
typename C,
typename R,
typename P1,
typename P2>
1399 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2)
const )
1401 typedef typename ShadowTraits::TCppClass TCppClass;
1402 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1403 typedef R (C::*TMethod)(P1, P2)
const;
1404 TConstCppClassPtr self;
1405 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1406 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1408 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2>(args, p1, p2) != 0 )
1412 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1413 *self, method, TArg1::arg(p1), TArg2::arg(p2) );
1419 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3>
1420 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3)
const )
1422 typedef typename ShadowTraits::TCppClass TCppClass;
1423 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1424 typedef R (C::*TMethod)(P1, P2, P3)
const;
1425 TConstCppClassPtr self;
1426 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1427 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1428 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1430 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3>(args, p1, p2, p3) != 0 )
1434 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1435 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3) );
1441 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4>
1442 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4)
const )
1444 typedef typename ShadowTraits::TCppClass TCppClass;
1445 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1446 typedef R (C::*TMethod)(P1, P2, P3, P4)
const;
1447 TConstCppClassPtr self;
1448 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1449 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1450 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1451 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1453 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4>(args, p1, p2, p3, p4) != 0 )
1457 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1458 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4) );
1464 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5>
1465 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5)
const )
1467 typedef typename ShadowTraits::TCppClass TCppClass;
1468 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1469 typedef R (C::*TMethod)(P1, P2, P3, P4, P5)
const;
1470 TConstCppClassPtr self;
1471 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1472 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1473 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1474 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1475 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1477 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5>(args, p1, p2, p3, p4, p5) != 0 )
1481 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1482 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5) );
1488 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6>
1489 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6)
const )
1491 typedef typename ShadowTraits::TCppClass TCppClass;
1492 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1493 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6)
const;
1494 TConstCppClassPtr self;
1495 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1496 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1497 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1498 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1499 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1500 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1502 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6>(args, p1, p2, p3, p4, p5, p6) != 0 )
1506 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1507 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6) );
1513 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7>
1514 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7)
const )
1516 typedef typename ShadowTraits::TCppClass TCppClass;
1517 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1518 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7)
const;
1519 TConstCppClassPtr self;
1520 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1521 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1522 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1523 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1524 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1525 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1526 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1528 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7>(args, p1, p2, p3, p4, p5, p6, p7) != 0 )
1532 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1533 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7) );
1539 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8>
1540 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8)
const )
1542 typedef typename ShadowTraits::TCppClass TCppClass;
1543 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1544 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8)
const;
1545 TConstCppClassPtr self;
1546 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1547 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1548 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1549 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1550 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1551 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1552 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1553 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1555 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8>(args, p1, p2, p3, p4, p5, p6, p7, p8) != 0 )
1559 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1560 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8) );
1566 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9>
1567 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9)
const )
1569 typedef typename ShadowTraits::TCppClass TCppClass;
1570 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1571 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9)
const;
1572 TConstCppClassPtr self;
1573 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1574 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1575 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1576 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1577 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1578 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1579 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1580 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1581 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
1583 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9) != 0 )
1587 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1588 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9) );
1594 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10>
1595 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)
const )
1597 typedef typename ShadowTraits::TCppClass TCppClass;
1598 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1599 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)
const;
1600 TConstCppClassPtr self;
1601 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1602 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1603 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1604 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1605 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1606 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1607 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1608 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1609 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
1610 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
1612 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) != 0 )
1616 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1617 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10) );
1623 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
1624 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)
const )
1626 typedef typename ShadowTraits::TCppClass TCppClass;
1627 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1628 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)
const;
1629 TConstCppClassPtr self;
1630 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1631 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1632 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1633 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1634 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1635 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1636 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1637 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1638 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
1639 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
1640 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
1642 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) != 0 )
1646 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1647 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11) );
1653 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12>
1654 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)
const )
1656 typedef typename ShadowTraits::TCppClass TCppClass;
1657 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1658 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)
const;
1659 TConstCppClassPtr self;
1660 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1661 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1662 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1663 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1664 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1665 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1666 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1667 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1668 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
1669 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
1670 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
1671 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
1673 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) != 0 )
1677 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1678 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12) );
1684 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13>
1685 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)
const )
1687 typedef typename ShadowTraits::TCppClass TCppClass;
1688 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1689 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)
const;
1690 TConstCppClassPtr self;
1691 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1692 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1693 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1694 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1695 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1696 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1697 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1698 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1699 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
1700 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
1701 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
1702 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
1703 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
1705 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) != 0 )
1709 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1710 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13) );
1716 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14>
1717 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)
const )
1719 typedef typename ShadowTraits::TCppClass TCppClass;
1720 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1721 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)
const;
1722 TConstCppClassPtr self;
1723 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1724 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1725 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1726 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1727 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1728 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1729 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1730 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1731 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
1732 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
1733 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
1734 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
1735 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
1736 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
1738 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) != 0 )
1742 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1743 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14) );
1749 template <
typename C,
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15>
1750 static PyObject* call( PyObject* args, PyObject*
object, R (C::*method)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)
const )
1752 typedef typename ShadowTraits::TCppClass TCppClass;
1753 typedef typename ShadowTraits::TConstCppClassPtr TConstCppClassPtr;
1754 typedef R (C::*TMethod)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)
const;
1755 TConstCppClassPtr self;
1756 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1757 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1758 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1759 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1760 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1761 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1762 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1763 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1764 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
1765 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
1766 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
1767 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
1768 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
1769 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
1770 typedef ArgumentTraits<P15> TArg15;
typedef typename TArg15::TStorage S15; S15 p15 = S15();
1772 if ( ShadowTraits::getObject(
object, self) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) != 0 )
1776 PyObject* result = Caller<R>::template callMethod<const TCppClass&, TMethod>(
1777 *self, method, TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14), TArg15::arg(p15) );
1785 template <
typename R,
typename P0>
1786 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0) )
1788 typedef R (*TFunction)(P0);
1789 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1790 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple(args) != 0 )
1794 PyObject* result = Caller<R>::template callFunction<TFunction>(
1795 freeMethod, TArg0::arg(p0) );
1801 template <
typename R,
typename P0,
typename P1>
1802 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1) )
1804 typedef R (*TFunction)(P0, P1);
1805 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1806 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1808 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1>(args, p1) != 0 )
1812 PyObject* result = Caller<R>::template callFunction<TFunction>(
1813 freeMethod, TArg0::arg(p0), TArg1::arg(p1) );
1819 template <
typename R,
typename P0,
typename P1,
typename P2>
1820 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2) )
1822 typedef R (*TFunction)(P0, P1, P2);
1823 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1824 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1825 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1827 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2>(args, p1, p2) != 0 )
1831 PyObject* result = Caller<R>::template callFunction<TFunction>(
1832 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2) );
1838 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3>
1839 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3) )
1841 typedef R (*TFunction)(P0, P1, P2, P3);
1842 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1843 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1844 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1845 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1847 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3>(args, p1, p2, p3) != 0 )
1851 PyObject* result = Caller<R>::template callFunction<TFunction>(
1852 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3) );
1858 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4>
1859 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4) )
1861 typedef R (*TFunction)(P0, P1, P2, P3, P4);
1862 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1863 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1864 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1865 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1866 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1868 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4>(args, p1, p2, p3, p4) != 0 )
1872 PyObject* result = Caller<R>::template callFunction<TFunction>(
1873 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4) );
1879 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5>
1880 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5) )
1882 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5);
1883 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1884 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1885 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1886 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1887 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1888 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1890 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5>(args, p1, p2, p3, p4, p5) != 0 )
1894 PyObject* result = Caller<R>::template callFunction<TFunction>(
1895 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5) );
1901 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6>
1902 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6) )
1904 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6);
1905 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1906 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1907 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1908 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1909 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1910 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1911 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1913 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6>(args, p1, p2, p3, p4, p5, p6) != 0 )
1917 PyObject* result = Caller<R>::template callFunction<TFunction>(
1918 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6) );
1924 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7>
1925 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6, P7) )
1927 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6, P7);
1928 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1929 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1930 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1931 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1932 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1933 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1934 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1935 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1937 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7>(args, p1, p2, p3, p4, p5, p6, p7) != 0 )
1941 PyObject* result = Caller<R>::template callFunction<TFunction>(
1942 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7) );
1948 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8>
1949 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6, P7, P8) )
1951 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6, P7, P8);
1952 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1953 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1954 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1955 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1956 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1957 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1958 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1959 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1960 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1962 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8>(args, p1, p2, p3, p4, p5, p6, p7, p8) != 0 )
1966 PyObject* result = Caller<R>::template callFunction<TFunction>(
1967 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8) );
1973 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9>
1974 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9) )
1976 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9);
1977 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
1978 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
1979 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
1980 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
1981 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
1982 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
1983 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
1984 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
1985 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
1986 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
1988 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9) != 0 )
1992 PyObject* result = Caller<R>::template callFunction<TFunction>(
1993 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9) );
1999 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10>
2000 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) )
2002 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10);
2003 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2004 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2005 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2006 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2007 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2008 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2009 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2010 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2011 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2012 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2013 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2015 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) != 0 )
2019 PyObject* result = Caller<R>::template callFunction<TFunction>(
2020 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10) );
2026 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
2027 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) )
2029 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11);
2030 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2031 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2032 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2033 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2034 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2035 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2036 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2037 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2038 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2039 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2040 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2041 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2043 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) != 0 )
2047 PyObject* result = Caller<R>::template callFunction<TFunction>(
2048 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11) );
2054 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12>
2055 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) )
2057 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12);
2058 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2059 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2060 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2061 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2062 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2063 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2064 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2065 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2066 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2067 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2068 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2069 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2070 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
2072 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) != 0 )
2076 PyObject* result = Caller<R>::template callFunction<TFunction>(
2077 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12) );
2083 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13>
2084 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) )
2086 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13);
2087 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2088 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2089 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2090 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2091 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2092 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2093 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2094 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2095 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2096 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2097 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2098 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2099 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
2100 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
2102 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) != 0 )
2106 PyObject* result = Caller<R>::template callFunction<TFunction>(
2107 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13) );
2113 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14>
2114 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) )
2116 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14);
2117 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2118 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2119 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2120 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2121 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2122 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2123 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2124 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2125 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2126 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2127 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2128 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2129 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
2130 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
2131 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
2133 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) != 0 )
2137 PyObject* result = Caller<R>::template callFunction<TFunction>(
2138 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14) );
2144 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15>
2145 static PyObject* callFree( PyObject* args, PyObject*
object, R (*freeMethod)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) )
2147 typedef R (*TFunction)(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15);
2148 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2149 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2150 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2151 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2152 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2153 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2154 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2155 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2156 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2157 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2158 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2159 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2160 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
2161 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
2162 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
2163 typedef ArgumentTraits<P15> TArg15;
typedef typename TArg15::TStorage S15; S15 p15 = S15();
2165 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) != 0 )
2169 PyObject* result = Caller<R>::template callFunction<TFunction>(
2170 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14), TArg15::arg(p15) );
2177 template <
typename R,
typename P0>
2178 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0)> freeMethod )
2180 typedef std::function<R(P0)> TFunction;
2181 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2182 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple(args) != 0 )
2186 PyObject* result = Caller<R>::template callFunction<TFunction>(
2187 freeMethod, TArg0::arg(p0) );
2193 template <
typename R,
typename P0,
typename P1>
2194 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1)> freeMethod )
2196 typedef std::function<R(P0, P1)> TFunction;
2197 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2198 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2200 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1>(args, p1) != 0 )
2204 PyObject* result = Caller<R>::template callFunction<TFunction>(
2205 freeMethod, TArg0::arg(p0), TArg1::arg(p1) );
2211 template <
typename R,
typename P0,
typename P1,
typename P2>
2212 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2)> freeMethod )
2214 typedef std::function<R(P0, P1, P2)> TFunction;
2215 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2216 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2217 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2219 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2>(args, p1, p2) != 0 )
2223 PyObject* result = Caller<R>::template callFunction<TFunction>(
2224 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2) );
2230 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3>
2231 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3)> freeMethod )
2233 typedef std::function<R(P0, P1, P2, P3)> TFunction;
2234 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2235 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2236 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2237 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2239 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3>(args, p1, p2, p3) != 0 )
2243 PyObject* result = Caller<R>::template callFunction<TFunction>(
2244 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3) );
2250 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4>
2251 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4)> freeMethod )
2253 typedef std::function<R(P0, P1, P2, P3, P4)> TFunction;
2254 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2255 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2256 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2257 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2258 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2260 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4>(args, p1, p2, p3, p4) != 0 )
2264 PyObject* result = Caller<R>::template callFunction<TFunction>(
2265 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4) );
2271 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5>
2272 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5)> freeMethod )
2274 typedef std::function<R(P0, P1, P2, P3, P4, P5)> TFunction;
2275 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2276 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2277 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2278 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2279 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2280 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2282 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5>(args, p1, p2, p3, p4, p5) != 0 )
2286 PyObject* result = Caller<R>::template callFunction<TFunction>(
2287 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5) );
2293 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6>
2294 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6)> freeMethod )
2296 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6)> TFunction;
2297 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2298 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2299 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2300 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2301 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2302 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2303 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2305 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6>(args, p1, p2, p3, p4, p5, p6) != 0 )
2309 PyObject* result = Caller<R>::template callFunction<TFunction>(
2310 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6) );
2316 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7>
2317 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6, P7)> freeMethod )
2319 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6, P7)> TFunction;
2320 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2321 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2322 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2323 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2324 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2325 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2326 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2327 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2329 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7>(args, p1, p2, p3, p4, p5, p6, p7) != 0 )
2333 PyObject* result = Caller<R>::template callFunction<TFunction>(
2334 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7) );
2340 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8>
2341 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8)> freeMethod )
2343 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8)> TFunction;
2344 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2345 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2346 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2347 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2348 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2349 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2350 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2351 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2352 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2354 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8>(args, p1, p2, p3, p4, p5, p6, p7, p8) != 0 )
2358 PyObject* result = Caller<R>::template callFunction<TFunction>(
2359 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8) );
2365 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9>
2366 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9)> freeMethod )
2368 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9)> TFunction;
2369 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2370 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2371 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2372 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2373 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2374 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2375 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2376 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2377 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2378 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2380 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9) != 0 )
2384 PyObject* result = Caller<R>::template callFunction<TFunction>(
2385 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9) );
2391 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10>
2392 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)> freeMethod )
2394 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)> TFunction;
2395 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2396 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2397 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2398 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2399 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2400 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2401 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2402 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2403 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2404 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2405 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2407 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) != 0 )
2411 PyObject* result = Caller<R>::template callFunction<TFunction>(
2412 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10) );
2418 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
2419 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)> freeMethod )
2421 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)> TFunction;
2422 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2423 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2424 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2425 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2426 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2427 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2428 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2429 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2430 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2431 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2432 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2433 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2435 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) != 0 )
2439 PyObject* result = Caller<R>::template callFunction<TFunction>(
2440 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11) );
2446 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12>
2447 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)> freeMethod )
2449 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)> TFunction;
2450 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2451 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2452 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2453 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2454 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2455 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2456 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2457 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2458 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2459 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2460 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2461 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2462 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
2464 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12) != 0 )
2468 PyObject* result = Caller<R>::template callFunction<TFunction>(
2469 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12) );
2475 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13>
2476 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)> freeMethod )
2478 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)> TFunction;
2479 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2480 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2481 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2482 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2483 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2484 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2485 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2486 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2487 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2488 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2489 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2490 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2491 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
2492 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
2494 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13) != 0 )
2498 PyObject* result = Caller<R>::template callFunction<TFunction>(
2499 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13) );
2505 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14>
2506 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)> freeMethod )
2508 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)> TFunction;
2509 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2510 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2511 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2512 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2513 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2514 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2515 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2516 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2517 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2518 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2519 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2520 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2521 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
2522 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
2523 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
2525 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14) != 0 )
2529 PyObject* result = Caller<R>::template callFunction<TFunction>(
2530 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14) );
2536 template <
typename R,
typename P0,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15>
2537 static PyObject* callFree( PyObject* args, PyObject*
object, std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)> freeMethod )
2539 typedef std::function<R(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)> TFunction;
2540 typedef ArgumentTraits<P0> TArg0;
typedef typename TArg0::TStorage S0; S0 p0 = S0();
2541 typedef ArgumentTraits<P1> TArg1;
typedef typename TArg1::TStorage S1; S1 p1 = S1();
2542 typedef ArgumentTraits<P2> TArg2;
typedef typename TArg2::TStorage S2; S2 p2 = S2();
2543 typedef ArgumentTraits<P3> TArg3;
typedef typename TArg3::TStorage S3; S3 p3 = S3();
2544 typedef ArgumentTraits<P4> TArg4;
typedef typename TArg4::TStorage S4; S4 p4 = S4();
2545 typedef ArgumentTraits<P5> TArg5;
typedef typename TArg5::TStorage S5; S5 p5 = S5();
2546 typedef ArgumentTraits<P6> TArg6;
typedef typename TArg6::TStorage S6; S6 p6 = S6();
2547 typedef ArgumentTraits<P7> TArg7;
typedef typename TArg7::TStorage S7; S7 p7 = S7();
2548 typedef ArgumentTraits<P8> TArg8;
typedef typename TArg8::TStorage S8; S8 p8 = S8();
2549 typedef ArgumentTraits<P9> TArg9;
typedef typename TArg9::TStorage S9; S9 p9 = S9();
2550 typedef ArgumentTraits<P10> TArg10;
typedef typename TArg10::TStorage S10; S10 p10 = S10();
2551 typedef ArgumentTraits<P11> TArg11;
typedef typename TArg11::TStorage S11; S11 p11 = S11();
2552 typedef ArgumentTraits<P12> TArg12;
typedef typename TArg12::TStorage S12; S12 p12 = S12();
2553 typedef ArgumentTraits<P13> TArg13;
typedef typename TArg13::TStorage S13; S13 p13 = S13();
2554 typedef ArgumentTraits<P14> TArg14;
typedef typename TArg14::TStorage S14; S14 p14 = S14();
2555 typedef ArgumentTraits<P15> TArg15;
typedef typename TArg15::TStorage S15; S15 p15 = S15();
2557 if ( pyGetSimpleObject(
object, p0) != 0 || decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15>(args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) != 0 )
2561 PyObject* result = Caller<R>::template callFunction<TFunction>(
2562 freeMethod, TArg0::arg(p0), TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14), TArg15::arg(p15) );
2573 template <
typename C,
typename R>
2574 static PyObject* get(PyObject*
object, R (C::*method)()
const)
2576 typename ShadowTraits::TConstCppClassPtr self;
2577 if (ShadowTraits::getObject(
object, self) != 0)
2583 PyObject* result = pyBuildSimpleObject(((*self).*method)());
2586 LASS_PYTHON_CATCH_AND_RETURN
2593 template <
typename C,
typename R>
2594 static PyObject* get(PyObject*
object, R (C::*method)())
2596 typename ShadowTraits::TCppClassPtr self;
2597 if (ShadowTraits::getObject(
object, self) != 0)
2603 PyObject* result = pyBuildSimpleObject(((*self).*method)());
2606 LASS_PYTHON_CATCH_AND_RETURN
2613 template <
typename C,
typename P>
2614 static int set( PyObject* args, PyObject*
object,
void (C::*method)(P) )
2616 typename ShadowTraits::TCppClassPtr self;
2617 typedef ArgumentTraits<P> TArg;
typedef typename TArg::TStorage S; S p = S();
2618 if (ShadowTraits::getObject(
object, self) != 0 || pyGetSimpleObject(args, p) != 0)
2624 ((*self).*method)(TArg::arg(p));
2626 LASS_PYTHON_CATCH_AND_RETURN_EX(-1)
2634 template <typename C, typename P>
2635 static
int set( PyObject* args, PyObject*
object, P& (C::*method)() )
2637 typename ShadowTraits::TCppClassPtr self;
2638 typedef ArgumentTraits<P> TArg;
typedef typename TArg::TStorage S; S p = S();
2639 if(ShadowTraits::getObject(
object, self) != 0 || pyGetSimpleObject(args, p) != 0)
2645 ((*self).*method)() = TArg::arg(p);
2647 LASS_PYTHON_CATCH_AND_RETURN_EX(-1)
2651 template <typename C, typename R>
2652 static PyObject* freeGet(PyObject*
object, R (*function)(C&) )
2654 typedef typename meta::Select<
2656 typename ShadowTraits::TConstCppClassPtr,
2657 typename ShadowTraits::TCppClassPtr
2660 if (ShadowTraits::getObject(
object, self) != 0)
2666 PyObject* result = pyBuildSimpleObject(function(*self));
2669 LASS_PYTHON_CATCH_AND_RETURN
2672 template <
typename C,
typename P>
2673 static int freeSet( PyObject* args, PyObject*
object,
void (*function)(C&, P) )
2675 typename ShadowTraits::TCppClassPtr self;
2676 typedef ArgumentTraits<P> TArg;
typedef typename TArg::TStorage S; S p = S();
2677 if(ShadowTraits::getObject(
object, self) != 0 || pyGetSimpleObject(args, p) != 0)
2683 function(*self, TArg::arg(p));
2685 LASS_PYTHON_CATCH_AND_RETURN_EX(-1)
2696template <typename ShadowTraits>
2699 typedef typename ShadowTraits::TCppClass TCppClass;
2700 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
2701 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
2703 if( decodeTuple(args) != 0 )
2710 const TCppClassPtr cppObject(
new TCppClass);
2711 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
2714 forceObjectType(result, subType);
2717 LASS_PYTHON_CATCH_AND_RETURN
2722template <
typename ShadowTraits,
typename P1>
2725 typedef typename ShadowTraits::TCppClass TCppClass;
2726 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
2727 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
2731 if ( decodeTuple<S1>( args, p1 ) != 0 )
2738 TCppClassPtr cppObject;
2740 UnblockThreads LASS_UNUSED(unlock);
2741 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1) ));
2743 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
2744 forceObjectType(result, subType);
2745 result->ob_type = subType;
2748 LASS_PYTHON_CATCH_AND_RETURN
2753template <
typename ShadowTraits,
typename P1,
typename P2>
2756 typedef typename ShadowTraits::TCppClass TCppClass;
2757 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
2758 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
2763 if ( decodeTuple<S1, S2>( args, p1, p2 ) != 0 )
2770 TCppClassPtr cppObject;
2772 UnblockThreads LASS_UNUSED(unlock);
2773 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2) ));
2775 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
2776 forceObjectType(result, subType);
2777 result->ob_type = subType;
2780 LASS_PYTHON_CATCH_AND_RETURN
2785template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3>
2788 typedef typename ShadowTraits::TCppClass TCppClass;
2789 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
2790 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
2796 if ( decodeTuple<S1, S2, S3>( args, p1, p2, p3 ) != 0 )
2803 TCppClassPtr cppObject;
2805 UnblockThreads LASS_UNUSED(unlock);
2806 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3) ));
2808 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
2809 forceObjectType(result, subType);
2810 result->ob_type = subType;
2813 LASS_PYTHON_CATCH_AND_RETURN
2818template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4>
2821 typedef typename ShadowTraits::TCppClass TCppClass;
2822 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
2823 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
2830 if ( decodeTuple<S1, S2, S3, S4>( args, p1, p2, p3, p4 ) != 0 )
2837 TCppClassPtr cppObject;
2839 UnblockThreads LASS_UNUSED(unlock);
2840 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4) ));
2842 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
2843 forceObjectType(result, subType);
2844 result->ob_type = subType;
2847 LASS_PYTHON_CATCH_AND_RETURN
2852template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5>
2855 typedef typename ShadowTraits::TCppClass TCppClass;
2856 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
2857 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
2865 if ( decodeTuple<S1, S2, S3, S4, S5>( args, p1, p2, p3, p4, p5 ) != 0 )
2872 TCppClassPtr cppObject;
2874 UnblockThreads LASS_UNUSED(unlock);
2875 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5) ));
2877 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
2878 forceObjectType(result, subType);
2879 result->ob_type = subType;
2882 LASS_PYTHON_CATCH_AND_RETURN
2887template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6>
2890 typedef typename ShadowTraits::TCppClass TCppClass;
2891 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
2892 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
2901 if ( decodeTuple<S1, S2, S3, S4, S5, S6>( args, p1, p2, p3, p4, p5, p6 ) != 0 )
2908 TCppClassPtr cppObject;
2910 UnblockThreads LASS_UNUSED(unlock);
2911 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6) ));
2913 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
2914 forceObjectType(result, subType);
2915 result->ob_type = subType;
2918 LASS_PYTHON_CATCH_AND_RETURN
2923template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7>
2926 typedef typename ShadowTraits::TCppClass TCppClass;
2927 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
2928 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
2938 if ( decodeTuple<S1, S2, S3, S4, S5, S6, S7>( args, p1, p2, p3, p4, p5, p6, p7 ) != 0 )
2945 TCppClassPtr cppObject;
2947 UnblockThreads LASS_UNUSED(unlock);
2948 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7) ));
2950 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
2951 forceObjectType(result, subType);
2952 result->ob_type = subType;
2955 LASS_PYTHON_CATCH_AND_RETURN
2960template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8>
2963 typedef typename ShadowTraits::TCppClass TCppClass;
2964 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
2965 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
2976 if ( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8>( args, p1, p2, p3, p4, p5, p6, p7, p8 ) != 0 )
2983 TCppClassPtr cppObject;
2985 UnblockThreads LASS_UNUSED(unlock);
2986 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8) ));
2988 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
2989 forceObjectType(result, subType);
2990 result->ob_type = subType;
2993 LASS_PYTHON_CATCH_AND_RETURN
2998template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9>
3001 typedef typename ShadowTraits::TCppClass TCppClass;
3002 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
3003 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
3015 if ( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) != 0 )
3022 TCppClassPtr cppObject;
3024 UnblockThreads LASS_UNUSED(unlock);
3025 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9) ));
3027 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
3028 forceObjectType(result, subType);
3029 result->ob_type = subType;
3032 LASS_PYTHON_CATCH_AND_RETURN
3037template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10>
3040 typedef typename ShadowTraits::TCppClass TCppClass;
3041 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
3042 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
3055 if ( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 ) != 0 )
3062 TCppClassPtr cppObject;
3064 UnblockThreads LASS_UNUSED(unlock);
3065 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10) ));
3067 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
3068 forceObjectType(result, subType);
3069 result->ob_type = subType;
3072 LASS_PYTHON_CATCH_AND_RETURN
3077template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11>
3080 typedef typename ShadowTraits::TCppClass TCppClass;
3081 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
3082 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
3096 if ( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11 ) != 0 )
3103 TCppClassPtr cppObject;
3105 UnblockThreads LASS_UNUSED(unlock);
3106 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11) ));
3108 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
3109 forceObjectType(result, subType);
3110 result->ob_type = subType;
3113 LASS_PYTHON_CATCH_AND_RETURN
3118template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12>
3121 typedef typename ShadowTraits::TCppClass TCppClass;
3122 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
3123 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
3138 if ( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12 ) != 0 )
3145 TCppClassPtr cppObject;
3147 UnblockThreads LASS_UNUSED(unlock);
3148 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12) ));
3150 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
3151 forceObjectType(result, subType);
3152 result->ob_type = subType;
3155 LASS_PYTHON_CATCH_AND_RETURN
3160template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13>
3163 typedef typename ShadowTraits::TCppClass TCppClass;
3164 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
3165 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
3181 if ( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13 ) != 0 )
3188 TCppClassPtr cppObject;
3190 UnblockThreads LASS_UNUSED(unlock);
3191 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13) ));
3193 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
3194 forceObjectType(result, subType);
3195 result->ob_type = subType;
3198 LASS_PYTHON_CATCH_AND_RETURN
3203template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14>
3206 typedef typename ShadowTraits::TCppClass TCppClass;
3207 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
3208 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
3225 if ( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 ) != 0 )
3232 TCppClassPtr cppObject;
3234 UnblockThreads LASS_UNUSED(unlock);
3235 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14) ));
3237 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
3238 forceObjectType(result, subType);
3239 result->ob_type = subType;
3242 LASS_PYTHON_CATCH_AND_RETURN
3247template <
typename ShadowTraits,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15>
3250 typedef typename ShadowTraits::TCppClass TCppClass;
3251 typedef typename ShadowTraits::TCppClassPtr TCppClassPtr;
3252 typedef typename ShadowTraits::TPyClassPtr TPyClassPtr;
3270 if ( decodeTuple<S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15>( args, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 ) != 0 )
3277 TCppClassPtr cppObject;
3279 UnblockThreads LASS_UNUSED(unlock);
3280 cppObject = TCppClassPtr(
new TCppClass( TArg1::arg(p1), TArg2::arg(p2), TArg3::arg(p3), TArg4::arg(p4), TArg5::arg(p5), TArg6::arg(p6), TArg7::arg(p7), TArg8::arg(p8), TArg9::arg(p9), TArg10::arg(p10), TArg11::arg(p11), TArg12::arg(p12), TArg13::arg(p13), TArg14::arg(p14), TArg15::arg(p15) ));
3282 const TPyClassPtr result = ShadowTraits::buildObject(cppObject);
3283 forceObjectType(result, subType);
3284 result->ob_type = subType;
3287 LASS_PYTHON_CATCH_AND_RETURN
3295template <
typename ShadowTraits,
typename R,
typename... P>
3296struct ExplicitResolver
3298 static PyObject* callFunction(PyObject* args, R(*iFunction)(P...))
3300 return ::lass::python::impl::callFunction<R, P...>(args, iFunction);
3302 template <
typename C>
static PyObject* callMethod(PyObject* args, PyObject*
object, R(C::* method)(P...))
3304 return CallMethod<ShadowTraits>::call(args,
object, method);
3306 template <
typename C>
static PyObject* callMethod(PyObject* args, PyObject*
object, R(C::* method)(P...)
const)
3308 return CallMethod<ShadowTraits>::call(args,
object, method);
3310 static PyObject* callFreeMethod(PyObject* args, PyObject*
object, R(*freeMethod)(P...))
3312 return CallMethod<ShadowTraits>::callFree(args,
object, freeMethod);
3314 static PyObject* callConstructor(PyTypeObject* subType, PyObject* args)
3316 return construct<ShadowTraits, P...>(subType, args);
3321template <
typename ShadowTraits,
typename R,
typename... P>
3322struct ExplicitResolver<ShadowTraits, R, lass::meta::TypeTuple<P...>>:
3323 public ExplicitResolver<ShadowTraits, R, P...>
3329template <
typename ShadowTraits,
typename R,
typename Head,
typename Tail,
typename... P>
3330struct ExplicitResolver<ShadowTraits, R, lass::meta::TypeList<Head, Tail>, P...> :
3331 public ExplicitResolver<ShadowTraits, R, Tail, P..., Head>
3336template <
typename ShadowTraits,
typename R,
typename... P>
3337struct ExplicitResolver<ShadowTraits, R, lass::meta::NullType, P...>:
3338 public ExplicitResolver<ShadowTraits, R, P...>
3348#if LASS_COMPILER_TYPE == LASS_COMPILER_TYPE_MSVC
3349# pragma warning(pop)
PyObject * fromSharedPtrToNakedCast(const util::SharedPtr< T, PyObjectStorage, PyObjectCounter > &object)
fromSharedPtrToNakedCast.
Comprehensive C++ to Python binding library.
Library for Assembled Shared Sources.
PyObject * callFunction(PyObject *args, R(*function)())
calls C++ function without arguments
PyObject * construct(PyTypeObject *subType, PyObject *args)
allocate a new object with default constructor.
PyObject * establishMagicalBackLinks(PyObject *result, PyObject *self)
Here, we try to fix some lifetime issues to guarantee some lifetime requirements on self.
calls the actual function with provided parameters, and returns result as a PyObject pointer.