4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\Process\Exception
;
14 use Symfony\Component\Process\Process
;
17 * Exception that is thrown when a process times out.
19 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
21 class ProcessTimedOutException
extends RuntimeException
23 const TYPE_GENERAL
= 1;
29 public function __construct(Process
$process, $timeoutType)
31 $this->process
= $process;
32 $this->timeoutType
= $timeoutType;
34 parent
::__construct(sprintf(
35 'The process "%s" exceeded the timeout of %s seconds.',
36 $process->getCommandLine(),
37 $this->getExceededTimeout()
41 public function getProcess()
43 return $this->process
;
46 public function isGeneralTimeout()
48 return $this->timeoutType
=== self
::TYPE_GENERAL
;
51 public function isIdleTimeout()
53 return $this->timeoutType
=== self
::TYPE_IDLE
;
56 public function getExceededTimeout()
58 switch ($this->timeoutType
) {
59 case self
::TYPE_GENERAL
:
60 return $this->process
->getTimeout();
63 return $this->process
->getIdleTimeout();
66 throw new \
LogicException(sprintf('Unknown timeout type "%d".', $this->timeoutType
));