12.17.2 Unpacker オブジェクト

Unpacker クラスは以下のメソッドを提供します:

reset( data)
文字列バッファを data でリセットします。

get_position( )
データバッファ中の現在のアンパック処理位置を返します。

set_position( position)
データバッファ中のアンパック処理位置を position に設定します。 get_position() および set_position() は注意して 使わなければなりません。

get_buffer( )
現在のアンパック処理用データバッファを文字列で返します。

done( )
アンパック処理を終了させます。全てのデータがまだアンパックされて いなければ、例外 Error が送出されます。

上のメソッドに加えて、Packer でパック処理できるデータ型はいずれも Unpacker でアンパック処理できます。アンパック処理メソッドは unpack_type() の形式をとり、引数をとりません。 これらのメソッドはアンパックされたデータオブジェクトを返します。

unpack_float( )
単精度の浮動小数点数をアンパックします。

unpack_double( )
unpack_float() と同様に、倍精度の浮動小数点数をアンパックします。

上のメソッドに加えて、文字列、バイト列、不透明データをアンパックする 以下のメソッドが提供されています:

unpack_fstring( n)
固定長の文字列をアンパックして返します。n は予想される文字列の 長さです。4 バイトのアラインメントを保証するために null バイトによる パディングが行われているものと仮定して処理を行います。

unpack_fopaque( n)
unpack_fstring() と同様に、固定長の不透明データストリームを アンパックして返します。

unpack_string( )
可変長の文字列をアンパックして返します。最初に文字列の長さが符号無し 整数としてアンパックされ、次に unpack_fstring() を使って 文字列データがアンパックされます。

unpack_opaque( )
unpack_string() と同様に、可変長の不透明データ文字列をアンパック して返します。

unpack_bytes( )
unpack_string() と同様に、可変長のバイトストリームをアンパック して返します。

以下メソッドはアレイおよびリストのアンパック処理をサポートします。

unpack_list( unpack_item)
一様な項目からなるリストをアンパック処理してかえします。リストは 一度に 1 要素づつアンパック処理されます、まず符号無し整数によるフラグ がアンパックされます。もしフラグが 1 なら、要素はアンパックされ、 返り値のリストに追加されます。フラグが 0 であれば、リストの終端 を示します。 unpack_item は個々の項目をアンパック処理するために 呼び出される関数です。

unpack_farray( n, unpack_item)
一様な項目からなる固定長のアレイをアンパックして(リストとして)返します。 n はバッファ内に存在すると期待されるリストの要素数です。 上と同様に、 unpack_item は各要素をアンパックするために使われる 関数です。

unpack_array( unpack_item)
一様な項目からなる可変長の list をアンパックして返します。 まず、リストの長さが符号無し整数としてアンパックされ、続いて各要素が 上の unpack_farray() のようにしてアンパック処理されます。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。