private void OnL3ConversationTrackingInactivityCheck(L3ConversationTrackingInactivityCheck inactivityCheck) { if (inactivityCheck.CurrentTimestampTicks <= this._lastActivityTimestampTicks + inactivityCheck.InactivityTimeoutTicks) { return; } this._logger.Debug($"Detected L3 conversation inactivity after {new TimeSpan(inactivityCheck.InactivityTimeoutTicks)}. Completing inactive L4 conversations ..."); this.UpdateCurrentTimestampAndCompleteInactiveL4Conversations(inactivityCheck.CurrentTimestampTicks); }
private void CheckL3ConversationsInactivity(Frame frame) { var currentTimestampTicks = frame.TimestampTicks; if (this._lastInactivityCheckTimestampTicks == 0) { // Set for first frame this._lastInactivityCheckTimestampTicks = currentTimestampTicks; return; } if (currentTimestampTicks <= this._lastInactivityCheckTimestampTicks + this._inactivityCheckIntervalTicks) { return; } this._lastInactivityCheckTimestampTicks = currentTimestampTicks; var inactivityCheckRequest = new L3ConversationTrackingInactivityCheck(currentTimestampTicks, this._inactivityTimeoutTicks); foreach (var l3ConversationActor in this._l3Conversations.Values) { l3ConversationActor.Tell(inactivityCheckRequest); } }