food_server/vendor/php-mqtt/client/src/PendingMessage.php
tk 9ef6902c1d 【类 型】:fix
【主	题】:提交runing字段
【描	述】:
	[原因]:正则匹配 bind_route 添加runing字段 PS:对应取出bind_route的, 即分割符
	[过程]:
	[影响]:
【结	束】
2024-07-09 17:35:54 +08:00

77 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMqtt\Client;
use DateTime;
/**
* Represents a pending message.
*
* For messages with QoS 1 and 2 the client is responsible to resend the message if no
* acknowledgement is received from the broker within a given time period.
*
* This class serves as common base for message objects which need to be resent if no
* acknowledgement is received.
*
* @package PhpMqtt\Client
*/
abstract class PendingMessage
{
private int $sendingAttempts = 1;
private DateTime $lastSentAt;
/**
* Creates a new pending message object.
*/
protected function __construct(private int $messageId, DateTime $sentAt = null)
{
$this->lastSentAt = $sentAt ?? new DateTime();
}
/**
* Returns the message identifier.
*/
public function getMessageId(): int
{
return $this->messageId;
}
/**
* Returns the date time when the message was last sent.
*/
public function getLastSentAt(): DateTime
{
return $this->lastSentAt;
}
/**
* Returns the number of times the message has been sent.
*/
public function getSendingAttempts(): int
{
return $this->sendingAttempts;
}
/**
* Sets the date time when the message was last sent.
*/
public function setLastSentAt(DateTime $value = null): self
{
$this->lastSentAt = $value ?? new DateTime();
return $this;
}
/**
* Increments the sending attempts by one.
*/
public function incrementSendingAttempts(): self
{
$this->sendingAttempts++;
return $this;
}
}