/// <summary> /// <para>Записать значение <see cref="Int24"/> в поток</para> /// </summary> /// <param name="stream">Целевой поток</param> /// <param name="value">Исходное значение</param> /// <param name="isLittleEndian">Порядок байт значения в потоке</param> /// <returns>Количество записанных байт</returns> public static async Task <long> StoreAsync(this Stream stream, Int24 value, bool isLittleEndian = true) { var buf = GetBytes(value, isLittleEndian); await stream.WriteBytesAsync(buf); return(buf.LongLength); }
/// <summary> /// <para>Записать значение <see cref="Int24"/> в поток байт</para> /// </summary> /// <param name="data">Целевой поток</param> /// <param name="value">Исходное значение</param> /// <param name="offset">Смещение значения в потоке</param> /// <param name="isLittleEndian">Порядок байт значения в потоке</param> /// <returns>Количество записанных байт</returns> public static long Store(this byte[] data, Int24 value, long offset = 0, bool isLittleEndian = true) { var buf = value.GetBytes_int(isLittleEndian); Array.Copy(data, offset, buf, 0, buf.LongLength); return(buf.LongLength); }
/// <summary> /// <para>Записать значение <see cref="Int24"/> в поток</para> /// </summary> /// <param name="stream">Целевой поток</param> /// <param name="value">Исходное значение</param> /// <param name="isLittleEndian">Порядок байт значения в потоке</param> /// <returns>Количество записанных байт</returns> public static long Store(this Stream stream, Int24 value, bool isLittleEndian = true) { var t = Task.Run(() => StoreAsync(stream, value, isLittleEndian)); t.Wait(); return(t.Result); }
/// <summary> /// <para>Прочитать значение <see cref="Int24"/> из потока</para> /// </summary> /// <param name="stream">Исходный поток</param> /// <param name="value">Результирующее значение</param> /// <param name="isLittleEndian">Порядок байт значения в потоке</param> /// <returns>Количество считанных байт</returns> public static long Load(this Stream stream, out Int24 value, bool isLittleEndian = true) { value = LoadInt24(stream, isLittleEndian); return(Int24_Size); }
/// <summary> /// <para>Прочитать значение <see cref="Int24"/> из потока байт</para> /// </summary> /// <param name="data">Исходный поток байт</param> /// <param name="offset">Смещение значения в потоке</param> /// <param name="isLittleEndian">Порядок байт значения в потоке</param> /// <returns>Результирующее значение</returns> public static Int24 LoadInt24(this byte[] data, long offset = 0, bool isLittleEndian = true) { return(Int24.FromBytes_int(data, offset, isLittleEndian)); }
/// <summary> /// <para>Прочитать значение <see cref="Int24"/> из потока байт</para> /// </summary> /// <param name="data">Исходный поток байт</param> /// <param name="value">Результирующее значение</param> /// <param name="offset">Смещение значения в потоке</param> /// <param name="isLittleEndian">Порядок байт значения в потоке</param> /// <returns>Количество считанных байт</returns> public static long Load(this byte[] data, out Int24 value, long offset = 0, bool isLittleEndian = true) { value = Int24.FromBytes_int(data, offset, isLittleEndian); return(Int24_Size); }
/// <summary> /// <para>Изменить порядок байт</para> /// </summary> /// <param name="value">Исходное значение</param> /// <returns>Результируюущее значение</returns> public static Int24 Swap(this Int24 value) { var buf = value.GetBytes_int(true); return(Int24.FromBytes_int(buf, 0, false)); }
/// <summary> /// <para>Преобразовать значение <see cref="Int24"/> в поток байт</para> /// </summary> /// <param name="value">Исходное значение </param> /// <param name="isLittleEndian">Порядок байт значения в потоке</param> /// <returns>Результирующий поток байт</returns> public static byte[] GetBytes(this Int24 value, bool isLittleEndian = true) { return(value.GetBytes_int(isLittleEndian)); }