Mercurial > pub > ImplabNet
comparison Implab/Formats/Json/JsonTextScanner.cs @ 235:b49969a7043c v2
Слияние
author | cin |
---|---|
date | Thu, 05 Oct 2017 09:24:49 +0300 |
parents | 3e26338eb977 |
children |
comparison
equal
deleted
inserted
replaced
234:8dd666e6b6bf | 235:b49969a7043c |
---|---|
1 using System; | |
2 using System.Collections.Generic; | |
3 using System.IO; | |
4 using System.Linq; | |
5 using System.Text; | |
6 using System.Threading.Tasks; | |
7 | |
8 namespace Implab.Formats.Json { | |
9 public class JsonTextScanner : JsonScanner { | |
10 const int _bufferSize = 16*4096; | |
11 readonly TextReader m_reader; | |
12 | |
13 JsonTextScanner(TextReader reader, char[] buffer) : base(buffer, 0, 0) { | |
14 m_reader = reader; | |
15 } | |
16 | |
17 protected override int Read(char[] buffer, int offset, int size) { | |
18 return m_reader.Read(buffer, offset, size); | |
19 } | |
20 | |
21 public static JsonTextScanner Create(string file, Encoding encoding) { | |
22 return new JsonTextScanner(new StreamReader(file, encoding), new char[_bufferSize]); | |
23 } | |
24 | |
25 public static JsonTextScanner Create(string file) { | |
26 return new JsonTextScanner(new StreamReader(file), new char[_bufferSize]); | |
27 } | |
28 | |
29 public static JsonTextScanner Create(Stream stream, Encoding encoding) { | |
30 return new JsonTextScanner(new StreamReader(stream, encoding), new char[_bufferSize]); | |
31 } | |
32 | |
33 public static JsonTextScanner Create(Stream stream) { | |
34 return new JsonTextScanner(new StreamReader(stream), new char[_bufferSize]); | |
35 } | |
36 | |
37 public static JsonTextScanner Create(TextReader reader) { | |
38 Safe.ArgumentNotNull(reader, nameof(reader)); | |
39 return new JsonTextScanner(reader, new char[_bufferSize]); | |
40 } | |
41 | |
42 protected override void Dispose(bool disposing) { | |
43 if (disposing) | |
44 Safe.Dispose(m_reader); | |
45 | |
46 base.Dispose(disposing); | |
47 } | |
48 } | |
49 } |