ExtensionType.hxx File Reference

Go to the source code of this file.

Classes

class  Py::ExtensionClassMethodsTable
class  Py::PythonClass< T >
struct  Py::PythonClassInstance
class  Py::PythonClassObject< T >

Namespaces

namespace  Py

Defines

#define PYCXX_ADD_KEYWORDS_METHOD(PYNAME, NAME, docs)   add_method( #PYNAME, (PyCFunction)PYCXX_KEYWORDS_METHOD_NAME( NAME ), METH_VARARGS | METH_KEYWORDS, docs )
#define PYCXX_ADD_NOARGS_METHOD(PYNAME, NAME, docs)   add_method( #PYNAME, (PyCFunction)PYCXX_NOARGS_METHOD_NAME( NAME ), METH_NOARGS, docs )
#define PYCXX_ADD_VARARGS_METHOD(PYNAME, NAME, docs)   add_method( #PYNAME, (PyCFunction)PYCXX_VARARGS_METHOD_NAME( NAME ), METH_VARARGS, docs )
#define PYCXX_KEYWORDS_METHOD_DECL(CLS, NAME)
#define PYCXX_KEYWORDS_METHOD_NAME(NAME)   _callKeywordsMethod__##NAME
#define PYCXX_NOARGS_METHOD_DECL(CLS, NAME)
#define PYCXX_NOARGS_METHOD_NAME(NAME)   _callNoArgsMethod__##NAME
#define PYCXX_VARARGS_METHOD_DECL(CLS, NAME)
#define PYCXX_VARARGS_METHOD_NAME(NAME)   _callVarArgsMethod__##NAME

Functions

PythonExtensionBase * Py::getPythonExtensionBase (PyObject *self)

Define Documentation

#define PYCXX_ADD_KEYWORDS_METHOD ( PYNAME,
NAME,
docs   )     add_method( #PYNAME, (PyCFunction)PYCXX_KEYWORDS_METHOD_NAME( NAME ), METH_VARARGS | METH_KEYWORDS, docs )

Definition at line 102 of file ExtensionType.hxx.

Referenced by Sandbox::PythonBaseClass::init_type().

#define PYCXX_ADD_NOARGS_METHOD ( PYNAME,
NAME,
docs   )     add_method( #PYNAME, (PyCFunction)PYCXX_NOARGS_METHOD_NAME( NAME ), METH_NOARGS, docs )

Definition at line 98 of file ExtensionType.hxx.

Referenced by Sandbox::PythonBaseClass::init_type().

#define PYCXX_ADD_VARARGS_METHOD ( PYNAME,
NAME,
docs   )     add_method( #PYNAME, (PyCFunction)PYCXX_VARARGS_METHOD_NAME( NAME ), METH_VARARGS, docs )

Definition at line 100 of file ExtensionType.hxx.

Referenced by Sandbox::PythonBaseClass::init_type().

#define PYCXX_KEYWORDS_METHOD_DECL ( CLS,
NAME   ) 
Value:
static PyObject *PYCXX_KEYWORDS_METHOD_NAME( NAME )( PyObject *_self, PyObject *_a, PyObject *_k ) \
    { \
        try \
        { \
            Py::PythonClassInstance *self_python = reinterpret_cast< Py::PythonClassInstance * >( _self ); \
            CLS *self = reinterpret_cast< CLS * >( self_python->m_pycxx_object ); \
            Py::Tuple a( _a ); \
            Py::Dict k; \
            if( _k != NULL ) \
                k = _k; \
            Py::Object r( (self->NAME)( a, k ) ); \
            return Py::new_reference_to( r.ptr() ); \
        } \
        catch( Py::Exception & ) \
        { \
            return 0; \
        } \
    }

Definition at line 76 of file ExtensionType.hxx.

#define PYCXX_KEYWORDS_METHOD_NAME ( NAME   )     _callKeywordsMethod__##NAME

Definition at line 43 of file ExtensionType.hxx.

#define PYCXX_NOARGS_METHOD_DECL ( CLS,
NAME   ) 
Value:
static PyObject *PYCXX_NOARGS_METHOD_NAME( NAME )( PyObject *_self, PyObject *, PyObject * ) \
    { \
        try \
        { \
            Py::PythonClassInstance *self_python = reinterpret_cast< Py::PythonClassInstance * >( _self ); \
            CLS *self = reinterpret_cast< CLS * >( self_python->m_pycxx_object ); \
            Py::Object r( (self->NAME)() ); \
            return Py::new_reference_to( r.ptr() ); \
        } \
        catch( Py::Exception & ) \
        { \
            return 0; \
        } \
    }

Definition at line 45 of file ExtensionType.hxx.

#define PYCXX_NOARGS_METHOD_NAME ( NAME   )     _callNoArgsMethod__##NAME

Definition at line 41 of file ExtensionType.hxx.

#define PYCXX_VARARGS_METHOD_DECL ( CLS,
NAME   ) 
Value:
static PyObject *PYCXX_VARARGS_METHOD_NAME( NAME )( PyObject *_self, PyObject *_a, PyObject * ) \
    { \
        try \
        { \
            Py::PythonClassInstance *self_python = reinterpret_cast< Py::PythonClassInstance * >( _self ); \
            CLS *self = reinterpret_cast< CLS * >( self_python->m_pycxx_object ); \
            Py::Tuple a( _a ); \
            Py::Object r( (self->NAME)( a ) ); \
            return Py::new_reference_to( r.ptr() ); \
        } \
        catch( Py::Exception & ) \
        { \
            return 0; \
        } \
    }

Definition at line 60 of file ExtensionType.hxx.

#define PYCXX_VARARGS_METHOD_NAME ( NAME   )     _callVarArgsMethod__##NAME

Definition at line 42 of file ExtensionType.hxx.


Generated on Wed Nov 23 19:01:15 2011 for FreeCAD by  doxygen 1.6.1