diff options
Diffstat (limited to 'ext/spl/internal/seekableiterator.inc')
-rw-r--r-- | ext/spl/internal/seekableiterator.inc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/ext/spl/internal/seekableiterator.inc b/ext/spl/internal/seekableiterator.inc new file mode 100644 index 0000000..b4f66bd --- /dev/null +++ b/ext/spl/internal/seekableiterator.inc @@ -0,0 +1,48 @@ +<?php + +/** @file seekableiterator.inc + * @ingroup SPL + * @brief class SeekableIterator + * @author Marcus Boerger + * @date 2003 - 2009 + * + * SPL - Standard PHP Library + */ + +/** @brief seekable iterator + * @author Marcus Boerger + * @version 1.0 + * @since PHP 5.0 + * + * Turns a normal iterator ino a seekable iterator. When there is a way + * to seek on an iterator LimitIterator can use this to efficiently rewind + * to offset. + */ +interface SeekableIterator extends Iterator +{ + /** Seek to an absolute position + * + * \param $index position to seek to + * \return void + * + * The method should throw an exception if it is not possible to seek to + * the given position. Typically this exception should be of type + * OutOfBoundsException. + \code + function seek($index); + $this->rewind(); + $position = 0; + while($position < $index && $this->valid()) { + $this->next(); + $position++; + } + if (!$this->valid()) { + throw new OutOfBoundsException('Invalid seek position'); + } + } + \endcode + */ + function seek($index); +} + +?>
\ No newline at end of file |