next up previous contents index
Next: 11.16.3 Exceptions Up: 11.16 Standard module xdrlib Previous: 11.16.1 Packer Objects

11.16.2 Unpacker Objects

Unpacker is the complementary class which unpacks XDR data values from a string buffer, and has the following methods:

__init__(data)
Instantiates an Unpacker object with the string buffer data.

reset(data)
Resets the string buffer with the given data.

get_position()
Returns the current unpack position in the data buffer.

set_position(position)
Sets the data buffer unpack position to position. You should be careful about using get_position() and set_position().

get_buffer()
Returns the current unpack data buffer as a string.

done()
Indicates unpack completion. Raises an xdrlib.Error exception if all of the data has not been unpacked.

In addition, every data type that can be packed with a Packer, can be unpacked with an Unpacker. Unpacking methods are of the form unpack_type, and take no arguments. They return the unpacked object. The same caveats apply for unpack_float and unpack_double as above.

unpack_float()
Unpacks a single-precision floating point number.

unpack_double()
Unpacks a double-precision floating point number, similarly to unpack_float.

In addition, the following methods unpack strings, bytes, and opaque data:

unpack_fstring(n)
Unpacks and returns a fixed length string. n is the number of characters expected. Padding with null bytes to guaranteed 4 byte alignment is assumed.

unpack_fopaque(n)
Unpacks and returns a fixed length opaque data stream, similarly to unpack_fstring.

unpack_string()
Unpacks and returns a variable length string. The length of the string is first unpacked as an unsigned integer, then the string data is unpacked with unpack_fstring.

unpack_opaque()
Unpacks and returns a variable length opaque data string, similarly to unpack_string.

unpack_bytes()
Unpacks and returns a variable length byte stream, similarly to unpack_string.

The following methods support unpacking arrays and lists:

unpack_list(unpack_item)
Unpacks and returns a list of homogeneous items. The list is unpacked one element at a time by first unpacking an unsigned integer flag. If the flag is 1, then the item is unpacked and appended to the list. A flag of 0 indicates the end of the list. unpack_item is the function that is called to unpack the items.

unpack_farray(n, unpack_item)
Unpacks and returns (as a list) a fixed length array of homogeneous items. n is number of list elements to expect in the buffer. As above, unpack_item is the function used to unpack each element.

unpack_array(unpack_item)
Unpacks and returns a variable length list of homogeneous items. First, the length of the list is unpacked as an unsigned integer, then each element is unpacked as in unpack_farray above.


next up previous contents index
Next: 11.16.3 Exceptions Up: 11.16 Standard module xdrlib Previous: 11.16.1 Packer Objects

guido@cnri.reston.va.us