. */ namespace SP\DataModel\ItemPreset; use SP\Core\Exceptions\InvalidArgumentException; use SP\Http\Address; /** * Class SessionTimeout * * @package SP\DataModel\ItemPreset */ class SessionTimeout { /** * @var string */ private $address; /** * @var string */ private $mask; /** * @var int */ private $timeout; /** * SessionTimeout constructor. * * @param string $address IP address and/or mask * @param int $timeout Timeout in seconds * * @throws InvalidArgumentException */ public function __construct(string $address, int $timeout) { $parse = Address::parse4($address); $this->address = $parse['address']; $this->timeout = $timeout; $this->setMask($parse); } /** * @param array $parse */ private function setMask(array $parse) { if (isset($parse['cidr'])) { $this->mask = Address::cidrToDec($parse['cidr']); } elseif (isset($parse['mask'])) { $this->mask = $parse['mask']; } else { $this->mask = '255.255.255.255'; } } /** * @return string */ public function getAddress(): string { return $this->address; } /** * @return string */ public function getMask(): string { return $this->mask; } /** * @return int */ public function getTimeout(): int { return $this->timeout; } }