Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Read()

override bool System.Runtime.Serialization.Json.XmlJsonReader.Read ( )
inline

Definition at line 183 of file XmlJsonReader.cs.

184 {
185 if (base.Node.CanMoveToElement)
186 {
188 }
189 if (base.Node.ReadState == ReadState.Closed)
190 {
191 return false;
192 }
193 if (base.Node.ExitScope)
194 {
195 ExitScope();
196 }
197 if (!_buffered)
198 {
199 base.BufferReader.SetWindow(base.ElementNode.BufferOffset, _maxBytesPerRead);
200 }
201 byte ch;
203 {
206 {
207 base.BufferReader.SkipByte();
210 }
212 if (TryGetByte(out ch) && ch == 93 && IsReadingCollection)
213 {
214 base.BufferReader.SkipByte();
217 }
218 if (base.BufferReader.EndOfFile)
219 {
220 if (_scopeDepth > 0)
221 {
223 return true;
224 }
226 return false;
227 }
228 }
229 ch = base.BufferReader.GetByte();
230 if (_scopeDepth == 0)
231 {
233 }
234 else if (IsReadingComplexText)
235 {
236 switch (_complexTextMode)
237 {
238 case JsonComplexTextMode.NumericalText:
240 break;
241 case JsonComplexTextMode.QuotedText:
242 if (ch == 92)
243 {
245 }
246 else
247 {
249 }
250 break;
251 case JsonComplexTextMode.None:
253 break;
254 }
255 }
256 else if (IsReadingCollection)
257 {
259 }
260 else if (ch == 93)
261 {
262 base.BufferReader.SkipByte();
265 }
266 else if (ch == 123)
267 {
268 base.BufferReader.SkipByte();
270 ch = base.BufferReader.GetByte();
271 if (ch == 125)
272 {
273 base.BufferReader.SkipByte();
275 if (TryGetByte(out ch))
276 {
277 if (ch == 44)
278 {
279 base.BufferReader.SkipByte();
280 }
281 }
282 else
283 {
285 }
287 }
288 else
289 {
290 EnterJsonScope(JsonNodeType.Object);
292 }
293 }
294 else if (ch == 125)
295 {
296 base.BufferReader.SkipByte();
298 {
300 ch = base.BufferReader.GetByte();
301 if (ch == 44 || ch == 125)
302 {
303 base.BufferReader.SkipByte();
304 }
305 else
306 {
308 }
310 }
312 }
313 else if (ch == 44)
314 {
315 base.BufferReader.SkipByte();
317 }
318 else if (ch == 34)
319 {
321 {
323 EnterJsonScope(JsonNodeType.Object);
325 }
326 else if (base.Node.NodeType == XmlNodeType.Element)
327 {
329 {
330 EnterJsonScope(JsonNodeType.Object);
332 }
333 else
334 {
335 base.BufferReader.SkipByte();
337 }
338 }
339 else if (base.Node.NodeType == XmlNodeType.EndElement)
340 {
341 EnterJsonScope(JsonNodeType.Element);
343 }
344 else
345 {
347 }
348 }
349 else if (ch == 102)
350 {
351 int offset;
352 byte[] buffer = base.BufferReader.GetBuffer(5, out offset);
353 if (buffer[offset + 1] != 97 || buffer[offset + 2] != 108 || buffer[offset + 3] != 115 || buffer[offset + 4] != 101)
354 {
355 XmlExceptionHelper.ThrowTokenExpected(this, "false", Encoding.UTF8.GetString(buffer, offset, 5));
356 }
357 base.BufferReader.Advance(5);
358 if (TryGetByte(out ch) && !IsWhitespace(ch) && ch != 44 && ch != 125 && ch != 93)
359 {
360 string @string = Encoding.UTF8.GetString(buffer, offset, 4);
361 char c = (char)ch;
362 XmlExceptionHelper.ThrowTokenExpected(this, "false", @string + c);
363 }
365 }
366 else if (ch == 116)
367 {
368 int offset2;
369 byte[] buffer2 = base.BufferReader.GetBuffer(4, out offset2);
370 if (buffer2[offset2 + 1] != 114 || buffer2[offset2 + 2] != 117 || buffer2[offset2 + 3] != 101)
371 {
373 }
374 base.BufferReader.Advance(4);
375 if (TryGetByte(out ch) && !IsWhitespace(ch) && ch != 44 && ch != 125 && ch != 93)
376 {
377 string string2 = Encoding.UTF8.GetString(buffer2, offset2, 4);
378 char c = (char)ch;
380 }
382 }
383 else if (ch == 110)
384 {
385 int offset3;
386 byte[] buffer3 = base.BufferReader.GetBuffer(4, out offset3);
387 if (buffer3[offset3 + 1] != 117 || buffer3[offset3 + 2] != 108 || buffer3[offset3 + 3] != 108)
388 {
390 }
391 base.BufferReader.Advance(4);
393 if (TryGetByte(out ch))
394 {
395 switch (ch)
396 {
397 case 44:
398 case 125:
399 base.BufferReader.SkipByte();
400 break;
401 default:
402 {
403 string string3 = Encoding.UTF8.GetString(buffer3, offset3, 4);
404 char c = (char)ch;
406 break;
407 }
408 case 93:
409 break;
410 }
411 }
412 else
413 {
416 }
418 }
419 else if (ch == 45 || (48 <= ch && ch <= 57) || ch == 73 || ch == 78)
420 {
422 }
423 else
424 {
426 }
427 return true;
428 }
void EnterJsonScope(JsonNodeType currentNodeType)
void ReadNonExistentElementName(StringHandleConstStringType elementName)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string JsonEncounteredUnexpectedCharacter
Definition SR.cs:540
Definition SR.cs:7
static Encoding UTF8
Definition Encoding.cs:526
void SetValue(ValueHandleType type)
override bool MoveToElement()
XmlAtomicTextNode MoveToAtomicText()
static void ThrowTokenExpected(XmlDictionaryReader reader, string expected, char found)
static void ThrowXmlException(XmlDictionaryReader reader, string res)

References System.Runtime.Serialization.Json.XmlJsonReader._buffered, System.Runtime.Serialization.Json.XmlJsonReader._charactersToSkipOnNextRead, System.Runtime.Serialization.Json.XmlJsonReader._complexTextMode, System.Runtime.Serialization.Json.XmlJsonReader._expectingFirstElementInNonPrimitiveChild, System.Runtime.Serialization.Json.XmlJsonReader._maxBytesPerRead, System.Runtime.Serialization.Json.XmlJsonReader._readServerTypeElement, System.Runtime.Serialization.Json.XmlJsonReader._scopeDepth, System.buffer, System.ch, System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.Json.XmlJsonReader.EnterJsonScope(), System.Runtime.Serialization.Json.XmlJsonReader.ExitJsonScope(), System.Xml.XmlBaseReader.ExitScope(), System.SR.Format(), System.Runtime.Serialization.Json.XmlJsonReader.IsReadingCollection, System.Runtime.Serialization.Json.XmlJsonReader.IsReadingComplexText, System.Runtime.Serialization.Json.XmlJsonReader.IsWhitespace(), System.SR.JsonEncounteredUnexpectedCharacter, System.Xml.XmlBaseReader.MoveToAtomicText(), System.Xml.XmlBaseReader.MoveToElement(), System.Runtime.Serialization.Json.XmlJsonReader.MoveToEndElement(), System.Xml.XmlBaseReader.MoveToEndOfFile(), System.offset, System.Runtime.Serialization.Json.XmlJsonReader.ParseStartElement(), System.Runtime.Serialization.Json.XmlJsonReader.ReadEscapedCharacter(), System.Runtime.Serialization.Json.XmlJsonReader.ReadNonExistentElementName(), System.Runtime.Serialization.Json.XmlJsonReader.ReadNumericalText(), System.Runtime.Serialization.Json.XmlJsonReader.ReadQuotedText(), System.Xml.ValueHandle.SetValue(), System.Runtime.Serialization.Json.XmlJsonReader.SkipWhitespaceInBufferReader(), System.Xml.XmlExceptionHelper.ThrowTokenExpected(), System.Xml.XmlExceptionHelper.ThrowXmlException(), System.Runtime.Serialization.Json.XmlJsonReader.TryGetByte(), System.Text.Encoding.UTF8, System.Xml.XmlBaseReader.XmlNode.Value, and System.Xml.XmlException.