internal static NetFxToWinRtStreamAdapter Create(Stream stream) { if (stream == null) throw new ArgumentNullException(nameof(stream)); StreamReadOperationOptimization readOptimization = StreamReadOperationOptimization.AbstractStream; if (stream.CanRead) readOptimization = DetermineStreamReadOptimization(stream); NetFxToWinRtStreamAdapter adapter; if (stream.CanSeek) adapter = new RandomAccessStream(stream, readOptimization); else if (stream.CanRead && stream.CanWrite) adapter = new InputOutputStream(stream, readOptimization); else if (stream.CanRead) adapter = new InputStream(stream, readOptimization); else if (stream.CanWrite) adapter = new OutputStream(stream, readOptimization); else throw new ArgumentException(global::Windows.Storage.Streams.SR.Argument_NotSufficientCapabilitiesToConvertToWinRtStream); return adapter; }
private NetFxToWinRtStreamAdapter(Stream stream, StreamReadOperationOptimization readOptimization) { Debug.Assert(stream != null); Debug.Assert(stream.CanRead || stream.CanWrite || stream.CanSeek); Debug.Assert(!stream.CanRead || (stream.CanRead && this is IInputStream)); Debug.Assert(!stream.CanWrite || (stream.CanWrite && this is IOutputStream)); Debug.Assert(!stream.CanSeek || (stream.CanSeek && this is IRandomAccessStream)); _readOptimization = readOptimization; _managedStream = stream; }
internal static NetFxToWinRtStreamAdapter Create(Stream stream) { if (stream == null) { throw new ArgumentNullException("stream"); } StreamReadOperationOptimization readOptimization = StreamReadOperationOptimization.AbstractStream; if (stream.CanRead) { readOptimization = DetermineStreamReadOptimization(stream); } NetFxToWinRtStreamAdapter adapter; if (stream.CanSeek) { adapter = new RandomAccessStream(stream, readOptimization); } else if (stream.CanRead && stream.CanWrite) { adapter = new InputOutputStream(stream, readOptimization); } else if (stream.CanRead) { adapter = new InputStream(stream, readOptimization); } else if (stream.CanWrite) { adapter = new OutputStream(stream, readOptimization); } else { throw new ArgumentException(SR.Argument_NotSufficientCapabilitiesToConvertToWinRtStream); } return(adapter); }
internal InputOutputStream(Stream stream, StreamReadOperationOptimization readOptimization) : base(stream, readOptimization) { }
internal RandomAccessStream(Stream stream, StreamReadOperationOptimization readOptimization) : base(stream, readOptimization) { }
private NetFxToWinRtStreamAdapter(Stream stream, StreamReadOperationOptimization readOptimization) { Contract.Requires(stream != null); Contract.Requires(stream.CanRead || stream.CanWrite || stream.CanSeek); Contract.EndContractBlock(); Debug.Assert(!stream.CanRead || (stream.CanRead && this is IInputStream)); Debug.Assert(!stream.CanWrite || (stream.CanWrite && this is IOutputStream)); Debug.Assert(!stream.CanSeek || (stream.CanSeek && this is IRandomAccessStream)); _readOptimization = readOptimization; _managedStream = stream; }