void QueueWrite(byte[] data, int offset, int length) { if (closed) { return; } if (!writeQueue.MakeRoom(length, MaxWriteQueue)) { Close("Write queue exceeded"); return; } Array.Copy(data, offset, writeQueue.Buffer, writeQueue.WP, length); writeQueue.WP += length; StartWrite(); }
void StartRead() { if (closed) { return; } readQueue.MakeRoom(ReadQuantum, int.MaxValue); try { backing.BeginRead(readQueue.Buffer, readQueue.WP, ReadQuantum, ReadComplete, null); } catch (Exception ioe) { Close(ioe.ToString()); } }