PY/PY_CPythonAPI.h File Reference

#include "PY_API.h"
#include <SYS/SYS_Types.h>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/seq/for_each_i.hpp>
#include <boost/preprocessor/seq/seq.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <string.h>
#include <stdarg.h>

Go to the source code of this file.

Classes

class  PY_PyObject_HEAD_EXTRA
struct  PY_PyMethodDef

Defines

#define PY_WRAPPED_FUNCTIONS
#define PY_WRAPPED_CONSTANTS
#define PY_FOR_EACH_SEQ_OF_2(macro, seq)   BOOST_PP_SEQ_FOR_EACH(PY_CALLBACK_SEQ_OF_2, macro, seq)
#define PY_CALLBACK_SEQ_OF_2(r, macro, seq)   macro(PY_SEQ_ELEM_0(seq), PY_SEQ_ELEM_1(seq))
#define PY_FOR_EACH_SEQ_OF_3(macro, seq)   BOOST_PP_SEQ_FOR_EACH(PY_CALLBACK_SEQ_OF_3, macro, seq)
#define PY_CALLBACK_SEQ_OF_3(r, macro, seq)   macro(PY_SEQ_ELEM_0(seq), PY_SEQ_ELEM_1(seq), PY_SEQ_ELEM_2(seq))
#define PY_SEQ_ELEM_0(seq)   BOOST_PP_SEQ_HEAD(seq)
#define PY_SEQ_ELEM_1(seq)   BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq))
#define PY_SEQ_ELEM_2(seq)   BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_TAIL(seq)))
#define PY_MAKE_PARM_LIST(parm_types)   BOOST_PP_SEQ_FOR_EACH_I(PY_MAKE_PARM, _, parm_types)
#define PY_MAKE_PARM(r, unused_data, i, elem)   BOOST_PP_COMMA_IF(i) elem BOOST_PP_CAT(arg, i)
#define PY_MAKE_ARG_LIST(parm_types)   BOOST_PP_SEQ_FOR_EACH_I(PY_MAKE_ARG, _, parm_types)
#define PY_MAKE_ARG(r, unused_data, i, unused_elem)   BOOST_PP_COMMA_IF(i) BOOST_PP_CAT(arg, i)
#define PY_ADD_SUBCLASS_1(subclass, base_class, member1_type, member1_name)
#define PY_ADD_SUBCLASS_2(subclass, base_class, member1_type, member1_name, member2_type, member2_name)
#define PY_DECLARE_FUNCTION_FROM_SEQ(seq)   PY_CALLBACK_SEQ_OF_3(_, PY_DECLARE_FUNCTION, seq)
#define PY_DECLARE_FUNCTION(function_name, return_type, parm_types)
#define PY_DECLARE_WRAPPED_CONSTANT(constant_name, type)   PY_API type &BOOST_PP_CAT(PY_, constant_name)();
#define PY_FUNC_SEQ_PyInt_AsLong   (PyInt_AsLong)(long)((PY_PyObject *))
#define PY_FUNC_SEQ_PyInt_FromLong   (PyInt_FromLong)(PY_PyObject *)((long))
#define PY_FUNC_SEQ_PyString_AsString   (PyString_AsString)(char *)((PY_PyObject *))
#define PY_FUNC_SEQ_PyString_AsStringAndSize   (PyString_AsStringAndSize)(int)((PY_PyObject *)(char **)(PY_Py_ssize_t *))
#define PY_FUNC_SEQ_PyString_FromString   (PyString_FromString)(PY_PyObject *)((const char *))
#define PY_FUNC_SEQ_PyString_FromStringAndSize   (PyString_FromStringAndSize)(PY_PyObject *)((const char *)(PY_Py_ssize_t))
#define PY_PyInt_Check(op)   PY_PyObject_TypeCheck(op, &PY_PyInt_Type())
#define PY_PyString_Check(op)   PY_PyObject_TypeCheck(op, &PY_PyString_Type())
#define PY_Py_INCREF   PY_Py_IncRef
#define PY_Py_DECREF   PY_Py_DecRef
#define PY_Py_XDECREF(op)   if ((op) == NULL) ; else PY_Py_DECREF(op)
#define PY_Py_False()   (&PY__Py_ZeroStruct())
#define PY_Py_True()   (&PY__Py_TrueStruct())
#define PY_Py_None()   (&PY__Py_NoneStruct())
#define PY_Py_RETURN_NONE   return PY_Py_INCREF(PY_Py_None()), PY_Py_None()
#define PY_PyMODINIT_FUNC   extern "C" SYS_VISIBILITY_EXPORT void
#define PY_PyRun_SimpleString(s)   PY_PyRun_SimpleStringFlags(s, NULL)
#define PY_Py_CompileString(str, p, s)   PY_Py_CompileStringFlags(str, p, s, NULL)
#define PY_PyRun_InteractiveLoop(f, p)   PY_PyRun_InteractiveLoopFlags(f, p, NULL)
#define PY_PyList_SET_ITEM(op, i, v)   (((PY_PyListObject *)(op))->ob_item()[i] = (v))
#define PY_PyTuple_SET_ITEM(op, i, v)   (((PY_PyTupleObject *)(op))->ob_item()[i] = (v))
#define PY_PyObject_TypeCheck(ob, tp)   ((ob)->ob_type() == (tp) || PY_PyType_IsSubtype((ob)->ob_type(), (tp)))
#define PY_PyCObject_Check(op)   (op->ob_type() == &PY_PyCObject_Type())
#define PY_PyFloat_Check(op)   PY_PyObject_TypeCheck(op, &PY_PyFloat_Type())
#define PY_PyLong_Check(op)   PY_PyObject_TypeCheck(op, &PY_PyLong_Type())
#define PY_PyUnicode_Check(op)   PY_PyObject_TypeCheck(op, &PY_PyUnicode_Type())
#define PY_PyTuple_Check(op)   PY_PyObject_TypeCheck(op, &PY_PyTuple_Type())
#define PY_PyList_Check(op)   PY_PyObject_TypeCheck(op, &PY_PyList_Type())
#define PY_PyDict_Check(op)   PY_PyObject_TypeCheck(op, &PY_PyDict_Type())
#define PY_PyFunction_Check(op)   ((op)->ob_type() == &PY_PyFunction_Type())
#define PY_PyExceptionInstance_Check(op)   PY_PyObject_TypeCheck(op, (PY_PyTypeObject *)&PY_PyExc_BaseException())
#define PY_PYFRAME_BACK(op)   ((op)->f_back())
#define PY_PYFRAME_CODE(op)   ((op)->f_code())

Typedefs

typedef char *(* PY_PyOS_ReadlineFunctionPointerType )(FILE *, FILE *, char *)
typedef int PY_PyGILState_STATE
typedef ssize_t PY_Py_ssize_t
typedef PY_PyObject *(* PY_PyCFunction )(PY_PyObject *, PY_PyObject *)

Functions

 PY_ADD_SUBCLASS_2 (PY_PyObject, PY_PyObject_HEAD_EXTRA, PY_Py_ssize_t, ob_refcnt, PY_PyTypeObject *, ob_type) PY_ADD_SUBCLASS_1(PY_PyVarObject
ob_size PY_ADD_SUBCLASS_1 (PY_PyTypeObject, PY_PyVarObject, const char *, tp_name) PY_ADD_SUBCLASS_2(PY_PyFrameObject
ob_size PY_PyFrameObject
PY_PyCodeObject f_code 
PY_ADD_SUBCLASS_1 (PY_PyListObject, PY_PyVarObject, PY_PyObject **, ob_item) class PY_API PY_PyTupleObject
PY_API PY_PyObjectPY_Py_InitModule (const char *name, PY_PyMethodDef *methods)
PY_API int PY_PyArg_ParseTuple (PY_PyObject *args, const char *format,...)
PY_API PY_PyObjectPY_Py_BuildValue (const char *format,...)
PY_API PY_PyObjectPY_PyObject_CallMethod (PY_PyObject *o, const char *name, const char *format,...)
PY_API void PYloadPythonLibrary ()
PY_API int PYgetPythonVersion ()
PY_API bool PYisHFSPythonLibraryLoaded ()

Variables

class PY_API PY_PyTypeObject
class PY_API PY_PyCodeObject
class PY_API PY_PyCompilerFlags
class PY_API PY_PyThreadState
class PY_API PY_PyMethodDef
 PY_PyObject
ob_size PY_PyVarObject
ob_size PY_PyFrameObject f_back


Define Documentation

#define PY_ADD_SUBCLASS_1 ( subclass,
base_class,
member1_type,
member1_name   ) 

Value:

class PY_API subclass : public base_class \
{ \
public: \
    member1_type member1_name() \
    { return pyAccessStructMember<member1_type>( \
        this, base_class::theStructSize); } \
\
    static void computeStructSize() \
    { theStructSize = base_class::theStructSize + sizeof(member1_type); } \
\
    static int theStructSize; \
};

Definition at line 319 of file PY_CPythonAPI.h.

#define PY_ADD_SUBCLASS_2 ( subclass,
base_class,
member1_type,
member1_name,
member2_type,
member2_name   ) 

Value:

class PY_API subclass : public base_class \
{ \
public: \
    member1_type member1_name() \
    { return pyAccessStructMember<member1_type>( \
        this, base_class::theStructSize); } \
\
    member2_type member2_name() \
    { return pyAccessStructMember<member2_type>( \
        this, base_class::theStructSize + sizeof(member1_type)); } \
\
    static void computeStructSize() \
    { theStructSize = base_class::theStructSize + \
        sizeof(member1_type) + sizeof(member2_type); } \
\
    static int theStructSize; \
};

Definition at line 335 of file PY_CPythonAPI.h.

#define PY_CALLBACK_SEQ_OF_2 ( r,
macro,
seq   )     macro(PY_SEQ_ELEM_0(seq), PY_SEQ_ELEM_1(seq))

Definition at line 210 of file PY_CPythonAPI.h.

#define PY_CALLBACK_SEQ_OF_3 ( r,
macro,
seq   )     macro(PY_SEQ_ELEM_0(seq), PY_SEQ_ELEM_1(seq), PY_SEQ_ELEM_2(seq))

Definition at line 218 of file PY_CPythonAPI.h.

#define PY_DECLARE_FUNCTION ( function_name,
return_type,
parm_types   ) 

Value:

PY_API return_type BOOST_PP_CAT(PY_, function_name)( \
        PY_MAKE_PARM_LIST(parm_types));

Definition at line 443 of file PY_CPythonAPI.h.

#define PY_DECLARE_FUNCTION_FROM_SEQ ( seq   )     PY_CALLBACK_SEQ_OF_3(_, PY_DECLARE_FUNCTION, seq)

Definition at line 438 of file PY_CPythonAPI.h.

#define PY_DECLARE_WRAPPED_CONSTANT ( constant_name,
type   )     PY_API type &BOOST_PP_CAT(PY_, constant_name)();

Definition at line 449 of file PY_CPythonAPI.h.

#define PY_FOR_EACH_SEQ_OF_2 ( macro,
seq   )     BOOST_PP_SEQ_FOR_EACH(PY_CALLBACK_SEQ_OF_2, macro, seq)

Definition at line 205 of file PY_CPythonAPI.h.

#define PY_FOR_EACH_SEQ_OF_3 ( macro,
seq   )     BOOST_PP_SEQ_FOR_EACH(PY_CALLBACK_SEQ_OF_3, macro, seq)

Definition at line 216 of file PY_CPythonAPI.h.

#define PY_FUNC_SEQ_PyInt_AsLong   (PyInt_AsLong)(long)((PY_PyObject *))

Definition at line 467 of file PY_CPythonAPI.h.

#define PY_FUNC_SEQ_PyInt_FromLong   (PyInt_FromLong)(PY_PyObject *)((long))

Definition at line 468 of file PY_CPythonAPI.h.

#define PY_FUNC_SEQ_PyString_AsString   (PyString_AsString)(char *)((PY_PyObject *))

Definition at line 469 of file PY_CPythonAPI.h.

#define PY_FUNC_SEQ_PyString_AsStringAndSize   (PyString_AsStringAndSize)(int)((PY_PyObject *)(char **)(PY_Py_ssize_t *))

Definition at line 471 of file PY_CPythonAPI.h.

#define PY_FUNC_SEQ_PyString_FromString   (PyString_FromString)(PY_PyObject *)((const char *))

Definition at line 473 of file PY_CPythonAPI.h.

#define PY_FUNC_SEQ_PyString_FromStringAndSize   (PyString_FromStringAndSize)(PY_PyObject *)((const char *)(PY_Py_ssize_t))

Definition at line 475 of file PY_CPythonAPI.h.

#define PY_MAKE_ARG ( r,
unused_data,
i,
unused_elem   )     BOOST_PP_COMMA_IF(i) BOOST_PP_CAT(arg, i)

Definition at line 254 of file PY_CPythonAPI.h.

#define PY_MAKE_ARG_LIST ( parm_types   )     BOOST_PP_SEQ_FOR_EACH_I(PY_MAKE_ARG, _, parm_types)

Definition at line 251 of file PY_CPythonAPI.h.

#define PY_MAKE_PARM ( r,
unused_data,
i,
elem   )     BOOST_PP_COMMA_IF(i) elem BOOST_PP_CAT(arg, i)

Definition at line 243 of file PY_CPythonAPI.h.

#define PY_MAKE_PARM_LIST ( parm_types   )     BOOST_PP_SEQ_FOR_EACH_I(PY_MAKE_PARM, _, parm_types)

Definition at line 236 of file PY_CPythonAPI.h.

#define PY_Py_CompileString ( str,
p,
s   )     PY_Py_CompileStringFlags(str, p, s, NULL)

Definition at line 535 of file PY_CPythonAPI.h.

#define PY_Py_DECREF   PY_Py_DecRef

Definition at line 524 of file PY_CPythonAPI.h.

 
#define PY_Py_False (  )     (&PY__Py_ZeroStruct())

Definition at line 527 of file PY_CPythonAPI.h.

#define PY_Py_INCREF   PY_Py_IncRef

Definition at line 523 of file PY_CPythonAPI.h.

 
#define PY_Py_None (  )     (&PY__Py_NoneStruct())

Examples:
HOM/ObjNode_setSelectable.C.

Definition at line 529 of file PY_CPythonAPI.h.

#define PY_Py_RETURN_NONE   return PY_Py_INCREF(PY_Py_None()), PY_Py_None()

Definition at line 531 of file PY_CPythonAPI.h.

 
#define PY_Py_True (  )     (&PY__Py_TrueStruct())

Definition at line 528 of file PY_CPythonAPI.h.

#define PY_Py_XDECREF ( op   )     if ((op) == NULL) ; else PY_Py_DECREF(op)

Definition at line 525 of file PY_CPythonAPI.h.

#define PY_PyCObject_Check ( op   )     (op->ob_type() == &PY_PyCObject_Type())

Definition at line 546 of file PY_CPythonAPI.h.

#define PY_PyDict_Check ( op   )     PY_PyObject_TypeCheck(op, &PY_PyDict_Type())

Definition at line 552 of file PY_CPythonAPI.h.

#define PY_PyExceptionInstance_Check ( op   )     PY_PyObject_TypeCheck(op, (PY_PyTypeObject *)&PY_PyExc_BaseException())

Definition at line 559 of file PY_CPythonAPI.h.

#define PY_PyFloat_Check ( op   )     PY_PyObject_TypeCheck(op, &PY_PyFloat_Type())

Definition at line 547 of file PY_CPythonAPI.h.

#define PY_PYFRAME_BACK ( op   )     ((op)->f_back())

Definition at line 566 of file PY_CPythonAPI.h.

#define PY_PYFRAME_CODE ( op   )     ((op)->f_code())

Definition at line 567 of file PY_CPythonAPI.h.

#define PY_PyFunction_Check ( op   )     ((op)->ob_type() == &PY_PyFunction_Type())

Definition at line 553 of file PY_CPythonAPI.h.

#define PY_PyInt_Check ( op   )     PY_PyObject_TypeCheck(op, &PY_PyInt_Type())

Definition at line 516 of file PY_CPythonAPI.h.

#define PY_PyList_Check ( op   )     PY_PyObject_TypeCheck(op, &PY_PyList_Type())

Definition at line 551 of file PY_CPythonAPI.h.

#define PY_PyList_SET_ITEM ( op,
i,
v   )     (((PY_PyListObject *)(op))->ob_item()[i] = (v))

Definition at line 538 of file PY_CPythonAPI.h.

#define PY_PyLong_Check ( op   )     PY_PyObject_TypeCheck(op, &PY_PyLong_Type())

Definition at line 548 of file PY_CPythonAPI.h.

#define PY_PyMODINIT_FUNC   extern "C" SYS_VISIBILITY_EXPORT void

Definition at line 532 of file PY_CPythonAPI.h.

#define PY_PyObject_TypeCheck ( ob,
tp   )     ((ob)->ob_type() == (tp) || PY_PyType_IsSubtype((ob)->ob_type(), (tp)))

Definition at line 544 of file PY_CPythonAPI.h.

#define PY_PyRun_InteractiveLoop ( f,
p   )     PY_PyRun_InteractiveLoopFlags(f, p, NULL)

Definition at line 536 of file PY_CPythonAPI.h.

#define PY_PyRun_SimpleString ( s   )     PY_PyRun_SimpleStringFlags(s, NULL)

Definition at line 534 of file PY_CPythonAPI.h.

#define PY_PyString_Check ( op   )     PY_PyObject_TypeCheck(op, &PY_PyString_Type())

Definition at line 517 of file PY_CPythonAPI.h.

#define PY_PyTuple_Check ( op   )     PY_PyObject_TypeCheck(op, &PY_PyTuple_Type())

Definition at line 550 of file PY_CPythonAPI.h.

#define PY_PyTuple_SET_ITEM ( op,
i,
v   )     (((PY_PyTupleObject *)(op))->ob_item()[i] = (v))

Definition at line 540 of file PY_CPythonAPI.h.

#define PY_PyUnicode_Check ( op   )     PY_PyObject_TypeCheck(op, &PY_PyUnicode_Type())

Definition at line 549 of file PY_CPythonAPI.h.

#define PY_SEQ_ELEM_0 ( seq   )     BOOST_PP_SEQ_HEAD(seq)

Definition at line 224 of file PY_CPythonAPI.h.

#define PY_SEQ_ELEM_1 ( seq   )     BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq))

Definition at line 226 of file PY_CPythonAPI.h.

#define PY_SEQ_ELEM_2 ( seq   )     BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(BOOST_PP_SEQ_TAIL(seq)))

Definition at line 228 of file PY_CPythonAPI.h.

#define PY_WRAPPED_CONSTANTS

Value:

((_Py_NoneStruct)(PY_PyObject)) \
    ((_PyOS_ReadlineTState)(PY_PyThreadState *)) \
    ((_PyThreadState_Current)(PY_PyThreadState *)) \
    ((PyOS_ReadlineFunctionPointer)(PY_PyOS_ReadlineFunctionPointerType)) \
    ((PyExc_RuntimeError)(PY_PyObject *)) \
    ((PyExc_IndexError)(PY_PyObject *)) \
    ((PyExc_AttributeError)(PY_PyObject *)) \
    ((PyExc_TypeError)(PY_PyObject *)) \
    ((PyExc_KeyboardInterrupt)(PY_PyObject *)) \
    ((PyExc_SystemExit)(PY_PyObject *)) \
    ((PyExc_BaseException)(PY_PyObject *)) \
    ((PyLong_Type)(PY_PyTypeObject)) \
    ((PyFloat_Type)(PY_PyTypeObject)) \
    ((PyUnicode_Type)(PY_PyTypeObject)) \
    ((PyTuple_Type)(PY_PyTypeObject)) \
    ((PyList_Type)(PY_PyTypeObject)) \
    ((PyDict_Type)(PY_PyTypeObject)) \
    ((PyFunction_Type)(PY_PyTypeObject))

Definition at line 164 of file PY_CPythonAPI.h.

#define PY_WRAPPED_FUNCTIONS

Definition at line 74 of file PY_CPythonAPI.h.


Typedef Documentation

Definition at line 278 of file PY_CPythonAPI.h.

Definition at line 424 of file PY_CPythonAPI.h.

typedef int PY_PyGILState_STATE

Definition at line 265 of file PY_CPythonAPI.h.

typedef char*(* PY_PyOS_ReadlineFunctionPointerType)(FILE *, FILE *, char *)

Definition at line 163 of file PY_CPythonAPI.h.


Function Documentation

ob_size PY_PyFrameObject PY_PyCodeObject f_code PY_ADD_SUBCLASS_1 ( PY_PyListObject  ,
PY_PyVarObject  ,
PY_PyObject **  ,
ob_item   
)

Type Constraints

Definition at line 403 of file PY_CPythonAPI.h.

ob_size PY_ADD_SUBCLASS_1 ( PY_PyTypeObject  ,
PY_PyVarObject  ,
const char *  ,
tp_name   
)

Type Constraints

PY_ADD_SUBCLASS_2 ( PY_PyObject  ,
PY_PyObject_HEAD_EXTRA  ,
PY_Py_ssize_t  ,
ob_refcnt  ,
PY_PyTypeObject ,
ob_type   
)

PY_API PY_PyObject* PY_Py_BuildValue ( const char *  format,
  ... 
)

PY_API PY_PyObject* PY_Py_InitModule ( const char *  name,
PY_PyMethodDef methods 
)

PY_API int PY_PyArg_ParseTuple ( PY_PyObject args,
const char *  format,
  ... 
)

PY_API PY_PyObject* PY_PyObject_CallMethod ( PY_PyObject o,
const char *  name,
const char *  format,
  ... 
)

PY_API int PYgetPythonVersion (  ) 

PY_API bool PYisHFSPythonLibraryLoaded (  ) 

PY_API void PYloadPythonLibrary (  ) 


Variable Documentation

ob_size PY_PyFrameObject f_back

Definition at line 399 of file PY_CPythonAPI.h.

class PY_API PY_PyCodeObject

Definition at line 261 of file PY_CPythonAPI.h.

class PY_API PY_PyCompilerFlags

Definition at line 262 of file PY_CPythonAPI.h.

class PY_API PY_PyMethodDef

Definition at line 264 of file PY_CPythonAPI.h.

Examples:
HOM/ObjNode_setSelectable.C.

Definition at line 393 of file PY_CPythonAPI.h.

class PY_API PY_PyThreadState

Definition at line 263 of file PY_CPythonAPI.h.

class PY_API PY_PyTypeObject

Definition at line 260 of file PY_CPythonAPI.h.

ob_size PY_PyVarObject

Definition at line 399 of file PY_CPythonAPI.h.


Generated on Mon Jan 28 00:47:31 2013 for HDK by  doxygen 1.5.9