public string[] GetLastPackets() { string[] result = new string[PACKETS_COUNT_CONSTRAINT]; lock (locker) { int i = 0; while (i < PACKETS_COUNT_CONSTRAINT) { LogMessage message = MessagesBuffer.Dequeue(); result[i] = message.ToString(); i++; } } return(result); }
public void GetNewEntry(Object source, EntryWrittenEventArgs e) { LogMessage newMessage = new LogMessage(e.Entry); MessagesBuffer.Enqueue(newMessage); //int randomNumber = rand.Next(2); //if (randomNumber == 1) //{ // MessagesBuffer.Enqueue(SuspiciousLogGenerator.GenerateSample(newMessage)); //} MessagesBuffer.Enqueue(SuspiciousLogGenerator.GenerateSample(newMessage)); if (MessagesBuffer.Count >= PACKETS_COUNT_CONSTRAINT && !Pause) { string[] data = GetLastPackets(); if (queueIsFull != null) { queueIsFull(data); } } }