view Implab/Formats/ReaderScanner.cs @ 227:8d5de4eb9c2c v2

Reimplemented JsonXmlReader, added support for null values: JSON null values are mapped to empty nodes with 'xsi:nil' attribute set to 'true'
author cin
date Sat, 09 Sep 2017 03:53:13 +0300
parents 4f82e0f161c3
children
line wrap: on
line source

using System;
using System.IO;

namespace Implab.Formats {
    public class ReaderScanner: TextScanner {
        const int CHUNK_SIZE = 1024*4;
        const int BUFFER_MAX = CHUNK_SIZE*1024;

        readonly TextReader m_reader;

        public ReaderScanner(TextReader reader, int limit, int chunk) : base(limit, chunk) {
            Safe.ArgumentNotNull(reader, "reader");
            m_reader = reader;
        }

        public ReaderScanner(TextReader reader) : this(reader, BUFFER_MAX, CHUNK_SIZE) {
        }

        protected override int Read(char[] buffer, int offset, int size) {
            return m_reader.Read(buffer, offset, size);
        }

        protected override void Dispose(bool disposing) {
            if (disposing)
                Safe.Dispose(m_reader);
            base.Dispose(disposing);
        }
    }
}