public override void GenerateFieldFileRead(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname, FieldDescriptor[] fields)
        {
            b.Append(' ', pad); b.AppendLine("//still checking variablearrays");
            b.Append(' ', pad); b.AppendLine(fieldname + " = new List<" + f.SubType.Name + ">();");
            var ser = fields.First((w) => w.Offset == f.Offset + f.VariableOffset);

            var tfield = "temp" + pad + "_" + fieldname;

            int subfieldsize = 1;
            if (f.SubType is StructureTypeDescriptor)
            {
                subfieldsize = (f.SubType as StructureTypeDescriptor).Fields.Last().Offset;
            }
            else
            {
                subfieldsize = (f.SubType as BasicTypeDescriptor).TypeSize;
            }

            b.Append(' ', pad); b.AppendLine("for(int i = 0; i < (int)(" + ser.Name + ".Field1 / "+subfieldsize.ToString()+"); i++)");
            b.Append(' ', pad); b.AppendLine("{");
            b.Append(' ', pad); b.AppendLine(bitBufferName + ".Position = " + ser.Name + ".Field0 + 16 + (" + subfieldsize.ToString()+ "*i) ;");
            b.Append(' ', pad + 4); b.AppendLine(f.SubType.Name + " " + tfield + ";");
            f.SubType.GenerateFieldFileRead(b, pad + 4, f, bitBufferName, tfield, fields);
            b.Append(' ', pad + 4); b.AppendLine("_" + fieldname + ".Add(" + tfield + ");");
            b.Append(' ', pad); b.AppendLine("}");
        }
Esempio n. 2
0
        public override void GenerateFieldFileRead(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname, FieldDescriptor[] fields)
        {
            b.Append(' ', pad); b.AppendLine("//still checking variablearrays");
            b.Append(' ', pad); b.AppendLine(fieldname + " = new List<byte>();");
            var ser = fields.First((w) => w.Offset == f.Offset + f.VariableOffset);

            var tfield = "temp" + pad + "_" + fieldname;

            int subfieldsize = 1;

            b.Append(' ', pad); b.AppendLine("for(int i = 0; i < (int)(" + ser.GetFieldName() + ".Field1 / " + subfieldsize.ToString() + "); i++)");
            b.Append(' ', pad); b.AppendLine("{");
            b.Append(' ', pad + 4); b.AppendLine(bitBufferName + ".Position = " + ser.GetFieldName() + ".Field0 + 16 + (" + subfieldsize.ToString() + "*i) ;");
            b.Append(' ', pad + 4); b.AppendLine("byte " + tfield + ";");
            b.Append(' ', pad + 4); b.AppendLine(tfield + " = (byte)stream.ReadByte();");
            b.Append(' ', pad + 4); b.AppendLine("_" + fieldname + ".Add(" + tfield + ");");
            b.Append(' ', pad); b.AppendLine("}");
        }
Esempio n. 3
0
        public override void GenerateFieldFileRead(StringBuilder b, int pad, FieldDescriptor f, string bitBufferName, string fieldname, FieldDescriptor[] fields)
        {
            b.Append(' ', pad); b.AppendLine("//still checking cstrings");
            var ser = fields.First((w) => w.Offset == f.Offset + f.VariableOffset);

            var tfield = "temp" + pad + "_" + fieldname;

            int subfieldsize = 1;
            if (f.SubType is StructureTypeDescriptor)
            {
                subfieldsize = (f.SubType as StructureTypeDescriptor).Fields.Last().Offset;
            }
            else
            {
                subfieldsize = (f.SubType as BasicTypeDescriptor).TypeSize;
            }

            b.Append(' ', pad); b.AppendLine("stream.Position = "+ser.Name + ".Field0 + 16;");
            b.Append(' ', pad); b.AppendLine(fieldname + " = stream.ReadString((uint)" + ser.Name + ".Field1);");
        }