blob: f4226ede420aa221ff3e3da0f339d4f0ed4d4b09 [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 *);
Martin v. Löwise440e472004-06-01 15:22:42 +000031
32#ifdef __cplusplus
33}
34#endif
35#endif /* !Py_GENOBJECT_H */