/// <summary> /// See interface docs. /// </summary> /// <param name="buffer"></param> /// <param name="offset"></param> /// <param name="length"></param> /// <param name="readDelegate"></param> public void Read(byte[] buffer, int offset, int length, ConnectionReadDelegate readDelegate) { var connection = GetFirstConnection(); if (connection != null) { connection.Read(buffer, offset, length, readDelegate); } }
/// <summary> /// Creates a new object. /// </summary> /// <param name="buffer"></param> /// <param name="offset"></param> /// <param name="length"></param> /// <param name="isRead"></param> /// <param name="readDelegate"></param> /// <param name="staleThreshold"></param> public ReadWriteOperation(byte[] buffer, int offset, int length, bool isRead, ConnectionReadDelegate readDelegate = null, DateTime staleThreshold = default(DateTime)) { Buffer = buffer; Offset = offset; Length = length; IsRead = isRead; ReadDelegate = readDelegate; StaleThreshold = staleThreshold == default(DateTime) ? DateTime.MaxValue : staleThreshold; }
/// <summary> /// See interface docs. /// </summary> /// <param name="buffer"></param> /// <param name="offset"></param> /// <param name="length"></param> /// <param name="readDelegate"></param> public virtual void Read(byte[] buffer, int offset, int length, ConnectionReadDelegate readDelegate) { var operationQueue = GetOperationQueue(); if (operationQueue != null) { var operation = new ReadWriteOperation(buffer, offset, length, isRead: true, readDelegate: readDelegate); operationQueue.Enqueue(operation); } }
private void MockRead(byte[] buffer, int offset, int length, ConnectionReadDelegate callback, byte[] content, int reportReadLength) { if (content != null) { var bytesRead = Math.Min(content.Length, length); bytesRead = Math.Min(bytesRead, reportReadLength); Array.Copy(content, 0, buffer, offset, bytesRead); callback(Connection.Object, buffer, offset, length, bytesRead); } }
/// <summary> /// See interface docs. /// </summary> /// <param name="buffer"></param> /// <param name="readDelegate"></param> public void Read(byte[] buffer, ConnectionReadDelegate readDelegate) { Read(buffer, 0, buffer.Length, readDelegate); }