ReadBytes() публичный статический Метод

Read several bytes from a buffer
public static ReadBytes ( byte fromBuffer, int numberOfBytes, int readBitOffset, byte destination, int destinationByteOffset ) : void
fromBuffer byte
numberOfBytes int
readBitOffset int
destination byte
destinationByteOffset int
Результат void
Пример #1
0
        public unsafe void ReadBytes(byte *pBuffer, int offset, int numberOfBytes)
        {
            NetException.Assert(m_bitLength - m_readPosition + 7 >= (numberOfBytes * 8), c_readOverflowError);

            NetBitWriter.ReadBytes(m_data, numberOfBytes, m_readPosition, pBuffer + offset, 0);
            m_readPosition += (8 * numberOfBytes);
        }
Пример #2
0
        /// <summary>
        /// Reads the specified number of bytes without advancing the read pointer
        /// </summary>
        public byte[] PeekBytes(int numberOfBytes)
        {
            NetException.Assert(m_bitLength - m_readPosition >= (numberOfBytes * 8), c_readOverflowError);

            byte[] retval = new byte[numberOfBytes];
            NetBitWriter.ReadBytes(m_data, numberOfBytes, m_readPosition, retval, 0);
            return(retval);
        }
Пример #3
0
        /// <summary>
        /// Reads the specified number of bytes without advancing the read pointer
        /// </summary>
        public void PeekBytes(byte[] into, int offset, int numberOfBytes)
        {
            NetException.Assert(m_bitLength - m_readPosition >= (numberOfBytes * 8), c_readOverflowError);
            NetException.Assert(offset + numberOfBytes <= into.Length);

            NetBitWriter.ReadBytes(m_data, numberOfBytes, m_readPosition, into, offset);
            return;
        }
Пример #4
0
        /// <summary>
        /// Reads the specified number of bytes without advancing the read pointer
        /// </summary>
        public Span <byte> PeekBytes(Span <byte> bytes)
        {
            var numberOfBytes = bytes.Length;

            NetException.Assert(m_bitLength - m_readPosition >= (numberOfBytes * 8), c_readOverflowError);

            NetBitWriter.ReadBytes(m_data, numberOfBytes, m_readPosition, bytes, 0);
            return(bytes);
        }
Пример #5
0
        public void ReadBytes(byte[] into, int offset, int numberOfBytes)
        {
            Debug.Assert(m_bitLength - m_readPosition >= (numberOfBytes * 8), c_readOverflowError);
            Debug.Assert(offset + numberOfBytes <= into.Length);

            NetBitWriter.ReadBytes(Data, numberOfBytes, m_readPosition, into, offset);
            m_readPosition += (8 * numberOfBytes);
            return;
        }
Пример #6
0
        public byte[] ReadBytes(int numberOfBytes)
        {
            Debug.Assert(m_bitLength - m_readPosition >= (numberOfBytes * 8), c_readOverflowError);

            byte[] retval = new byte[numberOfBytes];
            NetBitWriter.ReadBytes(Data, numberOfBytes, m_readPosition, retval, 0);
            m_readPosition += (8 * numberOfBytes);
            return(retval);
        }
Пример #7
0
        /// <summary>
        /// Reads the specified number of bytes and returns true for success
        /// </summary>
        public bool ReadBytes(int numberOfBytes, out byte[] result)
        {
            if (m_bitLength - m_readPosition + 7 < (numberOfBytes * 8))
            {
                result = null;
                return(false);
            }

            result = new byte[numberOfBytes];
            NetBitWriter.ReadBytes(m_data, numberOfBytes, m_readPosition, result, 0);
            m_readPosition += (8 * numberOfBytes);
            return(true);
        }
Пример #8
0
        /// <summary>
        /// Reads the specified number of bits into a pre-allocated array.
        /// </summary>
        /// <param name="into">The destination array</param>
        /// <param name="offset">The offset where to start writing in the destination array</param>
        /// <param name="numberOfBits">The number of bits to read</param>
        //[Obsolete("Use Span alternative instead with slicing.")]
        public Span <byte> ReadBits(Span <byte> into, int offset, int numberOfBits)
        {
            NetException.Assert(m_bitLength - m_readPosition >= numberOfBits, c_readOverflowError);
            NetException.Assert(offset + NetUtility.BytesToHoldBits(numberOfBits) <= into.Length);

            int numberOfWholeBytes = numberOfBits / 8;
            int extraBits          = numberOfBits - (numberOfWholeBytes * 8);

            NetBitWriter.ReadBytes(m_data, numberOfWholeBytes, m_readPosition, into, offset);
            m_readPosition += (8 * numberOfWholeBytes);

            if (extraBits > 0)
            {
                into[offset + numberOfWholeBytes] = ReadByte(extraBits);
            }

            return(into.Slice(offset, (numberOfBits + extraBits) >> 3));
        }
Пример #9
0
 public byte[] PeekBytes(int numberOfBytes)
 {
     byte[] retval = new byte[numberOfBytes];
     NetBitWriter.ReadBytes(Data, numberOfBytes, m_readPosition, retval, 0);
     return(retval);
 }