コード例 #1
0
        public void Pack(Packer packer, object obj)
        {
            var sentinel = (IDisposeSentinel)obj;
            var type     = sentinel.GetType();

            Int32Serializer.PackDirect(packer, packer.GetMetaTypeId(type.GetGenericTypeDefinition()));
            Int32Serializer.PackDirect(packer, packer.GetMetaTypeId(type.GenericTypeArguments[0]));
            Int32Serializer.PackDirect(packer, packer.GetMetaTypeId(type.GenericTypeArguments[1]));

            packer.PackInternal(sentinel.GetData());
            Int64Serializer.PackDirect(packer, sentinel.GetTick());
        }
コード例 #2
0
        public void Pack(Packer packer, object obj)
        {
            var pack = (ME.ECS.StatesHistory.HistoryEvent)obj;

            Int64Serializer.PackDirect(packer, pack.tick);
            Int32Serializer.PackDirect(packer, pack.order);
            Int32Serializer.PackDirect(packer, pack.rpcId);
            Int32Serializer.PackDirect(packer, pack.localOrder);
            Int32Serializer.PackDirect(packer, pack.objId);
            Int32Serializer.PackDirect(packer, pack.groupId);
            BooleanSerializer.PackDirect(packer, pack.storeInHistory);

            if (pack.parameters != null)
            {
                packer.WriteByte(1);
                var serializer = new ObjectArraySerializer();
                serializer.Pack(packer, pack.parameters);
            }
            else
            {
                packer.WriteByte(0);
            }
        }
コード例 #3
0
 public void Pack(Packer packer, object obj)
 {
     Int64Serializer.PackDirect(packer, (Tick)obj);
 }
コード例 #4
0
 public static void PackDirect(Packer packer, fp obj)
 {
     Int64Serializer.PackDirect(packer, obj.RawValue);
 }