12.17.2 Unpacker オブジェクト
Unpacker クラスは以下のメソッドを提供します:
-
文字列バッファを data でリセットします。
-
データバッファ中の現在のアンパック処理位置を返します。
-
データバッファ中のアンパック処理位置を position に設定します。
get_position() および set_position() は注意して
使わなければなりません。
-
現在のアンパック処理用データバッファを文字列で返します。
-
アンパック処理を終了させます。全てのデータがまだアンパックされて
いなければ、例外 Error が送出されます。
上のメソッドに加えて、Packer でパック処理できるデータ型はいずれも
Unpacker でアンパック処理できます。アンパック処理メソッドは
unpack_type()
の形式をとり、引数をとりません。
これらのメソッドはアンパックされたデータオブジェクトを返します。
-
単精度の浮動小数点数をアンパックします。
-
unpack_float() と同様に、倍精度の浮動小数点数をアンパックします。
上のメソッドに加えて、文字列、バイト列、不透明データをアンパックする
以下のメソッドが提供されています:
-
固定長の文字列をアンパックして返します。n は予想される文字列の
長さです。4 バイトのアラインメントを保証するために null バイトによる
パディングが行われているものと仮定して処理を行います。
-
unpack_fstring() と同様に、固定長の不透明データストリームを
アンパックして返します。
-
可変長の文字列をアンパックして返します。最初に文字列の長さが符号無し
整数としてアンパックされ、次に unpack_fstring() を使って
文字列データがアンパックされます。
-
unpack_string() と同様に、可変長の不透明データ文字列をアンパック
して返します。
-
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() のようにしてアンパック処理されます。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。