private void OnSignalDispatch(ASignal signal) { var signalLogItem = new SignalLogItem(signal); log.Add(signalLogItem); lastDispatch[signalLogItem.SignalType] = signalLogItem; if (OnNewSignalLog != null) { OnNewSignalLog(signalLogItem); } }
public bool UpdateLog(Type type, ref List <SignalLogItem> signalLog) { if (!lastDispatch.ContainsKey(type)) { return(false); } var lastLogEntry = lastDispatch[type]; SignalLogItem lastListEntry = null; if (signalLog.Count > 0) { lastListEntry = signalLog[signalLog.Count - 1]; } if (lastListEntry == lastLogEntry) { return(false); } var startProcessingIndex = 0; if (lastListEntry != null) { startProcessingIndex = log.IndexOf(lastListEntry) + 1; Assert.IsTrue(startProcessingIndex > 0); } for (var i = startProcessingIndex; i < log.Count; i++) { var entry = log[i]; if (entry.SignalType == type) { signalLog.Add(entry); } } return(true); }