public void TestVectorAnyObject() { var writer = new Amf3Writer(); var reader = new Amf3Reader(); reader.RegisterTypedObject <TestCls>(); var t = new TestCls() { T1 = 3.3, T2 = "abc", T3 = "abd", t4 = new Vector <int>() { 2000, 30000, 400000 } }; using (var sc = new SerializationContext()) { var v = new Vector <object>() { t, 3.2, 4.5 }; writer.WriteBytes(v, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); reader.TryGetVectorObject(buffer, out var readVal, out var consumed); Assert.IsTrue(readVal.GetType().GetGenericArguments().First() == typeof(object)); Assert.AreEqual(v, readVal); Assert.AreEqual(buffer.Length, consumed); } }
public void TestObject() { var reader = new Amf3Reader(); var writer = new Amf3Writer(); var obj = new AmfObject { { "t1", (uint)2 }, { "t2", 3.1 } }; obj.AddDynamic("t3", new Vector <int>() { 2, 3, 4 }); using (var sc = new SerializationContext()) { writer.WriteBytes(obj, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetObject(buffer, out var readVal, out var consumed)); var readObj = (AmfObject)readVal; Assert.AreEqual(readObj.Fields["t1"], (uint)2); Assert.AreEqual(readObj.Fields["t2"], 3.1); Assert.AreEqual(readObj.DynamicFields["t3"], new Vector <int>() { 2, 3, 4 }); Assert.AreEqual(buffer.Length, consumed); } }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref count); reader.Read(ref dwordsPerVertex); reader.Read(ref resultId); }
public void TestIExternalizable() { var reader = new Amf3Reader(); var writer = new Amf3Writer(); reader.RegisterExternalizable <iexternalizable>(); var ext = new iexternalizable() { v1 = 0.1, v2 = 1 }; using (var sc = new SerializationContext()) { writer.WriteBytes(ext, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetObject(buffer, out var readVal, out var consumed)); var val = (iexternalizable)readVal; Assert.AreEqual(val.v1, ext.v1); Assert.AreEqual(val.v2, ext.v2); Assert.AreEqual(buffer.Length, consumed); } }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref indexBufferId); reader.Read(ref firstIndex); reader.Read(ref numTriangles); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref name); reader.Read(ref span); reader.Read(ref delta); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref programId); reader.Read(ref vertexProgram); reader.Read(ref fragmentProgram); }
public void TestObject3() { var reader = new Amf3Reader(); var writer = new Amf3Writer(); reader.RegisterTypedObject <TestCls>(); var t = new TestCls() { T1 = 3.3, T2 = "abc", T3 = "abd", t4 = new Vector <int>() { 2000, 30000, 400000 } }; using (var sc = new SerializationContext()) { writer.WriteBytes(t, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetObject(buffer, out var readVal, out var consumed)); Assert.AreEqual(t, readVal); Assert.AreEqual(buffer.Length, consumed); } }
public void TestArray() { var reader = new Amf3Reader(); var writer = new Amf3Writer(); var arr = new Amf3Array(); arr["a"] = (uint)1; arr["b"] = 2.1; arr["d"] = null; arr.DensePart.Add(1); arr.DensePart.Add(1.2); using (var sc = new SerializationContext()) { writer.WriteBytes(arr, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetArray(buffer, out var readVal, out var consumed)); Assert.AreEqual(arr["a"], readVal["a"]); Assert.AreEqual(arr["b"], readVal["b"]); Assert.AreEqual(arr["d"], readVal["d"]); Assert.AreEqual(1.0, readVal[0]); Assert.AreEqual(buffer.Length, consumed); } }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref time); reader.Read(ref id); reader.Read(ref size); reader.Read(ref stackid); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref index); reader.Read(ref vertexBufferId); reader.Read(ref bufferOffset); reader.Read(ref format); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref vertexBufferId); reader.Read(ref source); reader.Read(ref startVertex); reader.Read(ref countVertices); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref indexBufferId); reader.Read(ref source); reader.Read(ref offset); reader.Read(ref count); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref x); reader.Read(ref y); reader.Read(ref w); reader.Read(ref h); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref width); reader.Read(ref height); reader.Read(ref antialias); reader.Read(ref depthstencil); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref time); reader.Read(ref numticks); reader.Read(ref ticktimes); reader.Read(ref callstack); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref xmin); reader.Read(ref xmax); reader.Read(ref ymin); reader.Read(ref ymax); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref programType); reader.Read(ref firstRegister); reader.Read(ref data); reader.Read(ref numRegisters); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref width); reader.Read(ref height); reader.Read(ref format); reader.Read(ref optimizeForRenderToTexture); reader.Read(ref streamingLevels); reader.Read(ref resultId); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref red); reader.Read(ref green); reader.Read(ref blue); reader.Read(ref alpha); reader.Read(ref depth); reader.Read(ref stencil); reader.Read(ref mask); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref xmin); reader.Read(ref xmax); reader.Read(ref ymin); reader.Read(ref ymax); reader.Read(ref name); reader.Read(ref symbolname); reader.Read(ref modified); }
public void Serialize(Amf3Reader reader) { reader.ReadObjectHeader(ClassDef); reader.Read(ref textureId); reader.Read(ref srcdata); reader.Read(ref srcbytesperline); reader.Read(ref srcformat); reader.Read(ref srccompressedformat); reader.Read(ref srcw); reader.Read(ref srch); reader.Read(ref inverted); reader.Read(ref miplevel); }
public static List<object> Decode(byte[] buffer, int offset, int count) { const int headLen = 4; if (count > headLen) { List<object> objs = new List<object>(); Amf3Reader<Variant> reader = new Amf3Reader<Variant>(buffer, offset + headLen, count - headLen); while (reader.Unfinished) { objs.Add(reader.ReadObject()); } return objs; } return null; }
public void TestUndefined() { var reader = new Amf3Reader(); var writer = new Amf3Writer(); using (var sc = new SerializationContext()) { writer.WriteBytes(new Harmonic.Networking.Amf.Common.Undefined(), sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetUndefined(buffer, out var readVal, out var consumed)); Assert.IsNotNull(readVal); Assert.AreEqual(buffer.Length, consumed); } }
public void TestNull() { var reader = new Amf3Reader(); var writer = new Amf3Writer(); using (var sc = new SerializationContext()) { writer.WriteBytes((object)null, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetNull(buffer, out var readVal, out var consumed)); Assert.IsNull(readVal); Assert.AreEqual(buffer.Length, consumed); } }
public void TestByteArray() { var reader = new Amf3Reader(); var writer = new Amf3Writer(); using (var sc = new SerializationContext()) { var arr = new byte[] { 1, 2, 3 }; writer.WriteBytes(arr, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetByteArray(buffer, out var readVal, out var consumed)); Assert.IsTrue(arr.SequenceEqual(readVal)); Assert.AreEqual(buffer.Length, consumed); } }
public void TestString() { var writer = new Amf3Writer(); var reader = new Amf3Reader(); using (var sc = new SerializationContext()) { for (int i = 0; i < 1000; i++) { var str = Guid.NewGuid().ToString(); writer.WriteBytes(str, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetString(buffer, out var readVal, out var consumed)); Assert.AreEqual(str, readVal); Assert.AreEqual(buffer.Length, consumed); } } }
public void TestVectorDouble() { var writer = new Amf3Writer(); var reader = new Amf3Reader(); using (var sc = new SerializationContext()) { var v = new Vector <double>() { 2, 3, 4 }; writer.WriteBytes(v, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); reader.TryGetVectorDouble(buffer, out var readVal, out var consumed); Assert.AreEqual(v, readVal); Assert.AreEqual(buffer.Length, consumed); } }
public void TestXml() { var writer = new Amf3Writer(); var reader = new Amf3Reader(); using (var sc = new SerializationContext()) { var xml = new Amf3Xml(); var elem = xml.CreateElement("price"); xml.AppendChild(elem); writer.WriteBytes(xml, sc); var buffer = new byte[sc.MessageLength]; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetXml(buffer, out var ud, out var consunmed)); Assert.IsNotNull(ud); Assert.AreNotEqual(ud.GetElementsByTagName("price").Count, 0); Assert.AreEqual(consunmed, buffer.Length); } }
public void TestBoolean() { var reader = new Amf3Reader(); var writer = new Amf3Writer(); using (var sc = new SerializationContext()) { writer.WriteBytes(true, sc); var buffer = new byte[sc.MessageLength];; sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetBoolean(buffer, out var readVal, out var consumed)); Assert.AreEqual(buffer.Length, consumed); Assert.IsTrue(readVal); writer.WriteBytes(false, sc); sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetBoolean(buffer, out readVal, out consumed)); Assert.AreEqual(buffer.Length, consumed); Assert.IsFalse(readVal); } }
public void TestInteger() { var reader = new Amf3Reader(); var writer = new Amf3Writer(); var backend = new byte[5]; using (var sc = new SerializationContext()) { for (int i = 0; i <= Amf3Writer.U29MAX; i += 0xFF) { var value = (uint)i; writer.WriteBytes(value, sc); var buffer = backend.AsSpan(0, sc.MessageLength); buffer.Clear(); sc.GetMessage(buffer); Assert.IsTrue(reader.TryGetUInt29(buffer, out var readValue, out var consumed)); Assert.AreEqual(readValue, value); Assert.AreEqual(consumed, buffer.Length); } } }
/// <summary> /// 查看玩家信息 /// </summary> /// <param name="note"></param> /// <param name="comm"></param> internal static object ViewPlayer(Notification note) { string[] strs = GetCommand(note); if (strs.Length != 1) return null; PlayerBusiness player = PlayersProxy.FindPlayerByName(strs[0].Trim()); if (player == null) { return string.Format(TipManager.GetMessage(GMReturn.NoName), strs[0]); } var v = new PlayerDetail(player, 2); Amf3Writer writer = new Amf3Writer(65535, false); writer.WriteObject(v); Amf3Reader<Variant> reader = new Amf3Reader<Variant>(writer.Array, 0, writer.Count); object b = reader.ReadObject(); return new object[] { player.Online, b }; }