pickle バッファオブジェクト

Added in version 3.8.

pickle.PickleBuffer オブジェクトは、pickle モジュールで帯域外データ転送を行うために、バッファを提供するオブジェクト を包みます。

PyTypeObject PyPickleBuffer_Type

この PyTypeObject のインスタンスは Python の pickle バッファ型を表します。 Python レベルの pickle.PickleBuffer と同じオブジェクトです。

int PyPickleBuffer_Check(PyObject *op)

op が pickle バッファのインスタンスなら真を返します。 この関数は常に成功します。

PyObject *PyPickleBuffer_FromObject(PyObject *obj)

オブジェクト obj から pickle バッファを作成します。

obj が バッファプロトコル をサポートしない場合、この関数は失敗します。

成功すると、新しい pickle バッファのインスタンスを返します。 失敗すると、例外を設定して NULL を返します。

Python で obj を引数に pickle.PickleBuffer を呼び出すことに相当します。

const Py_buffer *PyPickleBuffer_GetBuffer(PyObject *picklebuf)

pickle バッファが包む、基となる Py_buffer へのポインタを取得します。

返されたポインタは、picklebuf が生存し、解放されていない限り有効です。 呼び出し側は、返された Py_buffer を変更したり解放したりしてはなりません。 pickle バッファが解放済みの場合は ValueError を送出します。

成功すると、バッファビューへのポインタを返します。 失敗すると、例外を設定して NULL を返します。

int PyPickleBuffer_Release(PyObject *picklebuf)

pickle バッファが保持する、基となるバッファを解放します。

成功すると 0 を返します。 失敗すると、例外を設定して -1 を返します。

Python で pickle.PickleBuffer.release() を呼び出すことに相当します。