NAME

OLE::Storage::Iolist - Data management for OLE::Storage::Io (alpha)

SYNOPSIS

use OLE::Storage::Iolist();

s.b.

DESCRIPTION

Note: OLE::Storage uses Iolists in conjuntion with Io interface for IO operations. An IO entry is a two element list like ($offset, $length).

aggregate

$NewIolist = $IoL -> aggregate ($method)

Sorts and merges Iolist $IoL, returns the new packed Iolist $NewIolist. Returns an empty Iolist on errors (!to be changed!). $method can be:

method	sort offsets	allow offset overlaps
1		yes		no
2		yes		yes
3		no		no
4		no		yes
append

($o1, $l1) == $IoL -> append ($o, $l)

Appends an entry to Iolist. Tries to merge the Iolists last entry with the new one. Returns the new last entry of Iolist.

entry

($o, $l) = $IoL -> entry ($i)

rval: Get entry number $i.

($o, $l) == $IoL -> entry ($i, $o, $l)

lval: Set entry number $i to ($o, $l). Returns this entry.

length

($l) = $IoL -> length ($i)

rval: Get length of entry number $i.

$l == $IoL -> length ($i, $l)

lval: Set length of entry number $i to $l. Returns $l.

max

$num = $IoL -> max ()

Returns number of $IoL's entries.

new

$IoL = new Iolist ([\@offset, \@length])

Iolist constructor. Returns an Iolist handle. Can be initialized with references to corresponding offset and length lists.

offset

($o) = $IoL -> offset ($i)

rval: Get offset of entry number $i.

$o == $IoL -> offset ($i, $o)

lval: Set offset of entry number $i to $o. Returns $o.

push

1 == $IoL -> push ($AnotherIolist)

Appends all entries of $AnotherIolist to $IoL.

sumlen

$length = $IoL -> sumlen ()

Returns total length of $IoL's entries.

SEE ALSO

OLE::Storage::Io

AUTHOR

Martin Schwartz <schwartz@cs.tu-berlin.de>