• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/transport/countlimiter.php
  • Класс: Bitrix\Sender\Transport\CountLimiter
  • Вызов: CountLimiter::inc
public function inc($amount = 1)
{
	if ($this->getTimestamp())
	{
		$isNewPeriod = ($this->getCurrentTimestamp() - $this->getTimestamp()) >= $this->interval;
	}
	else
	{
		$isNewPeriod = true;
	}


	if ($isNewPeriod)
	{
		$this->setCurrent(0);
		$this->setTimestamp($this->getCurrentTimestamp());
	}

	$current = $this->getCurrent() + $amount;
	if ($current >= $this->getLimit())
	{
		throw new SystemException(Loc::getMessage(
			'SENDER_TRANSPORT_COUNT_LIMIT_EXCEEDED',
			array('%limit%' => $this->getLimit(), '%unit%' => $this->getUnitName())
		));
	}

	if (!$isNewPeriod)
	{
		$this->setCurrent($current);
	}

	return $this;
}