internal void CopyPath() { if (path.Length != 0) { byte[] data = path.GetArray(); path.Set(data, 0, data.Length); } }
/// <summary> /// 压缩数据 /// </summary> /// <param name="data"></param> /// <returns></returns> public static byte[] Compress(byte[] data) { SubBuffer.PoolBufferFull buffer = default(SubBuffer.PoolBufferFull); try { SubArray <byte> compressData = new SubArray <byte>(); if (DeflateCompressor.Get(data, 0, data.Length, ref buffer, ref compressData, sizeof(int), 0)) { compressData.MoveStart(-sizeof(int)); return(setSize(compressData.GetArray(), data.Length)); } byte[] newData = new byte[data.Length + sizeof(int)]; Buffer.BlockCopy(data, 0, newData, sizeof(int), data.Length); return(setSize(newData, data.Length)); } finally { buffer.TryFree(); } }
public byte[] GetArray() { return(array.GetArray()); }
public static valueType[] GetSortDesc <valueType>(this SubArray <valueType> array, Func <valueType, ulong> getKey) { return(array.Length > 1 ? FixedArraySort.GetSortDesc(array.Array, getKey, array.Start, array.Length) : array.GetArray()); }
public static ulong[] GetSortDesc(this SubArray <ulong> array) { return(array.Length > 1 ? FixedArraySort.GetSortDesc(array.Array, array.Start, array.Length) : array.GetArray()); }