aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Net/StreamExtensions.cs
blob: c10e458adac7dc0660dc2940c0f25659f119ee97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.IO;
using System.Reactive.Linq;

namespace MediaBrowser.Common.Net
{
    public static class StreamExtensions
    {
        public static IObservable<byte[]> ReadBytes(this Stream stream, int count)
        {
            var buffer = new byte[count];
            return Observable.FromAsyncPattern((cb, state) => stream.BeginRead(buffer, 0, count, cb, state), ar =>
            {
                stream.EndRead(ar);
                return buffer;
            })();
        }
    }
}