blob: 1ecd7ad773c46107dacf1264e4674ae210c7ca7c [file] [log] [blame]
Martin v. Löwise440e472004-06-01 15:22:42 +00001
2/* Generator object interface */
3
4#ifndef Py_GENOBJECT_H
5#define Py_GENOBJECT_H
6#ifdef __cplusplus
7extern "C" {
8#endif
9
Martin v. Löwis8d97e332004-06-27 15:43:12 +000010struct _frame; /* Avoid including frameobject.h */
11
Martin v. Löwise440e472004-06-01 15:22:42 +000012typedef struct {
13 PyObject_HEAD
14 /* The gi_ prefix is intended to remind of generator-iterator. */
15
Martin v. Löwis8d97e332004-06-27 15:43:12 +000016 struct _frame *gi_frame;
Martin v. Löwise440e472004-06-01 15:22:42 +000017
18 /* True if generator is being executed. */
19 int gi_running;
20
21 /* List of weak reference. */
22 PyObject *gi_weakreflist;
23} PyGenObject;
24
25PyAPI_DATA(PyTypeObject) PyGen_Type;
26
27#define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type)
28#define PyGen_CheckExact(op) ((op)->ob_type == &PyGen_Type)
29
Martin v. Löwis8d97e332004-06-27 15:43:12 +000030PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *);
Phillip J. Eby2ba96612006-04-10 17:51:05 +000031PyAPI_FUNC(int) PyGen_NeedsFinalizing(PyGenObject *);
Martin v. Löwise440e472004-06-01 15:22:42 +000032
33#ifdef __cplusplus
34}
35#endif
36#endif /* !Py_GENOBJECT_H */