private static void WriteSimpleFormat(DataNode mainNode, BinaryWriter writer)
 {
     writer.Write(1);
     DataNodeBinary.WriteDataToBinary(mainNode, writer, null);
     writer.Write((byte)5);
     writer.Flush();
 }
        private static void WriteCompressedFormat(DataNode mainNode, BinaryWriter writer)
        {
            writer.Write(2);
            Dictionary <string, int> header = DataNodeBinary.WriteCompressedHeader(mainNode, writer);

            DataNodeBinary.WriteDataToBinary(mainNode, writer, header);
            writer.Write((byte)5);
            writer.Flush();
        }
 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);
     }
 }