PluginProbe
UpStream: a Project Management Plugin for WordPress / trunk
UpStream: a Project Management Plugin for WordPress vtrunk
trunk 1.39.0 1.39.1 1.39.2 1.39.3 2.0.7 2.1.0
upstream / vendor / symfony / process / Exception / ProcessTimedOutException.php

ProcessTimedOutException.php in UpStream: a Project Management Plugin for WordPress trunk, at vendor/symfony/process/Exception/ProcessTimedOutException.php

70 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Symfony\Component\Process\Exception;
13
14 use Symfony\Component\Process\Process;
15
16 /**
17 * Exception that is thrown when a process times out.
18 *
19 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
20 */
21 class ProcessTimedOutException extends RuntimeException
22 {
23 const TYPE_GENERAL = 1;
24 const TYPE_IDLE = 2;
25
26 private $process;
27 private $timeoutType;
28
29 public function __construct(Process $process, $timeoutType)
30 {
31 $this->process = $process;
32 $this->timeoutType = $timeoutType;
33
34 parent::__construct(sprintf(
35 'The process "%s" exceeded the timeout of %s seconds.',
36 $process->getCommandLine(),
37 $this->getExceededTimeout()
38 ));
39 }
40
41 public function getProcess()
42 {
43 return $this->process;
44 }
45
46 public function isGeneralTimeout()
47 {
48 return self::TYPE_GENERAL === $this->timeoutType;
49 }
50
51 public function isIdleTimeout()
52 {
53 return self::TYPE_IDLE === $this->timeoutType;
54 }
55
56 public function getExceededTimeout()
57 {
58 switch ($this->timeoutType) {
59 case self::TYPE_GENERAL:
60 return $this->process->getTimeout();
61
62 case self::TYPE_IDLE:
63 return $this->process->getIdleTimeout();
64
65 default:
66 throw new \LogicException(sprintf('Unknown timeout type "%d".', $this->timeoutType));
67 }
68 }
69 }
70