// (C) Copyright David Abrahams 2000. Permission to copy, use, modify, sell and // distribute this software is granted provided this copyright notice appears // in all copies. This software is provided "as is" without express or implied // warranty, and with no claim as to its suitability for any purpose. // // The author gratefully acknowleges the support of Dragon Systems, Inc., in // producing this work. // // This file generated for 5-argument member functions and 5-argument free // functions by gen_caller.py #ifndef CALLER_DWA05090_H_ # define CALLER_DWA05090_H_ # include "pyconfig.h" # include "wrap_python.h" # include # include "signatures.h" # include "none.h" namespace py { // Calling C++ from Python template struct Caller { template static PyObject* call(R (T::*pmf)(), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; if (!PyArg_ParseTuple(args, const_cast("O"), &self)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)()); } template static PyObject* call(R (T::*pmf)(A1), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; if (!PyArg_ParseTuple(args, const_cast("OO"), &self, &a1)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()))); } template static PyObject* call(R (T::*pmf)(A1, A2), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; if (!PyArg_ParseTuple(args, const_cast("OOO"), &self, &a1, &a2)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()), from_python(a2, Type()))); } template static PyObject* call(R (T::*pmf)(A1, A2, A3), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; if (!PyArg_ParseTuple(args, const_cast("OOOO"), &self, &a1, &a2, &a3)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()))); } template static PyObject* call(R (T::*pmf)(A1, A2, A3, A4), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; if (!PyArg_ParseTuple(args, const_cast("OOOOO"), &self, &a1, &a2, &a3, &a4)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type()))); } template static PyObject* call(R (T::*pmf)(A1, A2, A3, A4, A5), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; PyObject* a5; if (!PyArg_ParseTuple(args, const_cast("OOOOOO"), &self, &a1, &a2, &a3, &a4, &a5)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type()), from_python(a5, Type()))); } template static PyObject* call(R (T::*pmf)() const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; if (!PyArg_ParseTuple(args, const_cast("O"), &self)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)()); } template static PyObject* call(R (T::*pmf)(A1) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; if (!PyArg_ParseTuple(args, const_cast("OO"), &self, &a1)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()))); } template static PyObject* call(R (T::*pmf)(A1, A2) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; if (!PyArg_ParseTuple(args, const_cast("OOO"), &self, &a1, &a2)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()), from_python(a2, Type()))); } template static PyObject* call(R (T::*pmf)(A1, A2, A3) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; if (!PyArg_ParseTuple(args, const_cast("OOOO"), &self, &a1, &a2, &a3)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()))); } template static PyObject* call(R (T::*pmf)(A1, A2, A3, A4) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; if (!PyArg_ParseTuple(args, const_cast("OOOOO"), &self, &a1, &a2, &a3, &a4)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type()))); } template static PyObject* call(R (T::*pmf)(A1, A2, A3, A4, A5) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; PyObject* a5; if (!PyArg_ParseTuple(args, const_cast("OOOOOO"), &self, &a1, &a2, &a3, &a4, &a5)) return 0; T& target = from_python(self, Type()); return to_python((target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type()), from_python(a5, Type()))); } // Free functions static PyObject* call(R (*f)(), PyObject* args, PyObject* /* keywords */ ) { if (!PyArg_ParseTuple(args, const_cast(""))) return 0; return to_python(f()); } template static PyObject* call(R (*f)(A1), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; if (!PyArg_ParseTuple(args, const_cast("O"), &a1)) return 0; return to_python(f(from_python(a1, Type()))); } template static PyObject* call(R (*f)(A1, A2), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; PyObject* a2; if (!PyArg_ParseTuple(args, const_cast("OO"), &a1, &a2)) return 0; return to_python(f(from_python(a1, Type()), from_python(a2, Type()))); } template static PyObject* call(R (*f)(A1, A2, A3), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; PyObject* a2; PyObject* a3; if (!PyArg_ParseTuple(args, const_cast("OOO"), &a1, &a2, &a3)) return 0; return to_python(f(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()))); } template static PyObject* call(R (*f)(A1, A2, A3, A4), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; if (!PyArg_ParseTuple(args, const_cast("OOOO"), &a1, &a2, &a3, &a4)) return 0; return to_python(f(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type()))); } template static PyObject* call(R (*f)(A1, A2, A3, A4, A5), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; PyObject* a5; if (!PyArg_ParseTuple(args, const_cast("OOOOO"), &a1, &a2, &a3, &a4, &a5)) return 0; return to_python(f(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type()), from_python(a5, Type()))); } }; template <> struct Caller { template static PyObject* call(void (T::*pmf)(), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; if (!PyArg_ParseTuple(args, const_cast("O"), &self)) return 0; T& target = from_python(self, Type()); (target.*pmf)(); return none(); } template static PyObject* call(void (T::*pmf)(A1), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; if (!PyArg_ParseTuple(args, const_cast("OO"), &self, &a1)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type())); return none(); } template static PyObject* call(void (T::*pmf)(A1, A2), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; if (!PyArg_ParseTuple(args, const_cast("OOO"), &self, &a1, &a2)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type()), from_python(a2, Type())); return none(); } template static PyObject* call(void (T::*pmf)(A1, A2, A3), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; if (!PyArg_ParseTuple(args, const_cast("OOOO"), &self, &a1, &a2, &a3)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type())); return none(); } template static PyObject* call(void (T::*pmf)(A1, A2, A3, A4), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; if (!PyArg_ParseTuple(args, const_cast("OOOOO"), &self, &a1, &a2, &a3, &a4)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type())); return none(); } template static PyObject* call(void (T::*pmf)(A1, A2, A3, A4, A5), PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; PyObject* a5; if (!PyArg_ParseTuple(args, const_cast("OOOOOO"), &self, &a1, &a2, &a3, &a4, &a5)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type()), from_python(a5, Type())); return none(); } template static PyObject* call(void (T::*pmf)() const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; if (!PyArg_ParseTuple(args, const_cast("O"), &self)) return 0; T& target = from_python(self, Type()); (target.*pmf)(); return none(); } template static PyObject* call(void (T::*pmf)(A1) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; if (!PyArg_ParseTuple(args, const_cast("OO"), &self, &a1)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type())); return none(); } template static PyObject* call(void (T::*pmf)(A1, A2) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; if (!PyArg_ParseTuple(args, const_cast("OOO"), &self, &a1, &a2)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type()), from_python(a2, Type())); return none(); } template static PyObject* call(void (T::*pmf)(A1, A2, A3) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; if (!PyArg_ParseTuple(args, const_cast("OOOO"), &self, &a1, &a2, &a3)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type())); return none(); } template static PyObject* call(void (T::*pmf)(A1, A2, A3, A4) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; if (!PyArg_ParseTuple(args, const_cast("OOOOO"), &self, &a1, &a2, &a3, &a4)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type())); return none(); } template static PyObject* call(void (T::*pmf)(A1, A2, A3, A4, A5) const, PyObject* args, PyObject* /* keywords */ ) { PyObject* self; PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; PyObject* a5; if (!PyArg_ParseTuple(args, const_cast("OOOOOO"), &self, &a1, &a2, &a3, &a4, &a5)) return 0; T& target = from_python(self, Type()); (target.*pmf)(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type()), from_python(a5, Type())); return none(); } // Free functions static PyObject* call(void (*f)(), PyObject* args, PyObject* /* keywords */ ) { if (!PyArg_ParseTuple(args, const_cast(""))) return 0; f(); return none(); } template static PyObject* call(void (*f)(A1), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; if (!PyArg_ParseTuple(args, const_cast("O"), &a1)) return 0; f(from_python(a1, Type())); return none(); } template static PyObject* call(void (*f)(A1, A2), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; PyObject* a2; if (!PyArg_ParseTuple(args, const_cast("OO"), &a1, &a2)) return 0; f(from_python(a1, Type()), from_python(a2, Type())); return none(); } template static PyObject* call(void (*f)(A1, A2, A3), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; PyObject* a2; PyObject* a3; if (!PyArg_ParseTuple(args, const_cast("OOO"), &a1, &a2, &a3)) return 0; f(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type())); return none(); } template static PyObject* call(void (*f)(A1, A2, A3, A4), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; if (!PyArg_ParseTuple(args, const_cast("OOOO"), &a1, &a2, &a3, &a4)) return 0; f(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type())); return none(); } template static PyObject* call(void (*f)(A1, A2, A3, A4, A5), PyObject* args, PyObject* /* keywords */ ) { PyObject* a1; PyObject* a2; PyObject* a3; PyObject* a4; PyObject* a5; if (!PyArg_ParseTuple(args, const_cast("OOOOO"), &a1, &a2, &a3, &a4, &a5)) return 0; f(from_python(a1, Type()), from_python(a2, Type()), from_python(a3, Type()), from_python(a4, Type()), from_python(a5, Type())); return none(); } }; } #endif