コード例 #1
0
ファイル: SignalLog.cs プロジェクト: supyrb/signals
        private void OnSignalDispatch(ASignal signal)
        {
            var signalLogItem = new SignalLogItem(signal);

            log.Add(signalLogItem);
            lastDispatch[signalLogItem.SignalType] = signalLogItem;

            if (OnNewSignalLog != null)
            {
                OnNewSignalLog(signalLogItem);
            }
        }
コード例 #2
0
ファイル: SignalLog.cs プロジェクト: supyrb/signals
        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);
        }