Esempio n. 1
0
        /// <summary>
        /// <para>Записать значение <see cref="UInt48"/> в поток</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, UInt48 value, bool isLittleEndian = true)
        {
            var buf = GetBytes(value, isLittleEndian);
            await stream.WriteBytesAsync(buf);

            return(buf.LongLength);
        }
Esempio n. 2
0
        /// <summary>
        /// <para>Записать значение <see cref="UInt48"/> в поток байт</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, UInt48 value, long offset = 0, bool isLittleEndian = true)
        {
            var buf = GetBytes(value, isLittleEndian);

            Array.Copy(data, offset, buf, 0, buf.LongLength);
            return(buf.LongLength);
        }
Esempio n. 3
0
        /// <summary>
        /// <para>Записать значение <see cref="UInt48"/> в поток</para>
        /// </summary>
        /// <param name="stream">Целевой поток</param>
        /// <param name="value">Исходное значение</param>
        /// <param name="isLittleEndian">Порядок байт значения в потоке</param>
        /// <returns>Количество записанных байт</returns>
        public static long Store(this Stream stream, UInt48 value, bool isLittleEndian = true)
        {
            var t = Task.Run(() => StoreAsync(stream, value, isLittleEndian));

            t.Wait();
            return(t.Result);
        }
Esempio n. 4
0
 /// <summary>
 /// <para>Прочитать значение <see cref="UInt48"/> из потока</para>
 /// </summary>
 /// <param name="stream">Исходный поток</param>
 /// <param name="value">Результирующее значение</param>
 /// <param name="isLittleEndian">Порядок байт значения в потоке</param>
 /// <returns>Количество считанных байт</returns>
 public static long Load(this Stream stream, out UInt48 value, bool isLittleEndian = true)
 {
     value = LoadUInt48(stream, isLittleEndian);
     return(UInt48_Size);
 }
Esempio n. 5
0
 /// <summary>
 /// <para>Прочитать значение <see cref="UInt48"/> из потока байт</para>
 /// </summary>
 /// <param name="data">Исходный поток байт</param>
 /// <param name="offset">Смещение значения в потоке</param>
 /// <param name="isLittleEndian">Порядок байт значения в потоке</param>
 /// <returns>Результирующее значение</returns>
 public static UInt48 LoadUInt48(this byte[] data, long offset = 0, bool isLittleEndian = true)
 {
     return(UInt48.FromBytes_int(data, offset, isLittleEndian));
 }
Esempio n. 6
0
 /// <summary>
 /// <para>Прочитать значение <see cref="UInt48"/> из потока байт</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 UInt48 value, long offset = 0, bool isLittleEndian = true)
 {
     value = UInt48.FromBytes_int(data, offset, isLittleEndian);
     return(UInt48_Size);
 }
Esempio n. 7
0
 /// <summary>
 /// <para>Изменить порядок байт</para>
 /// </summary>
 /// <param name="value">Исходное значение</param>
 /// <returns>Результируюущее значение</returns>
 public static UInt48 Swap(this UInt48 value)
 {
     return(UInt48.FromBytes_int(value.GetBytes_int(true), 0, false));
 }
Esempio n. 8
0
 /// <summary>
 /// <para>Преобразовать значение <see cref="UInt48"/> в поток байт</para>
 /// </summary>
 /// <param name="value">Исходное значение </param>
 /// <param name="isLittleEndian">Порядок байт значения в потоке</param>
 /// <returns>Результирующий поток байт</returns>
 public static byte[] GetBytes(this UInt48 value, bool isLittleEndian = true)
 {
     return(value.GetBytes_int(isLittleEndian));
 }