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

◆ ReadNode()

bool System.Xml.XmlBinaryReader.ReadNode ( )
inlineprivate

Definition at line 425 of file XmlBinaryReader.cs.

426 {
427 if (!_buffered)
428 {
429 base.BufferReader.SetWindow(base.ElementNode.BufferOffset, _maxBytesPerRead);
430 }
431 if (base.BufferReader.EndOfFile)
432 {
434 return false;
435 }
436 XmlBinaryNodeType xmlBinaryNodeType;
437 if (_arrayState == ArrayState.None)
438 {
440 SkipNodeType();
441 }
442 else
443 {
445 _arrayCount--;
446 _arrayState = ArrayState.Content;
447 }
448 switch (xmlBinaryNodeType)
449 {
450 case XmlBinaryNodeType.MinElement:
451 {
452 XmlElementNode xmlElementNode = EnterScope();
453 xmlElementNode.Prefix.SetValue(PrefixHandleType.Empty);
454 ReadName(xmlElementNode.LocalName);
456 xmlElementNode.Namespace = LookupNamespace(PrefixHandleType.Empty);
457 xmlElementNode.BufferOffset = base.BufferReader.Offset;
458 return true;
459 }
460 case XmlBinaryNodeType.Element:
461 {
462 XmlElementNode xmlElementNode = EnterScope();
463 ReadName(xmlElementNode.Prefix);
464 ReadName(xmlElementNode.LocalName);
467 xmlElementNode.BufferOffset = base.BufferReader.Offset;
468 return true;
469 }
470 case XmlBinaryNodeType.ShortDictionaryElement:
471 {
472 XmlElementNode xmlElementNode = EnterScope();
473 xmlElementNode.Prefix.SetValue(PrefixHandleType.Empty);
476 xmlElementNode.Namespace = LookupNamespace(PrefixHandleType.Empty);
477 xmlElementNode.BufferOffset = base.BufferReader.Offset;
478 return true;
479 }
480 case XmlBinaryNodeType.DictionaryElement:
481 {
482 XmlElementNode xmlElementNode = EnterScope();
483 ReadName(xmlElementNode.Prefix);
487 xmlElementNode.BufferOffset = base.BufferReader.Offset;
488 return true;
489 }
490 case XmlBinaryNodeType.PrefixElementA:
491 case XmlBinaryNodeType.PrefixElementB:
492 case XmlBinaryNodeType.PrefixElementC:
493 case XmlBinaryNodeType.PrefixElementD:
494 case XmlBinaryNodeType.PrefixElementE:
495 case XmlBinaryNodeType.PrefixElementF:
496 case XmlBinaryNodeType.PrefixElementG:
497 case XmlBinaryNodeType.PrefixElementH:
498 case XmlBinaryNodeType.PrefixElementI:
499 case XmlBinaryNodeType.PrefixElementJ:
500 case XmlBinaryNodeType.PrefixElementK:
501 case XmlBinaryNodeType.PrefixElementL:
502 case XmlBinaryNodeType.PrefixElementM:
503 case XmlBinaryNodeType.PrefixElementN:
504 case XmlBinaryNodeType.PrefixElementO:
505 case XmlBinaryNodeType.PrefixElementP:
506 case XmlBinaryNodeType.PrefixElementQ:
507 case XmlBinaryNodeType.PrefixElementR:
508 case XmlBinaryNodeType.PrefixElementS:
509 case XmlBinaryNodeType.PrefixElementT:
510 case XmlBinaryNodeType.PrefixElementU:
511 case XmlBinaryNodeType.PrefixElementV:
512 case XmlBinaryNodeType.PrefixElementW:
513 case XmlBinaryNodeType.PrefixElementX:
514 case XmlBinaryNodeType.PrefixElementY:
515 case XmlBinaryNodeType.PrefixElementZ:
516 {
517 XmlElementNode xmlElementNode = EnterScope();
518 PrefixHandleType alphaPrefix = PrefixHandle.GetAlphaPrefix((int)(xmlBinaryNodeType - 94));
519 xmlElementNode.Prefix.SetValue(alphaPrefix);
520 ReadName(xmlElementNode.LocalName);
523 xmlElementNode.BufferOffset = base.BufferReader.Offset;
524 return true;
525 }
526 case XmlBinaryNodeType.PrefixDictionaryElementA:
527 case XmlBinaryNodeType.PrefixDictionaryElementB:
528 case XmlBinaryNodeType.PrefixDictionaryElementC:
529 case XmlBinaryNodeType.PrefixDictionaryElementD:
530 case XmlBinaryNodeType.PrefixDictionaryElementE:
531 case XmlBinaryNodeType.PrefixDictionaryElementF:
532 case XmlBinaryNodeType.PrefixDictionaryElementG:
533 case XmlBinaryNodeType.PrefixDictionaryElementH:
534 case XmlBinaryNodeType.PrefixDictionaryElementI:
535 case XmlBinaryNodeType.PrefixDictionaryElementJ:
536 case XmlBinaryNodeType.PrefixDictionaryElementK:
537 case XmlBinaryNodeType.PrefixDictionaryElementL:
538 case XmlBinaryNodeType.PrefixDictionaryElementM:
539 case XmlBinaryNodeType.PrefixDictionaryElementN:
540 case XmlBinaryNodeType.PrefixDictionaryElementO:
541 case XmlBinaryNodeType.PrefixDictionaryElementP:
542 case XmlBinaryNodeType.PrefixDictionaryElementQ:
543 case XmlBinaryNodeType.PrefixDictionaryElementR:
544 case XmlBinaryNodeType.PrefixDictionaryElementS:
545 case XmlBinaryNodeType.PrefixDictionaryElementT:
546 case XmlBinaryNodeType.PrefixDictionaryElementU:
547 case XmlBinaryNodeType.PrefixDictionaryElementV:
548 case XmlBinaryNodeType.PrefixDictionaryElementW:
549 case XmlBinaryNodeType.PrefixDictionaryElementX:
550 case XmlBinaryNodeType.PrefixDictionaryElementY:
551 case XmlBinaryNodeType.PrefixDictionaryElementZ:
552 {
553 XmlElementNode xmlElementNode = EnterScope();
554 PrefixHandleType alphaPrefix = PrefixHandle.GetAlphaPrefix((int)(xmlBinaryNodeType - 68));
555 xmlElementNode.Prefix.SetValue(alphaPrefix);
559 xmlElementNode.BufferOffset = base.BufferReader.Offset;
560 return true;
561 }
562 case XmlBinaryNodeType.EndElement:
564 return true;
565 case XmlBinaryNodeType.Comment:
567 return true;
568 case XmlBinaryNodeType.EmptyTextWithEndElement:
569 MoveToAtomicTextWithEndElement().Value.SetValue(ValueHandleType.Empty);
570 if (base.OutsideRootElement)
571 {
573 }
574 return true;
575 case XmlBinaryNodeType.ZeroTextWithEndElement:
576 MoveToAtomicTextWithEndElement().Value.SetValue(ValueHandleType.Zero);
577 if (base.OutsideRootElement)
578 {
580 }
581 return true;
582 case XmlBinaryNodeType.OneTextWithEndElement:
583 MoveToAtomicTextWithEndElement().Value.SetValue(ValueHandleType.One);
584 if (base.OutsideRootElement)
585 {
587 }
588 return true;
589 case XmlBinaryNodeType.TrueTextWithEndElement:
590 MoveToAtomicTextWithEndElement().Value.SetValue(ValueHandleType.True);
591 if (base.OutsideRootElement)
592 {
594 }
595 return true;
596 case XmlBinaryNodeType.FalseTextWithEndElement:
597 MoveToAtomicTextWithEndElement().Value.SetValue(ValueHandleType.False);
598 if (base.OutsideRootElement)
599 {
601 }
602 return true;
603 case XmlBinaryNodeType.BoolTextWithEndElement:
604 MoveToAtomicTextWithEndElement().Value.SetValue((ReadUInt8() != 0) ? ValueHandleType.True : ValueHandleType.False);
605 if (base.OutsideRootElement)
606 {
608 }
609 return true;
610 case XmlBinaryNodeType.Chars8TextWithEndElement:
611 if (_buffered)
612 {
613 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.UTF8, ReadUInt8());
614 }
615 else
616 {
618 }
619 return true;
620 case XmlBinaryNodeType.Chars8Text:
621 if (_buffered)
622 {
623 ReadText(MoveToComplexText(), ValueHandleType.UTF8, ReadUInt8());
624 }
625 else
626 {
628 }
629 return true;
630 case XmlBinaryNodeType.Chars16TextWithEndElement:
631 if (_buffered)
632 {
633 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.UTF8, ReadUInt16());
634 }
635 else
636 {
638 }
639 return true;
640 case XmlBinaryNodeType.Chars16Text:
641 if (_buffered)
642 {
643 ReadText(MoveToComplexText(), ValueHandleType.UTF8, ReadUInt16());
644 }
645 else
646 {
648 }
649 return true;
650 case XmlBinaryNodeType.Chars32TextWithEndElement:
651 if (_buffered)
652 {
653 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.UTF8, ReadUInt31());
654 }
655 else
656 {
658 }
659 return true;
660 case XmlBinaryNodeType.Chars32Text:
661 if (_buffered)
662 {
663 ReadText(MoveToComplexText(), ValueHandleType.UTF8, ReadUInt31());
664 }
665 else
666 {
668 }
669 return true;
670 case XmlBinaryNodeType.UnicodeChars8TextWithEndElement:
672 return true;
673 case XmlBinaryNodeType.UnicodeChars8Text:
675 return true;
676 case XmlBinaryNodeType.UnicodeChars16TextWithEndElement:
678 return true;
679 case XmlBinaryNodeType.UnicodeChars16Text:
681 return true;
682 case XmlBinaryNodeType.UnicodeChars32TextWithEndElement:
684 return true;
685 case XmlBinaryNodeType.UnicodeChars32Text:
687 return true;
688 case XmlBinaryNodeType.Bytes8TextWithEndElement:
689 if (_buffered)
690 {
692 }
693 else
694 {
696 }
697 return true;
698 case XmlBinaryNodeType.Bytes8Text:
699 if (_buffered)
700 {
702 }
703 else
704 {
706 }
707 return true;
708 case XmlBinaryNodeType.Bytes16TextWithEndElement:
709 if (_buffered)
710 {
712 }
713 else
714 {
716 }
717 return true;
718 case XmlBinaryNodeType.Bytes16Text:
719 if (_buffered)
720 {
722 }
723 else
724 {
726 }
727 return true;
728 case XmlBinaryNodeType.Bytes32TextWithEndElement:
729 if (_buffered)
730 {
732 }
733 else
734 {
736 }
737 return true;
738 case XmlBinaryNodeType.Bytes32Text:
739 if (_buffered)
740 {
742 }
743 else
744 {
746 }
747 return true;
748 case XmlBinaryNodeType.DictionaryTextWithEndElement:
750 return true;
751 case XmlBinaryNodeType.UniqueIdTextWithEndElement:
752 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.UniqueId, 16);
753 return true;
754 case XmlBinaryNodeType.GuidTextWithEndElement:
755 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.Guid, 16);
756 return true;
757 case XmlBinaryNodeType.DecimalTextWithEndElement:
758 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.Decimal, 16);
759 return true;
760 case XmlBinaryNodeType.Int8TextWithEndElement:
761 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.Int8, 1);
762 return true;
763 case XmlBinaryNodeType.Int16TextWithEndElement:
764 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.Int16, 2);
765 return true;
766 case XmlBinaryNodeType.Int32TextWithEndElement:
767 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.Int32, 4);
768 return true;
769 case XmlBinaryNodeType.Int64TextWithEndElement:
770 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.Int64, 8);
771 return true;
772 case XmlBinaryNodeType.UInt64TextWithEndElement:
773 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.UInt64, 8);
774 return true;
775 case XmlBinaryNodeType.FloatTextWithEndElement:
776 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.Single, 4);
777 return true;
778 case XmlBinaryNodeType.DoubleTextWithEndElement:
779 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.Double, 8);
780 return true;
781 case XmlBinaryNodeType.TimeSpanTextWithEndElement:
782 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.TimeSpan, 8);
783 return true;
784 case XmlBinaryNodeType.DateTimeTextWithEndElement:
785 ReadText(MoveToAtomicTextWithEndElement(), ValueHandleType.DateTime, 8);
786 return true;
787 case XmlBinaryNodeType.QNameDictionaryTextWithEndElement:
788 base.BufferReader.ReadQName(MoveToAtomicTextWithEndElement().Value);
789 return true;
790 case XmlBinaryNodeType.Array:
791 ReadArray();
792 return true;
793 default:
794 base.BufferReader.ReadValue(xmlBinaryNodeType, MoveToComplexText().Value);
795 return true;
796 }
797 }
void SetValue(ValueHandleType type)
void SetDictionaryValue(int key)
override string LookupNamespace(string prefix)
XmlComplexTextNode MoveToComplexText()
XmlCommentNode MoveToComment()
XmlElementNode EnterScope()
void ReadName(ValueHandle value)
XmlBinaryNodeType _arrayNodeType
void ReadUnicodeText(bool withEndElement, int length)
void ReadDictionaryName(StringHandle s)
XmlBinaryNodeType GetNodeType()
void ReadText(XmlTextNode textNode, ValueHandleType type, int length)
XmlAtomicTextNode MoveToAtomicTextWithEndElement()
void ReadBinaryText(XmlTextNode textNode, int length)
void ReadPartialBinaryText(bool withEndElement, int length)
void ReadPartialUTF8Text(bool withEndElement, int length)

References System.Xml.XmlBinaryReader._arrayCount, System.Xml.XmlBinaryReader._arrayNodeType, System.Xml.XmlBinaryReader._arrayState, System.Xml.XmlBinaryReader._buffered, System.Xml.XmlBinaryReader._maxBytesPerRead, System.Xml.Dictionary, System.Xml.XmlBaseReader.EnterScope(), System.Xml.PrefixHandle.GetAlphaPrefix(), System.Xml.XmlBinaryReader.GetNodeType(), System.Xml.XmlBaseReader.LookupNamespace(), System.Xml.XmlBinaryReader.MoveToAtomicTextWithEndElement(), System.Xml.XmlBaseReader.MoveToComment(), System.Xml.XmlBaseReader.MoveToComplexText(), System.Xml.XmlBaseReader.MoveToEndElement(), System.Xml.XmlBaseReader.MoveToEndOfFile(), System.Xml.XmlBinaryReader.ReadArray(), System.Xml.XmlBinaryReader.ReadAttributes(), System.Xml.XmlBinaryReader.ReadBinaryText(), System.Xml.XmlBinaryReader.ReadDictionaryKey(), System.Xml.XmlBinaryReader.ReadDictionaryName(), System.Xml.XmlBinaryReader.ReadName(), System.Xml.XmlBinaryReader.ReadPartialBinaryText(), System.Xml.XmlBinaryReader.ReadPartialUTF8Text(), System.Xml.XmlBinaryReader.ReadText(), System.Xml.XmlBinaryReader.ReadUInt16(), System.Xml.XmlBinaryReader.ReadUInt31(), System.Xml.XmlBinaryReader.ReadUInt8(), System.Xml.XmlBinaryReader.ReadUnicodeText(), System.Xml.ValueHandle.SetDictionaryValue(), System.Xml.ValueHandle.SetValue(), System.Xml.XmlBinaryReader.SkipNodeType(), System.Xml.XmlBaseReader.XmlNode.Value, System.Xml.XmlBaseReader.Value, and System.Xml.XmlBinaryReader.VerifyWhitespace().

Referenced by System.Xml.XmlBinaryReader.Read(), System.Xml.XmlBinaryReader.ReadArray(), System.Xml.XmlBinaryReader.ReadTextWithEndElement(), and System.Xml.XmlBinaryReader.SkipArrayElements().