2016-05-24 14:10:39 +02:00
|
|
|
<?php namespace Moserware\Skills\FactorGraphs;
|
|
|
|
|
|
|
|
class ScheduleLoop extends Schedule
|
|
|
|
{
|
|
|
|
private $_maxDelta;
|
|
|
|
private $_scheduleToLoop;
|
|
|
|
|
2016-05-24 16:31:21 +02:00
|
|
|
public function __construct($name, Schedule $scheduleToLoop, $maxDelta)
|
2016-05-24 14:10:39 +02:00
|
|
|
{
|
|
|
|
parent::__construct($name);
|
|
|
|
$this->_scheduleToLoop = $scheduleToLoop;
|
|
|
|
$this->_maxDelta = $maxDelta;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function visit($depth = -1, $maxDepth = 0)
|
|
|
|
{
|
|
|
|
$totalIterations = 1;
|
|
|
|
$delta = $this->_scheduleToLoop->visit($depth + 1, $maxDepth);
|
|
|
|
while ($delta > $this->_maxDelta) {
|
|
|
|
$delta = $this->_scheduleToLoop->visit($depth + 1, $maxDepth);
|
|
|
|
$totalIterations++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $delta;
|
|
|
|
}
|
|
|
|
}
|