/// <summary> /// Flush the current buffer to the stream /// </summary> public void Flush() { lock (_packets) { if (_currPos > 0) { LogPacket[] arr = _packets; if (_currPos < MAX_PACKETS) { arr = new LogPacket[_currPos]; Array.Copy(_packets, 0, arr, 0, _currPos); } GeneralUtils.SerializeLogPackets(arr, _stm); Array.Clear(_packets, 0, _packets.Length); _currPos = 0; } } }
public static void SavePackets(string filename, IEnumerable ps) { List <LogPacket> packets = new List <LogPacket>(); foreach (object o in ps) { LogPacket p = o as LogPacket; if (p == null) { DataFrame f = o as DataFrame; if (f == null) { continue; } p = new LogPacket("Unknown", Guid.Empty, "Unknown", f, ColorValue.White); } packets.Add(p); } using (FileStream stm = File.Open(filename, FileMode.Create)) { GeneralUtils.SerializeLogPackets(packets.ToArray(), stm); } }