diff options
author | Daryl McDaniel <edk2-lists@mc2research.org> | 2015-11-07 19:19:19 +0000 |
---|---|---|
committer | darylm503 <darylm503@Edk2> | 2015-11-07 19:19:19 +0000 |
commit | c8042e10763bca064df257547d04ae3dfcdfaf91 (patch) | |
tree | cd20b9a6bb3c646b05f42fd721dc7a791bcb75a2 /AppPkg/Applications/Python/Python-2.7.10/Include/cStringIO.h | |
parent | 3535213aaec279d84bae7da40a4b982ab9fdf89b (diff) | |
download | edk2-platforms-c8042e10763bca064df257547d04ae3dfcdfaf91.tar.xz |
AppPkg/Applications/Python/Python-2.7.10: Initial Checkin part 1/5.
The Include, Parser, and Python directories from the cPython 2.7.10 distribution.
These files are unchanged and set the baseline for subsequent commits.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Daryl McDaniel <edk2-lists@mc2research.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18737 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'AppPkg/Applications/Python/Python-2.7.10/Include/cStringIO.h')
-rw-r--r-- | AppPkg/Applications/Python/Python-2.7.10/Include/cStringIO.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/AppPkg/Applications/Python/Python-2.7.10/Include/cStringIO.h b/AppPkg/Applications/Python/Python-2.7.10/Include/cStringIO.h new file mode 100644 index 0000000000..391309a0ba --- /dev/null +++ b/AppPkg/Applications/Python/Python-2.7.10/Include/cStringIO.h @@ -0,0 +1,73 @@ +#ifndef Py_CSTRINGIO_H
+#define Py_CSTRINGIO_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+
+ This header provides access to cStringIO objects from C.
+ Functions are provided for calling cStringIO objects and
+ macros are provided for testing whether you have cStringIO
+ objects.
+
+ Before calling any of the functions or macros, you must initialize
+ the routines with:
+
+ PycString_IMPORT
+
+ This would typically be done in your init function.
+
+*/
+
+#define PycStringIO_CAPSULE_NAME "cStringIO.cStringIO_CAPI"
+
+#define PycString_IMPORT \
+ PycStringIO = ((struct PycStringIO_CAPI*)PyCapsule_Import(\
+ PycStringIO_CAPSULE_NAME, 0))
+
+/* Basic functions to manipulate cStringIO objects from C */
+
+static struct PycStringIO_CAPI {
+
+ /* Read a string from an input object. If the last argument
+ is -1, the remainder will be read.
+ */
+ int(*cread)(PyObject *, char **, Py_ssize_t);
+
+ /* Read a line from an input object. Returns the length of the read
+ line as an int and a pointer inside the object buffer as char** (so
+ the caller doesn't have to provide its own buffer as destination).
+ */
+ int(*creadline)(PyObject *, char **);
+
+ /* Write a string to an output object*/
+ int(*cwrite)(PyObject *, const char *, Py_ssize_t);
+
+ /* Get the output object as a Python string (returns new reference). */
+ PyObject *(*cgetvalue)(PyObject *);
+
+ /* Create a new output object */
+ PyObject *(*NewOutput)(int);
+
+ /* Create an input object from a Python string
+ (copies the Python string reference).
+ */
+ PyObject *(*NewInput)(PyObject *);
+
+ /* The Python types for cStringIO input and output objects.
+ Note that you can do input on an output object.
+ */
+ PyTypeObject *InputType, *OutputType;
+
+} *PycStringIO;
+
+/* These can be used to test if you have one */
+#define PycStringIO_InputCheck(O) \
+ (Py_TYPE(O)==PycStringIO->InputType)
+#define PycStringIO_OutputCheck(O) \
+ (Py_TYPE(O)==PycStringIO->OutputType)
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* !Py_CSTRINGIO_H */
|