public bool WriteUpdatePayload(IOutOctetStream octetStream) { var canSendUpdatePacket = tendOut.CanIncrementOutgoingSequence; pendingOutSequenceNumberUsed = false; if (canSendUpdatePacket) { outgoingSequenceNumber = outgoingSequenceNumber.Next(); pendingOutSequenceNumber = outgoingSequenceNumber; pendingOutSequenceNumberUsed = true; var tendSequenceId = tendOut.IncreaseOutgoingSequenceId(); WriteHeader(octetStream, NormalMode, outgoingSequenceNumber.Value, connectionId); TendSerializer.Serialize(octetStream, tendIn, tendOut); var now = monotonicClock.NowMilliseconds(); timestampedHistory.SentPacket(outgoingSequenceNumber, now, log); if (useDebugLogging) { log.Trace($"SendOneUpdatePacket: tendSeq{tendSequenceId}"); } return(true); } WritePing(octetStream); return(false); }
void WritePing(IOutOctetStream outStream) { var now = monotonicClock.NowMilliseconds(); var pingRequest = new PingRequestHeader(now); PingRequestHeaderSerializer.Serialize(outStream, pingRequest); TendSerializer.Serialize(outStream, tendIn, tendOut); }