public void ReadStoredMsg() { foreach (var msg in ToArrayAndClear()) { _msgReaders.CallReader(msg); } }
public void ReadStoredMsg(int maxCount = 50) { Entry entry; int count = Math.Min(maxCount, _entryQueue.Count); int countOriginal = count; int n = 1; while (count > 0 && _entryQueue.TryDequeue(out entry)) { count--; Console.WriteLine(GetType().Name + " :entry " + n + "/" + countOriginal + " curCount=" + _entryQueue.Count); if (entry.msg != null) { Console.WriteLine(GetType().Name + " :Read Msg " + entry.msg.Msg.GetType().Name); User user; if (_authenticatedUsers.TryGetValue((IScsServerClient)entry.msg.Sender, out user)) { if (user.MsgReaders.CallReader(entry.msg)) { continue; } } //TODO проверять что есть метод _msgReaders.CallReader(entry.msg); } else { Console.WriteLine(GetType().Name + " :Read Event"); ClientEventReaded.Invoke(this, entry.clientEvent); } n++; } }