- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/bitrix24disk/legacy/newdiskstorage.php
- Класс: BitrixDiskBitrix24DiskLegacyNewDiskStorage
- Вызов: NewDiskStorage::workFromState
protected function workFromState(PageState $pageState, FixedArray $items, PageState &$newPageState, $internalVersion)
{
foreach($this->getStepSlice($pageState->getStep()) as $stepName => $stepData)
{
$this->runStep($stepName, array(
$items, $newPageState, $internalVersion, $this::SNAPSHOT_PAGE_SIZE - $items->getCountOfPushedElements()
));
if($items->getCountOfPushedElements() === self::SNAPSHOT_PAGE_SIZE && ($newPageState->hasCursor() ||$newPageState->hasNextId()))
{
//same step, next page
return;
}
$nextStep = $this->getNextStep($stepName);
if($nextStep)
{
//next step, first page
$newPageState->setStep(key($nextStep));
}
if($items->getCountOfPushedElements() === self::SNAPSHOT_PAGE_SIZE && $nextStep)
{
return;
}
}
//last page
$newPageState = null;
return;
}