Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
/*
3
 * Copyright 2013 Google Inc.
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at
8
 *
9
 *     http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
 
18
if (!class_exists('Google_Client')) {
19
  require_once dirname(__FILE__) . '/../autoload.php';
20
}
21
 
22
#[AllowDynamicProperties]
23
class Google_IO_Exception extends Google_Exception implements Google_Task_Retryable
24
{
25
  /**
26
   * @var array $retryMap Map of errors with retry counts.
27
   */
28
  private $retryMap = array();
29
 
30
  /**
31
   * Creates a new IO exception with an optional retry map.
32
   *
33
   * @param string $message
34
   * @param int $code
35
   * @param Exception|null $previous
36
   * @param array|null $retryMap Map of errors with retry counts.
37
   */
38
  public function __construct(
39
      $message,
40
      $code = 0,
41
      Exception $previous = null,
42
      array $retryMap = null
43
  ) {
44
    if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
45
      parent::__construct($message, $code, $previous);
46
    } else {
47
      parent::__construct($message, $code);
48
    }
49
 
50
    if (is_array($retryMap)) {
51
      $this->retryMap = $retryMap;
52
    }
53
  }
54
 
55
  /**
56
   * Gets the number of times the associated task can be retried.
57
   *
58
   * NOTE: -1 is returned if the task can be retried indefinitely
59
   *
60
   * @return integer
61
   */
62
  public function allowedRetries()
63
  {
64
    if (isset($this->retryMap[$this->code])) {
65
      return $this->retryMap[$this->code];
66
    }
67
 
68
    return 0;
69
  }
70
}