From 21f1e95fb8e935134a969bc3d729964d8d2aadfa Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Thu, 14 May 2020 23:06:10 -0400 Subject: rename Irc to IRC --- IrcTokens/StatefulDecoder.cs | 79 -------------------------------------------- 1 file changed, 79 deletions(-) delete mode 100644 IrcTokens/StatefulDecoder.cs (limited to 'IrcTokens/StatefulDecoder.cs') diff --git a/IrcTokens/StatefulDecoder.cs b/IrcTokens/StatefulDecoder.cs deleted file mode 100644 index 1f6636b..0000000 --- a/IrcTokens/StatefulDecoder.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace IrcTokens -{ - public class StatefulDecoder - { - private byte[] _buffer; - private Encoding _encoding; - private Encoding _fallback; - - public StatefulDecoder() - { - Clear(); - } - - public Encoding Encoding - { - get => _encoding ?? Encoding.GetEncoding(Encoding.UTF8.CodePage, EncoderFallback.ExceptionFallback, - DecoderFallback.ExceptionFallback); - set - { - if (value != null) - _encoding = Encoding.GetEncoding(value.CodePage, EncoderFallback.ExceptionFallback, - DecoderFallback.ReplacementFallback); - } - } - - public Encoding Fallback - { - get => _fallback ?? Encoding.GetEncoding(Encoding.GetEncoding("iso-8859-1").CodePage, - EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback); - set - { - if (value != null) - _fallback = Encoding.GetEncoding(value.CodePage, EncoderFallback.ReplacementFallback, - DecoderFallback.ReplacementFallback); - } - } - - public string Pending => Encoding.GetString(_buffer); - - public void Clear() - { - _buffer = Array.Empty(); - } - - public List Push(string data) - { - var bytes = Encoding.GetBytes(data); - return Push(bytes, bytes.Length); - } - - public List Push(byte[] data, int bytesReceived) - { - if (data == null) return null; - - _buffer = _buffer == null ? Array.Empty() : _buffer.Concat(data.Take(bytesReceived)).ToArray(); - - var listLines = _buffer.Split((byte) '\n').Select(l => l.Trim((byte) '\r')).ToList(); - _buffer = listLines.LastOrDefault() ?? Array.Empty(); - - var decodeLines = new List(); - foreach (var line in listLines.SkipLast(1).Select(l => l.ToArray())) - try - { - decodeLines.Add(new Line(Encoding.GetString(line))); - } - catch (DecoderFallbackException) - { - decodeLines.Add(new Line(Fallback.GetString(line))); - } - - return decodeLines; - } - } -} -- cgit 1.4.1