/google_api/IO/Exception.php

  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. class Google_IO_Exception extends Google_Exception implements Google_Task_Retryable 
  22. /** 
  23. * @var array $retryMap Map of errors with retry counts. 
  24. */ 
  25. private $retryMap = array(); 
  26.  
  27. /** 
  28. * Creates a new IO exception with an optional retry map. 
  29. * 
  30. * @param string $message 
  31. * @param int $code 
  32. * @param Exception|null $previous 
  33. * @param array|null $retryMap Map of errors with retry counts. 
  34. */ 
  35. public function __construct( 
  36. $message,  
  37. $code = 0,  
  38. Exception $previous = null,  
  39. array $retryMap = null 
  40. ) { 
  41. if (version_compare(PHP_VERSION, '5.3.0') >= 0) { 
  42. parent::__construct($message, $code, $previous); 
  43. } else { 
  44. parent::__construct($message, $code); 
  45.  
  46. if (is_array($retryMap)) { 
  47. $this->retryMap = $retryMap; 
  48.  
  49. /** 
  50. * Gets the number of times the associated task can be retried. 
  51. * 
  52. * NOTE: -1 is returned if the task can be retried indefinitely 
  53. * 
  54. * @return integer 
  55. */ 
  56. public function allowedRetries() 
  57. if (isset($this->retryMap[$this->code])) { 
  58. return $this->retryMap[$this->code]; 
  59.  
  60. return 0; 
.