public static KnModule StartUp(string moduleTree) { KnModule instance = new KnModule(); instance.ParseTree(moduleTree); return(instance); }
private object a(KnModule xb, Int32 integer, object obj) { object obj2 = (this.i != null) ? this.i[integer] : null; if (obj2 == null) { return(obj); } if (obj == null) { xb.a(integer, obj); } return(obj); }
public byte[] WriteBytes(KnModule xb) { byte[] result; try { int num = xb.id; PacketWriter writer = new PacketWriter(); writer.WriteShort((short)num); this.Write(xb, num, writer); result = Encoding.Default.GetBytes(writer.ToString()); } catch { return(null); } return(result); }
public KnModule Parse(byte[] buffer) { PacketReader dataInput = new PacketReader(buffer); KnModule result; try { short id = (short)dataInput.ReadShort(); KnModule xb = this.Create(id); this.Read(xb, dataInput, id, xb); result = xb; } catch { return(null); } return(result); }
private object Read(KnModule xb, PacketReader dataInput, int id, KnModule xb2) { if (xb2 == null) { xb2 = this.Create(id); } ArrayList arrayList = (ArrayList)this.f[id]; for (int i = 0; i < arrayList.Count; i++) { Int32 integer = (Int32)arrayList[i]; switch (integer) { case 0: // Byte return(dataInput.Read()); case 1: // Boolean return(dataInput.ReadBoolean()); case 2: // Byte return(dataInput.Read()); case 3: // Short return(dataInput.ReadShort()); case 4: // Int32 return(dataInput.ReadInt()); case 5: // Long return(dataInput.ReadLong()); case 6: // Float return((float)dataInput.ReadInt()); case 7: // Double return(BitConverter.Int64BitsToDouble(dataInput.ReadLong())); case 8: // Char return(dataInput.ReadChar()); case 9: // String String str = dataInput.ReadUTF(); if (str == null || str.Length == 0 || str[0] != 0) { return(str); } if (str.Length == 1) { return(null); } return(str.Substring(1)); case 10: // BinaryTree break; case 11: // Array (Start) i++; integer = (Int32)arrayList[i]; string text = (string)this.names[integer]; ArrayList arrayList2 = new ArrayList(); xb2.b(text, arrayList2); while ((sbyte)dataInput.Read() == 11) { object obj = this.Read(xb, dataInput, integer, null); obj = this.a(xb, integer, obj); arrayList2.Add(obj); } i++; break; case 12: // Array (End) break; case 13: // String int len = dataInput.Read(); if (len == 255) { return(null); } if (len >= 128) { len = len - 128 << 16 | (dataInput.Read()) << 8 | (dataInput.Read()); } StringBuilder builder = new StringBuilder(len + 2); for (int _i = 0; _i < len; _i++) { builder.Append((char)dataInput.Read()); } return(builder.ToString()); default: string text2 = (string)this.names[integer]; object obj2 = this.Read(xb, dataInput, integer, null); obj2 = this.a(xb, integer, obj2); xb2.b(text2, obj2); break; } } return(xb2); }