#pragma warning disable CS0612 // Type or member is obsolete public IEnumerable <TStoredItem> Enumerate(DiskBlockPosRange range) #pragma warning restore CS0612 // Type or member is obsolete { if (range == null) #pragma warning disable CS0612 // Type or member is obsolete { range = DiskBlockPosRange.All; } #pragma warning restore CS0612 // Type or member is obsolete using (CreateLock(FileLockType.Read)) { foreach (var b in EnumerateFolder(range)) { if (b.Header.Magic == Network.Magic) { yield return(b); } } } }
#pragma warning disable CS0612 // Type or member is obsolete public IEnumerable <TStoredItem> EnumerateFolder(DiskBlockPosRange range = null) #pragma warning restore CS0612 // Type or member is obsolete { if (range == null) #pragma warning disable CS0612 // Type or member is obsolete { range = DiskBlockPosRange.All; } #pragma warning restore CS0612 // Type or member is obsolete foreach (var file in _Folder.GetFiles().OrderBy(f => f.Name)) { var fileIndex = GetFileIndex(file.Name); if (fileIndex < 0) { continue; } foreach (var block in EnumerateFile(file, (uint)fileIndex, range)) { yield return(block); } } }
#pragma warning disable CS0612 // Type or member is obsolete public static IEnumerable <StoredBlock> EnumerateFile(string file, uint fileIndex = 0, DiskBlockPosRange range = null) #pragma warning restore CS0612 // Type or member is obsolete { return(new BlockStore(Path.GetDirectoryName(file), Network.Main).EnumerateFile(file, fileIndex, range)); }
protected override IEnumerable <StoredBlock> EnumerateForIndex(DiskBlockPosRange range) { return(Store.Enumerate(true, range)); }
protected override IEnumerable <StoredBlock> EnumerateForGet(DiskBlockPosRange range) { return(Store.Enumerate(false, range)); }
protected override IEnumerable <StoredItem <BlockUndo> > EnumerateForGet(DiskBlockPosRange range) { return(Store.Enumerate(range)); }
protected abstract IEnumerable <TStoredItem> EnumerateForGet(DiskBlockPosRange range);
#pragma warning disable CS0612 // Type or member is obsolete public IEnumerable <TStoredItem> Enumerate(Stream stream, uint fileIndex = 0, DiskBlockPosRange range = null) #pragma warning restore CS0612 // Type or member is obsolete { if (range == null) #pragma warning disable CS0612 // Type or member is obsolete { range = DiskBlockPosRange.All; } #pragma warning restore CS0612 // Type or member is obsolete if (fileIndex < range.Begin.File || range.End.File < fileIndex) { yield break; } if (range.Begin.File < fileIndex) { var start = DiskBlockPos.Begin.OfFile(fileIndex); if (start >= range.End) { yield break; } #pragma warning disable CS0612 // Type or member is obsolete range = new DiskBlockPosRange(start, range.End); #pragma warning restore CS0612 // Type or member is obsolete } if (range.End.File > fileIndex) { var end = DiskBlockPos.End.OfFile(fileIndex); if (range.Begin >= end) { yield break; } #pragma warning disable CS0612 // Type or member is obsolete range = new DiskBlockPosRange(range.Begin, end); #pragma warning restore CS0612 // Type or member is obsolete } stream.Position = range.Begin.Position; var len = stream.Length; while (stream.Position < len) { var storedItem = ReadStoredItem(stream, new DiskBlockPos(fileIndex, (uint)stream.Position)); if (storedItem.Header.Magic == 0) { break; } yield return(storedItem); if (stream.Position >= range.End.Position) { break; } } }
public static IEnumerable <StoredBlock> EnumerateFile(string file, uint fileIndex = 0, DiskBlockPosRange range = null) { return(new BlockStore(Path.GetDirectoryName(file), Network.Main).EnumerateFile(file, fileIndex, range)); }
public IEnumerable <TStoredItem> EnumerateFile(FileInfo file, uint fileIndex = 0, DiskBlockPosRange range = null) { if (range == null) { range = DiskBlockPosRange.All; } using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, BufferSize)) { fs.Position = range.Begin.Position; foreach (var block in Enumerate(fs, fileIndex, range)) { yield return(block); } } }
public IEnumerable <TStoredItem> Enumerate(Stream stream, uint fileIndex = 0, DiskBlockPosRange range = null) { if (range == null) { range = DiskBlockPosRange.All; } if (fileIndex < range.Begin.File || range.End.File < fileIndex) { yield break; } if (range.Begin.File < fileIndex) { var start = DiskBlockPos.Begin.OfFile(fileIndex); if (start >= range.End) { yield break; } range = new DiskBlockPosRange(start, range.End); } if (range.End.File > fileIndex) { var end = DiskBlockPos.End.OfFile(fileIndex); if (range.Begin >= end) { yield break; } range = new DiskBlockPosRange(range.Begin, end); } stream.Position = range.Begin.Position; var len = stream.Length; while (stream.Position < len) { var storedItem = ReadStoredItem(stream, new DiskBlockPos(fileIndex, (uint)stream.Position)); if (storedItem.Header.Magic == 0) { break; } yield return(storedItem); if (stream.Position >= range.End.Position) { break; } } }
// FIXME: this methods doesn't have a path to stop the recursion. #pragma warning disable CS0612 // Type or member is obsolete public IEnumerable <StoredBlock> Enumerate(Stream stream, uint fileIndex = 0, DiskBlockPosRange range = null, bool headersOnly = false) #pragma warning restore CS0612 // Type or member is obsolete { using (HeaderOnlyScope(headersOnly)) { foreach (var r in Enumerate(stream, fileIndex, range)) { yield return(r); } } }
#pragma warning disable CS0612 // Type or member is obsolete protected override IEnumerable <StoredItem <BlockUndo> > EnumerateForIndex(DiskBlockPosRange range) #pragma warning restore CS0612 // Type or member is obsolete { return(Store.Enumerate(range)); }
#pragma warning disable CS0612 // Type or member is obsolete public IEnumerable <TStoredItem> EnumerateFile(string fileName, uint fileIndex = 0, DiskBlockPosRange range = null) #pragma warning restore CS0612 // Type or member is obsolete { if (range == null) #pragma warning disable CS0612 // Type or member is obsolete { range = DiskBlockPosRange.All; } #pragma warning restore CS0612 // Type or member is obsolete return(EnumerateFile(new FileInfo(fileName), fileIndex, range)); }
#pragma warning disable CS0612 // Type or member is obsolete public IEnumerable <TStoredItem> EnumerateFile(FileInfo file, uint fileIndex = 0, DiskBlockPosRange range = null) #pragma warning restore CS0612 // Type or member is obsolete { if (range == null) #pragma warning disable CS0612 // Type or member is obsolete { range = DiskBlockPosRange.All; } #pragma warning restore CS0612 // Type or member is obsolete using (var fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, BufferSize)) { fs.Position = range.Begin.Position; foreach (var block in Enumerate(fs, fileIndex, range)) { yield return(block); } } }
#pragma warning disable CS0612 // Type or member is obsolete public static IEnumerable <StoredBlock> EnumerateFolder(string folder, DiskBlockPosRange range = null) #pragma warning restore CS0612 // Type or member is obsolete { return(new BlockStore(folder, Network.Main).EnumerateFolder(range)); }
// FIXME: this methods doesn't have a path to stop the recursion. public IEnumerable <StoredBlock> Enumerate(Stream stream, uint fileIndex = 0, DiskBlockPosRange range = null, bool headersOnly = false) { using (HeaderOnlyScope(headersOnly)) { foreach (StoredBlock block in Enumerate(stream, fileIndex, range)) { yield return(block); } } }
public IEnumerable <TStoredItem> EnumerateFile(string fileName, uint fileIndex = 0, DiskBlockPosRange range = null) { if (range == null) { range = DiskBlockPosRange.All; } return(EnumerateFile(new FileInfo(fileName), fileIndex, range)); }
public static IEnumerable <StoredBlock> EnumerateFolder(string folder, DiskBlockPosRange range = null) { return(new BlockStore(folder, Network.Main).EnumerateFolder(range)); }
#pragma warning disable CS0612 // Type or member is obsolete protected override IEnumerable <StoredBlock> EnumerateForGet(DiskBlockPosRange range) #pragma warning restore CS0612 // Type or member is obsolete { return(Store.Enumerate(false, range)); }