memoryview オブジェクト
***********************

"memoryview" オブジェクトは、他のオブジェクトと同じように扱える Python
オブジェクトの形をした C 言語レベルの バッファのインターフェース です
。

PyObject *PyMemoryView_FromObject(PyObject *obj)

   バッファインタフェースを提供するオブジェクトからmemoryview オブジェ
   クトを生成します。もし *obj* が書き込み可能なバッファのエクスポート
   をサポートするなら、その memoryview オブジェクトは読み書き可能です
   。そうでなければ読出しのみになるか、エクスポーターの分別にもとづい
   て読み書きが可能となります。

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)

   *mem* を配下のバッファとしてmemoryview オブジェクトを作成します。
   *flags* は "PyBUF_READ" か "PyBUF_WRITE" のどちらかになります。

   バージョン 3.3 で追加.

PyObject *PyMemoryView_FromBuffer(Py_buffer *view)

   *view* として与えられたバッファ構造をラップする memoryview オブジェ
   クトを作成します。単なるバイトバッファ向けには、
   "PyMemoryView_FromMemory()" のほうが望ましいです。

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)

   buffer インタフェースを定義しているオブジェクトから ('C' か
   'F'ortran の *order* で) 連続した (*contiguous*) メモリチャンクへの
   memoryview オブジェクトを作ります。メモリが連続している場合、
   memoryview オブジェクトは元のメモリを参照します。それ以外の場合、メ
   モリはコピーされて、 memoryview オブジェクトは新しい bytes オブジェ
   クトを参照します。

int PyMemoryView_Check(PyObject *obj)

   *obj* が memoryview オブジェクトの場合に真を返します。現在のところ
   、 "memoryview" のサブクラスの作成は許可されていません。

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

   書きだされたバッファーの memoryview のプライベート コピーに、ポイン
   ターを返します。 *mview* は  memoryview インスタンスでなければなり
   ません; このマクロは型をチェックしないので自前で型チェックしなけれ
   ばならず、それを怠るとクラッシュする恐れがあります。

Py_buffer *PyMemoryView_GET_BASE(PyObject *mview)

   memoryview をエクスポートしているオブジェクトへのポインタを返します
   。 memoryview が "PyMemoryView_FromMemory()" か
   "PyMemoryView_FromBuffer()" のどちらかで作成されていた場合、 *NULL*
   を返します。
