withIncrementedHopCount method

SFMessage withIncrementedHopCount()

Create a copy with incremented hop count (for forwarding)

Implementation

SFMessage withIncrementedHopCount() {
  if (hopCount >= maxHopCount) {
    throw StateError('Cannot forward message: hop count limit reached');
  }

  return SFMessage(
    messageId: messageId,
    recipientPeerId: recipientPeerId,
    senderPeerId: senderPeerId,
    payload: payload,
    priority: priority,
    expiryTimestamp: expiryTimestamp,
    hopCount: hopCount + 1,
    flags: flags.withFlag(SFMessageFlags.forwarded),
    createdTimestamp: createdTimestamp,
    folderPath: folderPath,
    sequenceNumber: sequenceNumber,
    messageFlags: messageFlags,
    persistent: persistent,
  );
}