/**
* @param EncapsulatedPacket $packet
* @param int $flags
*/
public function addEncapsulatedToQueue(EncapsulatedPacket $packet, $flags = RakLib::PRIORITY_NORMAL)
{
if (($packet->needACK = ($flags & RakLib::FLAG_NEED_ACK) > 0) === \true) {
$this->needACK[$packet->identifierACK] = [];
}
if ($packet->reliability === 2 or $packet->reliability === 3 or $packet->reliability === 4 or $packet->reliability === 6 or $packet->reliability === 7) {
$packet->messageIndex = $this->messageIndex++;
if ($packet->reliability === 3) {
$packet->orderIndex = $this->channelIndex[$packet->orderChannel]++;
}
}
if ($packet->getTotalLength() + 4 > $this->mtuSize) {
$buffers = \str_split($packet->buffer, $this->mtuSize - 34);
$splitID = ++$this->splitID % 65536;
foreach ($buffers as $count => $buffer) {
$pk = new EncapsulatedPacket();
$pk->splitID = $splitID;
$pk->hasSplit = \true;
$pk->splitCount = \count($buffers);
$pk->reliability = $packet->reliability;
$pk->splitIndex = $count;
$pk->buffer = $buffer;
if ($count > 0) {
$pk->messageIndex = $this->messageIndex++;
} else {
$pk->messageIndex = $packet->messageIndex;
}
if ($pk->reliability === 3) {
$pk->orderChannel = $packet->orderChannel;
$pk->orderIndex = $packet->orderIndex;
}
$this->addToQueue($pk, $flags | RakLib::PRIORITY_IMMEDIATE);
}
} else {
$this->addToQueue($packet, $flags);
}
}