Exemplo n.º 1
0
 public void Read(int length, FromLogCallback fromLog, FromSuccessorCallback fromSuccessor)
 {
     while (length > 0 && !eof)
     {
         var operation          = enumerator.Current;
         var operationRemaining = operation.Length - operationOffset;
         var count = Math.Min(length, operationRemaining);
         int bytesRead;
         if (operation.Command == DeltaCommand.WriteLog)
         {
             bytesRead = fromLog(operation.Data.Array, operation.Data.Offset + operationOffset, count);
         }
         else
         {
             bytesRead = fromSuccessor(operation.Offset + operationOffset, count);
         }
         if (bytesRead == 0)
         {
             break;
         }
         operationOffset += bytesRead;
         Offset          += bytesRead;
         if (length >= operationRemaining)
         {
             eof             = !enumerator.MoveNext();
             operationOffset = 0;
         }
         length -= bytesRead;
     }
 }
Exemplo n.º 2
0
 public void Read(int length, FromLogCallback fromLog, FromSuccessorCallback fromSuccessor)
 {
     while (length > 0 && !eof)
     {
         var operation = enumerator.Current;
         var operationRemaining = operation.Length - operationOffset;
         var count = Math.Min(length, operationRemaining);
         int bytesRead;
         if (operation.Command == DeltaCommand.WriteLog)
         {
             bytesRead = fromLog(operation.Data.Array, operation.Data.Offset + operationOffset, count);
         }
         else
         {
             bytesRead = fromSuccessor(operation.Offset + operationOffset, count);
         }
         if (bytesRead == 0)
         {
             break;
         }
         operationOffset += bytesRead;
         fileOffset += bytesRead;
         if (length >= operationRemaining)
         {
             eof = !enumerator.MoveNext();
             operationOffset = 0;
         }
         length -= bytesRead;
     }
 }