summaryrefslogtreecommitdiff
path: root/include/python2.7/genobject.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/python2.7/genobject.h')
-rw-r--r--include/python2.7/genobject.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/python2.7/genobject.h b/include/python2.7/genobject.h
new file mode 100644
index 0000000..135561b
--- /dev/null
+++ b/include/python2.7/genobject.h
@@ -0,0 +1,40 @@
+
+/* Generator object interface */
+
+#ifndef Py_GENOBJECT_H
+#define Py_GENOBJECT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct _frame; /* Avoid including frameobject.h */
+
+typedef struct {
+ PyObject_HEAD
+ /* The gi_ prefix is intended to remind of generator-iterator. */
+
+ /* Note: gi_frame can be NULL if the generator is "finished" */
+ struct _frame *gi_frame;
+
+ /* True if generator is being executed. */
+ int gi_running;
+
+ /* The code object backing the generator */
+ PyObject *gi_code;
+
+ /* List of weak reference. */
+ PyObject *gi_weakreflist;
+} PyGenObject;
+
+PyAPI_DATA(PyTypeObject) PyGen_Type;
+
+#define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type)
+#define PyGen_CheckExact(op) (Py_TYPE(op) == &PyGen_Type)
+
+PyAPI_FUNC(PyObject *) PyGen_New(struct _frame *);
+PyAPI_FUNC(int) PyGen_NeedsFinalizing(PyGenObject *);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_GENOBJECT_H */