public async Task ParseFromTextReader(TextReader reader, TelegramParsedEventHandler onParsedEvent) { Telegram telegram = null; string line; while ((line = await reader.ReadLineAsync()) != null) { if (telegram == null) { if (line.StartsWith(telegramStart.ToString(), StringComparison.OrdinalIgnoreCase)) { telegram = new Telegram(); SetTelegramHeader(ref telegram, line); } } else { if (line.StartsWith(telegramEnd.ToString(), StringComparison.OrdinalIgnoreCase)) { //SetTelegramCosmosProperties(ref telegram); SetTelegramTableProperties(ref telegram); SetTelegramCRC(ref telegram, line); onParsedEvent?.Invoke(this, telegram); return; } else { SetTelegramContent(ref telegram, line); } } } }
private async Task ParseFromStringReader(TextReader reader, TelegramParsedEventHandler onParsedEvent) { string line; Telegram telegram = null; while ((line = await reader.ReadLineAsync()) != null) { if (telegram == null) { if (line.StartsWith(telegramStart.ToString(), StringComparison.OrdinalIgnoreCase)) { telegram = new Telegram(); SetTelegramHeader(ref telegram, line); } } else { if (line.StartsWith(telegramEnd.ToString(), StringComparison.OrdinalIgnoreCase)) { SetTelegramCRC(ref telegram, line); onParsedEvent?.Invoke(this, telegram); telegram = null; } else { SetTelegramContent(ref telegram, line); } } } }
public async Task ParseFromStream(Stream stream, TelegramParsedEventHandler onParsedEvent) { Byte[] buffer = new byte[8192]; int count; while ((count = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0) { if (count != 0) { using TextReader reader = new StringReader(TelegramEncoding.GetString(buffer, 0, buffer.Length)); await ParseFromTextReader(reader, onParsedEvent); } } }
public async Task ParseFromStreamReader(StreamReader reader, TelegramParsedEventHandler onParsedEvent) { await ParseFromTextReader(reader, onParsedEvent); return; }