void processRemainingBytes() { while (byteHoldingBuffer.Count > 0) { if (bw.BaseStream.Position < MaxIncomingDataSize) { // dequeue the first byte (FIFO) and write it to disk bw.Write(byteHoldingBuffer[0]); byteHoldingBuffer.RemoveAt(0); } else { SendDebugMessage("WARNING: Data spill; segment exceeded max (" + MaxIncomingDataSize.ToString() + ") size."); } } }
void processByte(byte b) { lock (byteHoldingBuffer) { byteHoldingBuffer.Add(b); if (byteHoldingBuffer.Count == delimiterLength) { if (!startedPumping) { startedPumping = true; } // Check for a match - if it matches then dump the byte buffer and start a new file if (byteHoldingBuffer.SequenceEqual(Delimiter)) { byteHoldingBuffer.Clear(); AwaitingSegmentNumber++; switchToNextSegment(); } else { if (bw.BaseStream.Position < MaxIncomingDataSize) { // dequeue the first byte (FIFO) and write it to disk bw.Write(byteHoldingBuffer[0]); byteHoldingBuffer.RemoveAt(0); } else { SendDebugMessage("WARNING: Data spill; segment exceeded max (" + MaxIncomingDataSize.ToString() + ") size."); return; } } } } }