Blame view

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