{
sealed class NullStreamReader : StreamReader
{
+ internal NullStreamReader ()
+ {
+ base_stream = Stream.Null;
+ }
+
public override int Peek ()
{
return -1;
bool mayBlock;
#if NET_4_5
- Task async_task;
+ IDecoupledTask async_task;
readonly bool leave_open;
#endif
private StreamReader() {}
public StreamReader(Stream stream)
- : this (stream, Encoding.UTF8Unmarked, true, DefaultBufferSize) { }
+ : this (stream, Encoding.UTF8, true, DefaultBufferSize) { }
public StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks)
- : this (stream, Encoding.UTF8Unmarked, detectEncodingFromByteOrderMarks, DefaultBufferSize) { }
+ : this (stream, Encoding.UTF8, detectEncodingFromByteOrderMarks, DefaultBufferSize) { }
public StreamReader(Stream stream, Encoding encoding)
: this (stream, encoding, true, DefaultBufferSize) { }
}
public StreamReader(string path)
- : this (path, Encoding.UTF8Unmarked, true, DefaultFileBufferSize) { }
+ : this (path, Encoding.UTF8, true, DefaultFileBufferSize) { }
public StreamReader(string path, bool detectEncodingFromByteOrderMarks)
- : this (path, Encoding.UTF8Unmarked, detectEncodingFromByteOrderMarks, DefaultFileBufferSize) { }
+ : this (path, Encoding.UTF8, detectEncodingFromByteOrderMarks, DefaultFileBufferSize) { }
public StreamReader(string path, Encoding encoding)
: this (path, encoding, true, DefaultFileBufferSize) { }
public virtual Encoding CurrentEncoding {
get {
- if (encoding == null)
- throw new Exception ();
return encoding;
}
}
CheckState ();
- Task<int> res;
- async_task = res = ReadAsyncCore (buffer, index, count);
- return res;
+ DecoupledTask<int> res;
+ async_task = res = new DecoupledTask<int> (ReadAsyncCore (buffer, index, count));
+ return res.Task;
}
async Task<int> ReadAsyncCore (char[] buffer, int index, int count)
CheckState ();
- Task<int> res;
- async_task = res = ReadAsyncCore (buffer, index, count);
- return res;
+ DecoupledTask<int> res;
+ async_task = res = new DecoupledTask<int> (ReadAsyncCore (buffer, index, count));
+ return res.Task;
}
public override Task<string> ReadLineAsync ()
{
CheckState ();
- Task<string> res;
- async_task = res = ReadLineAsyncCore ();
- return res;
+ DecoupledTask<string> res;
+ async_task = res = new DecoupledTask<string> (ReadLineAsyncCore ());
+ return res.Task;
}
async Task<string> ReadLineAsyncCore ()
{
CheckState ();
- Task<string> res;
- async_task = res = ReadToEndAsyncCore ();
- return res;
+ DecoupledTask<string> res;
+ async_task = res = new DecoupledTask<string> (ReadToEndAsyncCore ());
+ return res.Task;
}
async Task<string> ReadToEndAsyncCore ()