public static ICollection <DeltaOperation> Merge( IEnumerable <DeltaOperation> lastRevision, IEnumerable <DeltaOperation> priorRevision) { var result = new LinkedList <DeltaOperation>(); using (var merger = new DeltaSimulator(lastRevision)) { foreach (DeltaOperation operation in priorRevision) { switch (operation.Command) { case DeltaCommand.WriteLog: result.AddLast(operation); break; case DeltaCommand.WriteSuccessor: merger.Seek(operation.Offset); merger.Read(operation.Length, delegate(byte[] data, int offset, int count) { result.AddLast(DeltaOperation.WriteLog(data, offset, count)); return(count); }, delegate(int offset, int count) { result.AddLast(DeltaOperation.WriteSuccessor(offset, count)); return(count); }); break; } } } return(result); }
public static ICollection<DeltaOperation> Merge( IEnumerable<DeltaOperation> lastRevision, IEnumerable<DeltaOperation> priorRevision) { var result = new LinkedList<DeltaOperation>(); using (var merger = new DeltaSimulator(lastRevision)) { foreach (DeltaOperation operation in priorRevision) { switch (operation.Command) { case DeltaCommand.WriteLog: result.AddLast(operation); break; case DeltaCommand.WriteSuccessor: merger.Seek(operation.Offset); merger.Read(operation.Length, delegate(byte[] data, int offset, int count) { result.AddLast(DeltaOperation.WriteLog(data, offset, count)); return count; }, delegate(int offset, int count) { result.AddLast(DeltaOperation.WriteSuccessor(offset, count)); return count; }); break; } } } return result; }
public DeltaStream(Stream stream, IEnumerable <DeltaOperation> operations) { baseStream = stream; simulator = new DeltaSimulator(operations); }
public DeltaStream(Stream stream, IEnumerable<DeltaOperation> operations) { baseStream = stream; simulator = new DeltaSimulator(operations); }