##// END OF EJS Templates
Fixed promise rejection when there is not specified error handler in the reaction....
Fixed promise rejection when there is not specified error handler in the reaction. FIXED SPELLING IN THE XML CONTAINER CONFIGURATION signleton->singleton Code cleanup Update tests make them working on dotnet core

File last commit:

r295:28af686e24f7 default
r295:28af686e24f7 default
Show More
JsonStringScanner.cs
66 lines | 2.5 KiB | text/x-csharp | CSharpLexer
using System;
namespace Implab.Formats.Json {
public class JsonStringScanner : JsonScanner {
const int _defaultBuffer = 64;
readonly string m_data;
int m_offset;
JsonStringScanner(string data, char[] buffer, int pos, int length, int offset) : base(buffer, pos, length) {
m_data = data;
m_offset = offset;
}
protected override int Read(char[] buffer, int offset, int size) {
if (m_data == null)
return 0;
if (m_offset >= m_data.Length)
return 0;
var count = Math.Min(size, m_data.Length - m_offset);
m_data.CopyTo(m_offset, buffer, offset, count);
m_offset += count;
return count;
}
public static JsonStringScanner Create(string data) {
Safe.ArgumentNotNull(data, nameof(data));
if (data.Length <= _defaultBuffer)
return new JsonStringScanner(null, data.ToCharArray(), 0, data.Length, data.Length);
var buffer = new char[_defaultBuffer];
data.CopyTo(0, buffer, 0, _defaultBuffer);
return new JsonStringScanner(data, buffer, 0, _defaultBuffer, _defaultBuffer);
}
public static JsonStringScanner Create(string data, int offset, int length) {
Safe.ArgumentNotNull(data, nameof(data));
Safe.ArgumentInRange(offset >= 0 && offset < data.Length , nameof(offset));
Safe.ArgumentInRange(length >= 0 && offset + length <= data.Length, nameof(length));
if (length <= _defaultBuffer) {
var buffer = new char[length];
data.CopyTo(offset, buffer, 0, length);
return new JsonStringScanner(null, buffer, 0, length, length);
} else {
var buffer = new char[_defaultBuffer];
data.CopyTo(offset, buffer, 0, _defaultBuffer);
return new JsonStringScanner(data, buffer, 0, _defaultBuffer, offset + _defaultBuffer);
}
}
public static JsonStringScanner Create(char[] data, int offset, int length) {
Safe.ArgumentNotNull(data, nameof(data));
Safe.ArgumentInRange(offset >= 0 && offset < data.Length , nameof(offset));
Safe.ArgumentInRange(length >= 0 && offset + length <= data.Length, nameof(length));
return new JsonStringScanner(null, data, offset, offset + length, offset + length);
}
}
}