ਪਿਕਲ ਬਫਰ ਆਬਜੈਕਟ

Added in version 3.8.

ਇੱਕ pickle.PickleBuffer ਆਬਜੈਕਟ, buffer-providing object ਨੂੰ pickle ਮੋਡੀਊਲ ਨਾਲ out-of-band ਡਾਟਾ ਟ੍ਰਾਂਸਫ਼ਰ ਲਈ ਲਪੇਟਦਾ ਹੈ।

PyTypeObject PyPickleBuffer_Type

PyTypeObject ਦਾ ਇਹ ਇੰਸਟੈਂਸ Python ਦੇ pickle buffer ਕਿਸਮ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ Python ਲੇਅਰ ਵਿੱਚ pickle.PickleBuffer ਵਾਲਾ ਹੀ ਆਬਜੈਕਟ ਹੈ।

int PyPickleBuffer_Check(PyObject *op)

ਜੇ op ਇੱਕ pickle buffer ਇੰਸਟੈਂਸ ਹੈ ਤਾਂ true ਵਾਪਸ ਕਰੋ। ਇਹ ਫੰਕਸ਼ਨ ਹਮੇਸ਼ਾਂ ਸਫਲ ਹੁੰਦਾ ਹੈ।

PyObject *PyPickleBuffer_FromObject(PyObject *obj)

ਆਬਜੈਕਟ obj ਤੋਂ ਇੱਕ pickle buffer ਬਣਾਓ।

ਜੇ obj buffer protocol ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ, ਤਾਂ ਇਹ ਫੰਕਸ਼ਨ ਅਸਫਲ ਹੋ ਜਾਵੇਗਾ।

ਸਫਲ ਹੋਣ 'ਤੇ, ਇੱਕ ਨਵਾਂ pickle buffer ਇੰਸਟੈਂਸ ਵਾਪਸ ਕਰੋ। ਅਸਫਲ ਹੋਣ 'ਤੇ, ਇੱਕ ਅਪਵਾਦ ਸੈੱਟ ਕਰੋ ਅਤੇ NULL ਵਾਪਸ ਕਰੋ।

ਇਹ Python ਵਿੱਚ obj ਨਾਲ pickle.PickleBuffer ਨੂੰ ਕਾਲ ਕਰਨ ਦੇ ਸਮਾਨ ਹੈ।

const Py_buffer *PyPickleBuffer_GetBuffer(PyObject *picklebuf)

pickle buffer ਦੁਆਰਾ ਲਪੇਟੇ ਗਏ ਅੰਦਰੂਨੀ Py_buffer ਲਈ ਇੱਕ ਪੁਆਇੰਟਰ ਪ੍ਰਾਪਤ ਕਰੋ।

ਜਦੋਂ ਤੱਕ picklebuf ਜੀਵਿਤ ਹੈ ਅਤੇ ਜਾਰੀ ਨਹੀਂ ਕੀਤਾ ਗਿਆ, ਤਦ ਤੱਕ ਵਾਪਸ ਕੀਤਾ ਗਿਆ ਪੁਆਇੰਟਰ ਵੈਧ ਰਹਿੰਦਾ ਹੈ। ਕਾਲਰ ਨੂੰ ਵਾਪਸ ਕੀਤੇ ਗਏ Py_buffer ਵਿੱਚ ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ ਕਰਨੀ ਚਾਹੀਦੀ ਅਤੇ ਨਾ ਹੀ ਇਸ ਨੂੰ ਮੁਕਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਜੇ pickle buffer ਜਾਰੀ ਕੀਤਾ ਜਾ ਚੁੱਕਾ ਹੈ, ਤਾਂ ValueError ਪੈਦਾ ਕਰੋ।

ਸਫਲ ਹੋਣ 'ਤੇ, ਬਫ਼ਰ ਦ੍ਰਿਸ਼ ਲਈ ਇੱਕ ਪੁਆਇੰਟਰ ਵਾਪਸ ਕਰੋ। ਅਸਫਲ ਹੋਣ 'ਤੇ, ਇੱਕ ਅਪਵਾਦ ਸੈੱਟ ਕਰੋ ਅਤੇ NULL ਵਾਪਸ ਕਰੋ।

int PyPickleBuffer_Release(PyObject *picklebuf)

pickle buffer ਦੁਆਰਾ ਰੱਖੇ ਗਏ ਅੰਦਰੂਨੀ ਬਫ਼ਰ ਨੂੰ ਜਾਰੀ ਕਰੋ।

ਸਫਲ ਹੋਣ 'ਤੇ 0 ਵਾਪਸ ਕਰੋ। ਅਸਫਲ ਹੋਣ 'ਤੇ, ਇੱਕ ਅਪਵਾਦ ਸੈੱਟ ਕਰੋ ਅਤੇ -1 ਵਾਪਸ ਕਰੋ।

ਇਹ Python ਵਿੱਚ pickle.PickleBuffer.release() ਨੂੰ ਕਾਲ ਕਰਨ ਦੇ ਸਮਾਨ ਹੈ।