示例#1
0
        /// <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;
 }
示例#3
0
        /// <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);
            }
        }
示例#4
0
 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);
     }
 }
示例#5
0
 /// <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);
 }