Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        public async Task ParseFromStreamReader(StreamReader reader, TelegramParsedEventHandler onParsedEvent)
        {
            await ParseFromTextReader(reader, onParsedEvent);

            return;
        }