Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
WriterOutput.cs
Go to the documentation of this file.
2
4
5internal sealed class WriterOutput : IRecordOutput
6{
8
9 private readonly Processor _processor;
10
12 {
13 if (writer == null)
14 {
15 throw new ArgumentNullException("writer");
16 }
19 }
20
22 {
23 BuilderInfo mainNode = record.MainNode;
24 switch (mainNode.NodeType)
25 {
26 case XmlNodeType.Element:
27 _writer.WriteStartElement(mainNode.Prefix, mainNode.LocalName, mainNode.NamespaceURI);
28 WriteAttributes(record.AttributeList, record.AttributeCount);
29 if (mainNode.IsEmptyTag)
30 {
32 }
33 break;
34 case XmlNodeType.Text:
35 case XmlNodeType.Whitespace:
36 case XmlNodeType.SignificantWhitespace:
38 break;
39 case XmlNodeType.CDATA:
41 break;
42 case XmlNodeType.EntityReference:
44 break;
45 case XmlNodeType.ProcessingInstruction:
47 break;
48 case XmlNodeType.Comment:
50 break;
51 case XmlNodeType.DocumentType:
53 break;
54 case XmlNodeType.EndElement:
56 break;
57 }
58 record.Reset();
59 return Processor.OutputResult.Continue;
60 }
61
62 public void TheEnd()
63 {
64 _writer.Flush();
65 _writer = null;
66 }
67
69 {
70 for (int i = 0; i < count; i++)
71 {
73 _writer.WriteAttributeString(builderInfo.Prefix, builderInfo.LocalName, builderInfo.NamespaceURI, builderInfo.Value);
74 }
75 }
76}
void WriteCData(string? text)
void WriteComment(string? text)
void WriteProcessingInstruction(string name, string? text)
void WriteEntityRef(string name)
void WriteString(string? text)
void WriteRaw(char[] buffer, int index, int count)
void WriteAttributeString(string localName, string? ns, string? value)
Definition XmlWriter.cs:46
void WriteStartElement(string localName, string? ns)
Definition XmlWriter.cs:30
Processor.OutputResult RecordDone(RecordBuilder record)
WriterOutput(Processor processor, XmlWriter writer)
void WriteAttributes(ArrayList list, int count)