blob: 03543aee38587b1a614c539954fe0128b43bd78a [file] [log] [blame]
Tim Peters6d6c1a32001-08-02 04:15:00 +00001/* XXX getter, setter, getsetlist and wrapperbase need 'Py'-prefixed names */
2
3typedef PyObject *(*getter)(PyObject *, void *);
4typedef int (*setter)(PyObject *, PyObject *, void *);
5
6struct getsetlist {
7 char *name;
8 getter get;
9 setter set;
10 void *closure;
11};
12
13typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args,
14 void *wrapped);
15
16struct wrapperbase {
17 char *name;
18 wrapperfunc wrapper;
19 char *doc;
20};
21
22extern DL_IMPORT(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *);
23extern DL_IMPORT(PyObject *) PyDescr_NewMember(PyTypeObject *,
24 struct memberlist *);
25extern DL_IMPORT(PyObject *) PyDescr_NewGetSet(PyTypeObject *,
26 struct getsetlist *);
27extern DL_IMPORT(PyObject *) PyDescr_NewWrapper(PyTypeObject *,
28 struct wrapperbase *, void *);
29extern DL_IMPORT(int) PyDescr_IsData(PyObject *);
30
31extern DL_IMPORT(PyObject *) PyDictProxy_New(PyObject *);
32extern DL_IMPORT(PyObject *) PyWrapper_New(PyObject *, PyObject *);
Guido van Rossum29a62dd2001-08-23 21:40:38 +000033
34
35extern DL_IMPORT(PyTypeObject) PyGetSet_Type;