NewTOAPIA.Net.Udt.CSndLossList.getLostSeq C# (CSharp) Méthode

getLostSeq() public méthode

public getLostSeq ( ) : Int32
Résultat System.Int32
        public Int32 getLostSeq()
        {
            if (0 == m_iLength)
                return -1;

            CGuard listguard = new CGuard(m_ListLock);

            if (0 == m_iLength)
                return -1;

            if (m_iLastInsertPos == m_iHead)
                m_iLastInsertPos = -1;

            // return the first loss seq. no.
            Int32 seqno = m_piData1[m_iHead];

            // head moves to the next node
            if (-1 == m_piData2[m_iHead])
            {
                //[3, -1] becomes [], and head moves to next node in the list
                m_piData1[m_iHead] = -1;
                m_iHead = m_piNext[m_iHead];
            }
            else
            {
                // shift to next node, e.g., [3, 7] becomes [], [4, 7]
                int loc = (m_iHead + 1) % m_iSize;

                m_piData1[loc] = CSeqNo.incseq(seqno);
                if (CSeqNo.seqcmp(m_piData2[m_iHead], m_piData1[loc]) > 0)
                    m_piData2[loc] = m_piData2[m_iHead];

                m_piData1[m_iHead] = -1;
                m_piData2[m_iHead] = -1;

                m_piNext[loc] = m_piNext[m_iHead];
                m_iHead = loc;
            }

            m_iLength--;

            return seqno;
        }
    }