equal
deleted
inserted
replaced
|
1 |
|
2 /* Generator object interface */ |
|
3 |
|
4 #ifndef Py_GENOBJECT_H |
|
5 #define Py_GENOBJECT_H |
|
6 #ifdef __cplusplus |
|
7 extern "C" { |
|
8 #endif |
|
9 |
|
10 struct _frame; /* Avoid including frameobject.h */ |
|
11 |
|
12 typedef struct { |
|
13 PyObject_HEAD |
|
14 /* The gi_ prefix is intended to remind of generator-iterator. */ |
|
15 |
|
16 /* Note: gi_frame can be NULL if the generator is "finished" */ |
|
17 struct _frame *gi_frame; |
|
18 |
|
19 /* True if generator is being executed. */ |
|
20 int gi_running; |
|
21 |
|
22 /* The code object backing the generator */ |
|
23 PyObject *gi_code; |
|
24 |
|
25 /* List of weak reference. */ |
|
26 PyObject *gi_weakreflist; |
|
27 } PyGenObject; |
|
28 |
|
29 PyAPI_DATA(PyTypeObject) PyGen_Type; |
|
30 |
|
31 #define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type) |
|
32 #define PyGen_CheckExact(op) (Py_TYPE(op) == &PyGen_Type) |
|
33 |
|
34 PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *); |
|
35 PyAPI_FUNC(int) PyGen_NeedsFinalizing(PyGenObject *); |
|
36 |
|
37 #ifdef __cplusplus |
|
38 } |
|
39 #endif |
|
40 #endif /* !Py_GENOBJECT_H */ |