add Joe
[python.git] / Include / genobject.h
blob135561b701b025804016c6bf0c181e013214ff1d
2 /* Generator object interface */
4 #ifndef Py_GENOBJECT_H
5 #define Py_GENOBJECT_H
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
10 struct _frame; /* Avoid including frameobject.h */
12 typedef struct {
13 PyObject_HEAD
14 /* The gi_ prefix is intended to remind of generator-iterator. */
16 /* Note: gi_frame can be NULL if the generator is "finished" */
17 struct _frame *gi_frame;
19 /* True if generator is being executed. */
20 int gi_running;
22 /* The code object backing the generator */
23 PyObject *gi_code;
25 /* List of weak reference. */
26 PyObject *gi_weakreflist;
27 } PyGenObject;
29 PyAPI_DATA(PyTypeObject) PyGen_Type;
31 #define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type)
32 #define PyGen_CheckExact(op) (Py_TYPE(op) == &PyGen_Type)
34 PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *);
35 PyAPI_FUNC(int) PyGen_NeedsFinalizing(PyGenObject *);
37 #ifdef __cplusplus
39 #endif
40 #endif /* !Py_GENOBJECT_H */