| Viewing file:  descrobject.h (1.6 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
#ifndef Py_CPYTHON_DESCROBJECT_H#  error "this header file must not be included directly"
 #endif
 
 typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args,
 void *wrapped);
 
 typedef PyObject *(*wrapperfunc_kwds)(PyObject *self, PyObject *args,
 void *wrapped, PyObject *kwds);
 
 struct wrapperbase {
 const char *name;
 int offset;
 void *function;
 wrapperfunc wrapper;
 const char *doc;
 int flags;
 PyObject *name_strobj;
 };
 
 /* Flags for above struct */
 #define PyWrapperFlag_KEYWORDS 1 /* wrapper function takes keyword args */
 
 /* Various kinds of descriptor objects */
 
 typedef struct {
 PyObject_HEAD
 PyTypeObject *d_type;
 PyObject *d_name;
 PyObject *d_qualname;
 } PyDescrObject;
 
 #define PyDescr_COMMON PyDescrObject d_common
 
 #define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type)
 #define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name)
 
 typedef struct {
 PyDescr_COMMON;
 PyMethodDef *d_method;
 vectorcallfunc vectorcall;
 } PyMethodDescrObject;
 
 typedef struct {
 PyDescr_COMMON;
 PyMemberDef *d_member;
 } PyMemberDescrObject;
 
 typedef struct {
 PyDescr_COMMON;
 PyGetSetDef *d_getset;
 } PyGetSetDescrObject;
 
 typedef struct {
 PyDescr_COMMON;
 struct wrapperbase *d_base;
 void *d_wrapped; /* This can be any function pointer */
 } PyWrapperDescrObject;
 
 PyAPI_DATA(PyTypeObject) _PyMethodWrapper_Type;
 
 PyAPI_FUNC(PyObject *) PyDescr_NewWrapper(PyTypeObject *,
 struct wrapperbase *, void *);
 PyAPI_FUNC(int) PyDescr_IsData(PyObject *);
 
 |