helly Tue Nov 11 13:31:51 2003 EDT
Added files:
/spl/examples seekableiterator.inc
Modified files:
/spl/examples limititerator.inc
Log:
Add shortcut interface SeekableIterator to LimitIterator
Index: spl/examples/limititerator.inc
diff -u spl/examples/limititerator.inc:1.1 spl/examples/limititerator.inc:1.2
--- spl/examples/limititerator.inc:1.1 Sun Nov 9 09:05:36 2003
+++ spl/examples/limititerator.inc Tue Nov 11 13:31:50 2003
@@ -21,8 +21,12 @@
{
$this->it->rewind();
$this->index = 0;
- while($this->index < $this->offset && $this->it->hasMore()) {
- $this->next();
+ if (is_a($this->it, 'SeekableIterator')) {
+ $this->index = $this->it->seek($this->offset);
+ } else {
+ while($this->index < $this->offset && $this->it->hasMore()) {
+ $this->next();
+ }
}
}
Index: spl/examples/seekableiterator.inc
+++ spl/examples/seekableiterator.inc
<?php
class SeekableIterator implements Iterator
{
function seek($index) {
$this->rewind();
$position = 0;
while($position < $index && $this->it->hasMore()) {
$this->next();
$position++;
}
return $position;
}
}
?>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php