diff options
author | Antoine Pitrou <antoine@python.org> | 2019-05-26 15:10:09 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-26 15:10:09 (GMT) |
commit | 91f4380cedbae32b49adbea2518014a5624c6523 (patch) | |
tree | fbc47b8ee756f9e0a8f6bacf6b055490f2ef9ab3 /Include/picklebufobject.h | |
parent | 22ccb0b4902137275960c008ef77b88fa82729ce (diff) | |
download | cpython-91f4380cedbae32b49adbea2518014a5624c6523.zip cpython-91f4380cedbae32b49adbea2518014a5624c6523.tar.gz cpython-91f4380cedbae32b49adbea2518014a5624c6523.tar.bz2 |
bpo-36785: PEP 574 implementation (GH-7076)
Diffstat (limited to 'Include/picklebufobject.h')
-rw-r--r-- | Include/picklebufobject.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Include/picklebufobject.h b/Include/picklebufobject.h new file mode 100644 index 0000000..f07e900 --- /dev/null +++ b/Include/picklebufobject.h @@ -0,0 +1,31 @@ +/* PickleBuffer object. This is built-in for ease of use from third-party + * C extensions. + */ + +#ifndef Py_PICKLEBUFOBJECT_H +#define Py_PICKLEBUFOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_LIMITED_API + +PyAPI_DATA(PyTypeObject) PyPickleBuffer_Type; + +#define PyPickleBuffer_Check(op) (Py_TYPE(op) == &PyPickleBuffer_Type) + +/* Create a PickleBuffer redirecting to the given buffer-enabled object */ +PyAPI_FUNC(PyObject *) PyPickleBuffer_FromObject(PyObject *); +/* Get the PickleBuffer's underlying view to the original object + * (NULL if released) + */ +PyAPI_FUNC(const Py_buffer *) PyPickleBuffer_GetBuffer(PyObject *); +/* Release the PickleBuffer. Returns 0 on success, -1 on error. */ +PyAPI_FUNC(int) PyPickleBuffer_Release(PyObject *); + +#endif /* !Py_LIMITED_API */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PICKLEBUFOBJECT_H */ |