コード例 #1
0
        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;
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 internal InputOutputStream(Stream stream, StreamReadOperationOptimization readOptimization)
     : base(stream, readOptimization)
 {
 }
コード例 #5
0
 internal RandomAccessStream(Stream stream, StreamReadOperationOptimization readOptimization)
     : base(stream, readOptimization)
 {
 }
コード例 #6
0
 internal InputOutputStream(Stream stream, StreamReadOperationOptimization readOptimization)
     : base(stream, readOptimization)
 {
 }
コード例 #7
0
 internal RandomAccessStream(Stream stream, StreamReadOperationOptimization readOptimization)
     : base(stream, readOptimization)
 {
 }
コード例 #8
0
        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;
        }