Exemple #1
0
		public void LuaSerialization()
		{
			var reg = new MessageRegistry();
			var luaReg = new LuaTypeRegistry(new[] { LuaTypeRegistry.StandartTypes }.SelectMany(x => x));
			var a = new LuaSerializer(reg, luaReg);
			var ser = new DefaultSerializer<SubMessage>(reg, TypeRegistry.CreateDefault());

			using (var buf = new ThreadSafeWriteQueue(1024))
			{
				var dictionary = new Dictionary<LuaObject, LuaObject> { };
				dictionary.Add(LuaObject.FromString("MessageId"), LuaObject.FromNumber(ser.MessageId));
				var table = LuaObject.FromTable(dictionary);
				table[LuaObject.FromString("Text")] = LuaObject.FromString("abc");
				a.Send(buf, table);

				int pos = buf.ReadMessage();
				var id = buf.ReadInt32(pos);
				Assert.AreEqual(ser.MessageId, id);

				var table2 = a.Receive(buf, pos);
				Assert.AreEqual(ser.MessageId, table2[LuaObject.FromString("MessageId")].AsNumber());
				Assert.AreEqual(table[LuaObject.FromString("Text")].AsString(), table2[LuaObject.FromString("Text")].AsString());
			}
		}
Exemple #2
0
		public LuaSerializer(MessageRegistry registry, LuaTypeRegistry luaTypeRegistry)
		{
			this.registry = registry;
			this.luaTypeRegistry = luaTypeRegistry;
		}