From e6181c24124d97f2fbc932b8a68311e625463156 Mon Sep 17 00:00:00 2001 From: uzvkl Date: Tue, 11 Jun 2019 23:05:52 +0200 Subject: Move dsa related stuff to subfolder --- FireBase/Streaming/NonBlockingStreamReader.cs | 63 --------------------------- 1 file changed, 63 deletions(-) delete mode 100644 FireBase/Streaming/NonBlockingStreamReader.cs (limited to 'FireBase/Streaming/NonBlockingStreamReader.cs') diff --git a/FireBase/Streaming/NonBlockingStreamReader.cs b/FireBase/Streaming/NonBlockingStreamReader.cs deleted file mode 100644 index 8228e32..0000000 --- a/FireBase/Streaming/NonBlockingStreamReader.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System.IO; -using System.Text; - -namespace Firebase.Database.Streaming -{ - /// - /// When a regular is used in a UWP app its method - /// tends to take a long - /// time for data larger then 2 KB. This extremly simple implementation of can be used - /// instead to boost performance - /// in your UWP app. Use to inject an instance of this class into your - /// . - /// - public class NonBlockingStreamReader : TextReader - { - private const int DefaultBufferSize = 16000; - private readonly byte[] buffer; - private readonly int bufferSize; - - private readonly Stream stream; - - private string cachedData; - - public NonBlockingStreamReader(Stream stream, int bufferSize = DefaultBufferSize) - { - this.stream = stream; - this.bufferSize = bufferSize; - buffer = new byte[bufferSize]; - - cachedData = string.Empty; - } - - public override string ReadLine() - { - var currentString = TryGetNewLine(); - - while (currentString == null) - { - var read = stream.Read(buffer, 0, bufferSize); - var str = Encoding.UTF8.GetString(buffer, 0, read); - - cachedData += str; - currentString = TryGetNewLine(); - } - - return currentString; - } - - private string TryGetNewLine() - { - var newLine = cachedData.IndexOf('\n'); - - if (newLine >= 0) - { - var r = cachedData.Substring(0, newLine + 1); - cachedData = cachedData.Remove(0, r.Length); - return r.Trim(); - } - - return null; - } - } -} \ No newline at end of file -- cgit v1.2.3-54-g00ecf