public TarArchive(Stream stream, TarArchiveMode mode, StreamAccessMode access, bool leaveOpen) { this.baseStream = stream; this.ArchiveMode = mode; this.AccessMode = access; this.leaveOpen = leaveOpen; if (access == StreamAccessMode.Random) { if (!stream.CanSeek) { throw new StreamAccessException("The given stream does not support random access."); } else { this.RandomAccess = new TarIOBlockManager(this, baseStream); } } else if (access == StreamAccessMode.Sequential) { SequentialAccess = new TarSequentialCollection(this, stream); } else { throw new NotImplementedException("Unknown access type"); } if (mode == TarArchiveMode.Read || mode == TarArchiveMode.Update) { this.ParseFile(); } }
internal TarIOFileItemStream(long offset, long length, TarIOBlockManager manager) { this.manager = manager; this.suffixStream = new MemoryStream(); this.mode = StreamAccessMode.Random; this.fileEntry = new Pair <long, long>(offset, length); }
public EncryptionStream(Stream baseStream, StreamAccessMode accessMode, bool leaveOpen = false) { if (baseStream == null) { throw new ArgumentNullException("baseStream"); } switch (accessMode) { case StreamAccessMode.Read: if (!baseStream.CanRead) { throw new ArgumentException("baseStream must be readable for accessMode == Read", "baseStream"); } break; case StreamAccessMode.Write: if (!baseStream.CanWrite) { throw new ArgumentException("baseStream must be writable for accessMode == Write", "baseStream"); } break; } this.baseStream = baseStream; this.accessMode = accessMode; this.leaveOpen = leaveOpen; this.lcg = new LinearCongruentialGenerator(seed: 0x71C71C71); }
public BStream(IBStream streamToWrap, StreamAccessMode mode, int unmanagedBufferSize) { BaseStream = streamToWrap; SizeableStream = streamToWrap as ISizeableStream; _mode = mode; if (unmanagedBufferSize > 0) { _unmanagedBufferSize = unmanagedBufferSize; _unmanagedBuffer = Marshal.AllocHGlobal(unmanagedBufferSize); GC.AddMemoryPressure(unmanagedBufferSize); } }
public FlacStream(string file, StreamMode mode, StreamAccessMode accessMode) { FileMode fileMode; FileAccess fileAccessMode; switch (mode) { case StreamMode.CreateNew: { fileMode = FileMode.Create; break; } case StreamMode.OpenExisting: { fileMode = FileMode.Open; break; } default: { throw new FlacDebugException(); } } switch (accessMode) { case StreamAccessMode.Read: case StreamAccessMode.Write: case StreamAccessMode.Both: { fileAccessMode = (FileAccess)accessMode; break; } default: { throw new FlacDebugException(); } } fileStream_ = new FileStream(file, fileMode, fileAccessMode, FileShare.Read); if ((accessMode & StreamAccessMode.Read) == StreamAccessMode.Read) { reader_ = new FlacStreamReader(fileStream_); } if ((accessMode & StreamAccessMode.Write) == StreamAccessMode.Write) { writer_ = new FlacStreamWriter(fileStream_); } }
internal TarIOFileItemStream(long offset, long length, Stream baseStream) { this.baseStream = baseStream; this.mode = StreamAccessMode.Sequential; this.fileEntry = new Pair <long, long>(offset, length); }
public BStream(IBStream streamToWrap, StreamAccessMode mode) : this(streamToWrap, mode, 0) { }