403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/yandex.market/lib/data/run/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/yandex.market/lib/data/run/stepper.php
<?php
namespace Yandex\Market\Data\Run;

use Yandex\Market\Result;

class Stepper
{
	protected $steps;
	protected $resourceLimit;

	/** @param Step[] $steps */
	public function __construct(array $steps, ResourceLimit $resourceLimit = null)
	{
		$this->steps = $steps;
		$this->resourceLimit = $resourceLimit;
	}

	public function process($action, $interruptStep = null, $interruptOffset = null)
	{
		$result = new Result\StepProcessor();
		$started = false;
		$interrupted = false;

		$result->setTotal(count($this->steps));

		foreach ($this->steps as $step)
		{
			$name = $step->getName();

			if ($interruptStep === null || $interruptStep === '')
			{
				$justStarted = true;
				$started = true;
				$stepOffset = null;
			}
			else if ($interruptStep === $name)
			{
				$justStarted = true;
				$started = true;
				$stepOffset = $interruptOffset !== '' ? $interruptOffset : null;
			}
			else if (!$started)
			{
				$result->increaseProgress(1);
				continue;
			}
			else
			{
				$justStarted = false;
				$stepOffset = null;
			}

			if (!$justStarted && $this->resourceLimit !== null && $this->resourceLimit->isExpired())
			{
				$interrupted = true;

				$result->setStep($name);
				$result->setStepOffset($stepOffset);
				break;
			}

			if (!$step->validateAction($action))
			{
				$result->increaseProgress(1);
				continue;
			}

			$stepResult = $step->run($action, $stepOffset);

			if (!$stepResult->isFinished())
			{
				$interrupted = true;

				$result->setStep($name);
				$result->setStepOffset($stepResult->getOffset());
				$result->increaseProgress($stepResult->getProgressRatio());
				$result->setStepReadyCount($stepResult->getReadyCount());

				break;
			}

			$step->after($action);

			$result->increaseProgress(1);
		}

		if (!$interrupted)
		{
			$this->finalize($action);
		}

		return $result;
	}

	private function finalize($action)
	{
		foreach ($this->steps as $step)
		{
			if (!$step->validateAction($action)) { continue; }

			$step->finalize($action);
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit