scratch – Blame information for rev 115

Subversion Repositories:
Rev:
Rev Author Line No. Line
115 office 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 $this->timeoutType === self::TYPE_GENERAL;
49 }
50  
51 public function isIdleTimeout()
52 {
53 return $this->timeoutType === self::TYPE_IDLE;
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 }