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();
        }
Beispiel #2
0
        public World()
        {
            _scripts = new List<IScript>();
            _stopLoopSource = new CancellationTokenSource();

            GlobalObjectRoot = new DRecord();
            GlobalObjectRoot["test"] = new DNumber(3);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 public DRecordFrame()
 {
     _rec = new DRecord();
 }