private static void WriteContentNode(DataNode node, BinaryWriter bw, Dictionary <string, int> header) { if (node.Nodes != null && node.Nodes.Count > 0) { throw new Exception("Node can't contain content and subnodes"); } bw.Write((byte)1); DataNodeBinary.WriteNodeName(node, bw, header); if (header != null) { DataNodeBinary.WriteCachedString(node.Content, bw, header); } else { bw.Write(node.Content); } }
private static void WriteSubNodes(DataNode node, BinaryWriter bw, Dictionary <string, int> header) { if (node.IsList) { bw.Write((byte)2); } else { bw.Write((byte)3); } DataNodeBinary.WriteNodeName(node, bw, header); bw.Write(node.Count); for (int i = 0; i < node.Nodes.Count; i++) { DataNode node2 = node.Nodes[i]; DataNodeBinary.WriteDataToBinary(node2, bw, header); } }
private static void WriteEmptyNode(DataNode node, BinaryWriter bw, Dictionary <string, int> header) { bw.Write((byte)0); DataNodeBinary.WriteNodeName(node, bw, header); }