Open Monograph Press  3.3.0
ChunkedIterator.php
1 <?php
2 
3 namespace Guzzle\Iterator;
4 
8 class ChunkedIterator extends \IteratorIterator
9 {
11  protected $chunkSize;
12 
14  protected $chunk;
15 
21  public function __construct(\Traversable $iterator, $chunkSize)
22  {
23  $chunkSize = (int) $chunkSize;
24  if ($chunkSize < 0 ) {
25  throw new \InvalidArgumentException("The chunk size must be equal or greater than zero; $chunkSize given");
26  }
27 
28  parent::__construct($iterator);
29  $this->chunkSize = $chunkSize;
30  }
31 
32  public function rewind()
33  {
34  parent::rewind();
35  $this->next();
36  }
37 
38  public function next()
39  {
40  $this->chunk = array();
41  for ($i = 0; $i < $this->chunkSize && parent::valid(); $i++) {
42  $this->chunk[] = parent::current();
43  parent::next();
44  }
45  }
46 
47  public function current()
48  {
49  return $this->chunk;
50  }
51 
52  public function valid()
53  {
54  return (bool) $this->chunk;
55  }
56 }
Guzzle\Iterator\ChunkedIterator\$chunk
$chunk
Definition: ChunkedIterator.php:20
Guzzle\Iterator\ChunkedIterator\valid
valid()
Definition: ChunkedIterator.php:58
Guzzle\Iterator\ChunkedIterator
Definition: ChunkedIterator.php:8
Guzzle\Iterator\ChunkedIterator\next
next()
Definition: ChunkedIterator.php:44
Guzzle\Iterator\ChunkedIterator\current
current()
Definition: ChunkedIterator.php:53
Guzzle\Iterator\ChunkedIterator\rewind
rewind()
Definition: ChunkedIterator.php:38
Guzzle\Iterator\ChunkedIterator\$chunkSize
$chunkSize
Definition: ChunkedIterator.php:14
Guzzle\Iterator
Definition: AppendIterator.php:3
Guzzle\Iterator\ChunkedIterator\__construct
__construct(\Traversable $iterator, $chunkSize)
Definition: ChunkedIterator.php:27