Esempio n. 1
0
        public IReadableChannel MakeReadableChannel(IReadableChannel channel, Func <IReadableChannel, IWritableChannel, Task> produce)
        {
            var newChannel = new MemoryPoolChannel(_pool);

            // TODO: Avoid closure
            newChannel.OnStartReading(() =>
            {
                produce(channel, newChannel).ContinueWith(t =>
                {
                });
            });

            return(newChannel);
        }
Esempio n. 2
0
        public IReadableChannel MakeReadableChannel(Stream stream)
        {
            if (!stream.CanRead)
            {
                throw new InvalidOperationException();
            }

            var channel = new MemoryPoolChannel(_pool);

            channel.OnStartReading(() =>
            {
                stream.CopyToAsync(channel).ContinueWith(task =>
                {
                });
            });

            return(channel);
        }