public void ReadOneValueEmptiesFifo() { var fifo = new FifoBuffer <int>(5); fifo.Write(99); int result; Assert.IsTrue(fifo.Read(out result)); Assert.IsFalse(fifo.Read(out result)); }
public void ReadEmptyFifoReturnsFalse() { var fifo = new FifoBuffer <KeyboardEvent>(5); KeyboardEvent result; Assert.IsFalse(fifo.Read(out result)); Assert.IsNull(result); }
void ReadCallback(object state) { FifoBuffer fifoBuffer = _stream._fifoRead; fifoBuffer.WaitHandle.WaitOne(); int bytesRead = Math.Min(fifoBuffer.Available, _count); _bytesRead = fifoBuffer.Read(_buffer, _offset, bytesRead); _completed = true; _mre.Set(); if (_callback != null) { _callback(this); } }
internal override int DeviceRead(byte[] Data) { if (!_isInitialized) { return(-1); } if (_isReadFailure) { // retry reading, and let the user determine when to close _isReadFailure = false; _asyncResult = null; StartRead(); return(-1); } int bytesRead = _fifoToDevice.Read(Data, 0, Data.Length); return(bytesRead); }
public byte Read(ushort address) { lock (this) { Debug.Assert(address < Size); KeyboardEvent evt; switch (address) { case CONTROL_REGISTER: return(_controlRegister); case STATUS_REGISTER: if (_eventBuffer.Read(out evt)) { _current = evt; return(evt.Status); } _current = null; break; case DATA_REGISTER: if (_current != null) { return(_current.Data); } return(0x00); case SCAN_CODE_REGISTER: if (_current != null) { return(_current.Data); } return(0x00); } } return(0x00); }
public override int Read(byte[] buffer, int offset, int count) { return(_fifoRead.Read(buffer, offset, count)); }