Path: blob/master/src/infrastructure/storage/lisk/PhabricatorQueryIterator.php
12241 views
<?php12final class PhabricatorQueryIterator extends PhutilBufferedIterator {34private $query;5private $pager;67public function __construct(PhabricatorCursorPagedPolicyAwareQuery $query) {8$this->query = $query;9}1011protected function didRewind() {12$pager = new AphrontCursorPagerView();1314$page_size = $this->getPageSize();15$pager->setPageSize($page_size);1617$this->pager = $pager;18}1920public function key() {21return $this->current()->getID();22}2324protected function loadPage() {25if (!$this->pager) {26return array();27}2829$pager = clone $this->pager;30$query = clone $this->query;3132$query->setDisableOverheating(true);3334$results = $query->executeWithCursorPager($pager);3536// If we got less than a full page of results, this was the last set of37// results. Throw away the pager so we end iteration.38if (!$pager->getHasMoreResults()) {39$this->pager = null;40} else {41$this->pager->setAfterID($pager->getNextPageID());42}4344return $results;45}4647}484950