blob: 0df2561dceaea04a9942b2aae18762dfc2fe806d [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
Dong-hee Nad212c3c2020-02-14 16:48:12 +090015#define PyPickleBuffer_Check(op) Py_IS_TYPE(op, &PyPickleBuffer_Type)
Antoine Pitrou91f43802019-05-26 17:10:09 +020016
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 */