blob: f07e900bf26dacf2dfcc797495b245fa03df50be [file] [log] [blame]
Antoine Pitrou91f43802019-05-26 17:10:09 +02001/* PickleBuffer object. This is built-in for ease of use from third-party
2 * C extensions.
3 */
4
5#ifndef Py_PICKLEBUFOBJECT_H
6#define Py_PICKLEBUFOBJECT_H
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#ifndef Py_LIMITED_API
12
13PyAPI_DATA(PyTypeObject) PyPickleBuffer_Type;
14
15#define PyPickleBuffer_Check(op) (Py_TYPE(op) == &PyPickleBuffer_Type)
16
17/* Create a PickleBuffer redirecting to the given buffer-enabled object */
18PyAPI_FUNC(PyObject *) PyPickleBuffer_FromObject(PyObject *);
19/* Get the PickleBuffer's underlying view to the original object
20 * (NULL if released)
21 */
22PyAPI_FUNC(const Py_buffer *) PyPickleBuffer_GetBuffer(PyObject *);
23/* Release the PickleBuffer. Returns 0 on success, -1 on error. */
24PyAPI_FUNC(int) PyPickleBuffer_Release(PyObject *);
25
26#endif /* !Py_LIMITED_API */
27
28#ifdef __cplusplus
29}
30#endif
31#endif /* !Py_PICKLEBUFOBJECT_H */