![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/symfony/lock/ |
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <[email protected]> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Lock; use Symfony\Component\Lock\Exception\UnserializableKeyException; /** * Key is a container for the state of the locks in stores. * * @author Jérémy Derussé <[email protected]> */ final class Key { private $resource; private $expiringTime; private $state = []; private $serializable = true; public function __construct(string $resource) { $this->resource = $resource; } public function __toString(): string { return $this->resource; } public function hasState(string $stateKey): bool { return isset($this->state[$stateKey]); } public function setState(string $stateKey, $state): void { $this->state[$stateKey] = $state; } public function removeState(string $stateKey): void { unset($this->state[$stateKey]); } public function getState(string $stateKey) { return $this->state[$stateKey]; } public function markUnserializable(): void { $this->serializable = false; } public function resetLifetime() { $this->expiringTime = null; } /** * @param float $ttl the expiration delay of locks in seconds */ public function reduceLifetime(float $ttl) { $newTime = microtime(true) + $ttl; if (null === $this->expiringTime || $this->expiringTime > $newTime) { $this->expiringTime = $newTime; } } /** * Returns the remaining lifetime in seconds. */ public function getRemainingLifetime(): ?float { return null === $this->expiringTime ? null : $this->expiringTime - microtime(true); } public function isExpired(): bool { return null !== $this->expiringTime && $this->expiringTime <= microtime(true); } public function __sleep(): array { if (!$this->serializable) { throw new UnserializableKeyException('The key cannot be serialized.'); } return ['resource', 'expiringTime', 'state']; } }