KeePassLib.Cryptography.HashingStreamEx.Read C# (CSharp) Метод

Read() публичный Метод

public Read ( byte pbBuffer, int nOffset, int nCount ) : int
pbBuffer byte
nOffset int
nCount int
Результат int
        public override int Read(byte[] pbBuffer, int nOffset, int nCount)
        {
            if(m_bWriting) throw new InvalidOperationException();

            int nRead = m_sBaseStream.Read(pbBuffer, nOffset, nCount);

            // Mono bug workaround (LaunchPad 798910)
            int nPartialRead = nRead;
            while((nRead < nCount) && (nPartialRead != 0))
            {
                nPartialRead = m_sBaseStream.Read(pbBuffer, nOffset + nRead,
                    nCount - nRead);
                nRead += nPartialRead;
            }

            #if DEBUG
            byte[] pbOrg = new byte[pbBuffer.Length];
            Array.Copy(pbBuffer, pbOrg, pbBuffer.Length);
            #endif

            if((m_hash != null) && (nRead > 0))
                m_hash.TransformBlock(pbBuffer, nOffset, nRead, pbBuffer, nOffset);

            #if DEBUG
            Debug.Assert(MemUtil.ArraysEqual(pbBuffer, pbOrg));
            #endif

            return nRead;
        }