示例#1
0
 /// <summary>
 /// 写数据
 /// </summary>
 /// <param name="value"></param>
 public void Write(ref SubArray <byte> value)
 {
     if (value.Length != 0)
     {
         value.CopyTo(new Span <byte>(GetBeforeMove(value.Length), value.Length));
     }
 }
示例#2
0
        private unsafe void serialize(AutoCSer.BinarySerializer serializer)
        {
            int size = Buffer.Length;

            if (IsClient)
            {
                serializer.Stream.Write(-size);
            }
            else
            {
                UnmanagedStream stream = serializer.Stream;
                if (size == 0)
                {
                    byte *write = stream.GetBeforeMove(sizeof(int) * 2);
                    *(int *)write = size;
                    *(int *)(write + sizeof(int)) = (int)(byte)State;
                }
                else
                {
                    int   offset = -size & 3;
                    byte *write  = stream.GetBeforeMove(size + offset + sizeof(int));
                    *(int *)write = size;
                    Buffer.CopyTo(new Span <byte>(write + sizeof(int), size));
                }
            }
        }
示例#3
0
        private unsafe void serialize(AutoCSer.BinarySerializer serializer)
        {
            UnmanagedStream stream = serializer.Stream;
            int             size = Buffer.Length, offset = -(size + sizeof(ushort)) & 3;
            byte *          write = stream.GetBeforeMove(size + offset + (sizeof(int) + sizeof(ulong) + sizeof(ushort)));

            *(int *)write = size;
            *(ulong *)(write + sizeof(int)) = Index;
            Buffer.CopyTo(new Span <byte>(write + (sizeof(int) + sizeof(ulong)), size));
            *(ushort *)(write + (size + (sizeof(int) + sizeof(ulong)))) = BlockIndex;
        }
示例#4
0
 public void CopyTo(byte[] values, int index)
 {
     array.CopyTo(values, index);
 }
示例#5
0
 public void CopyTo()
 {
     int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
       var subarray = new SubArray<int>(array, 1, 6);
       int[] dest = new int[8];
       subarray.CopyTo(dest, 1);
       Assert.IsTrue(Enumerable.SequenceEqual(new int[] { 0, 2, 3, 4, 5, 6, 7, 0, }, dest));
 }
示例#6
0
 internal static void CopyTo <T>(this SubArray <T> array, SubArray <T> subArray)
 {
     array.CopyTo(ref subArray);
 }