private void SerializeDRecord(Bencoder e, DRecord rec) { e.StartDRecord(); foreach (var kvp in rec.Values) { e.ByteString(TextEncoding.GetBytes(kvp.Key)); if (kvp.Value is DNumber) { SerializeDNumber(e, (DNumber)kvp.Value); } else if (kvp.Value is DString) { SerializeDString(e, (DString)kvp.Value); } else /* kvp.Value is DRecord */ { Debug.Assert(kvp.Value is DRecord); SerializeDRecord(e, (DRecord)kvp.Value); } } e.FinishDRecord(); }
public World() { _scripts = new List<IScript>(); _stopLoopSource = new CancellationTokenSource(); GlobalObjectRoot = new DRecord(); GlobalObjectRoot["test"] = new DNumber(3); }
public void TestSerializeDRecord() { DipMessageFormat_Accessor fmt = new DipMessageFormat_Accessor(); Bencoder_Accessor e = new Bencoder_Accessor(); DRecord rec = new DRecord(); rec["foo"] = (DString)"bar"; fmt.SerializeDRecord(e, rec); Utils.AssertBytewiseIdentical(Utils.Bs("R3:fooS3:baree"), e.Encoded); }
public DRecordFrame() { _rec = new DRecord(); }