OLE::Storage::Iolist - Data management for OLE::Storage::Io


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

the OLE::Storage::Io manpage


AUTHOR

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

 OLE::Storage::Iolist - Data management for OLE::Storage::Io