コード例 #1
0
        void AddReceivedPacketBufferHoleEntry(ReceivedPacketBuffer receivedPacketBuffer, Int32 firstIndex, Int32 lastIndex)
        {
            Int32 availableIndex = -1;

            for (Int32 i = 0; i < receivedPacketBuffer.Holes.Length; i++)
            {
                if (receivedPacketBuffer.Holes[i].FirstIndex == -1 && receivedPacketBuffer.Holes[i].LastIndex == -1)
                {
                    availableIndex = i;
                    break;
                }
            }

            // if we could not find an empty entry, enlarge the array.
            if (availableIndex == -1)
            {
                ReceivedPacketBufferHoles[] newHoles = new ReceivedPacketBufferHoles[receivedPacketBuffer.Holes.Length + 1];
                Array.Copy(receivedPacketBuffer.Holes, newHoles, receivedPacketBuffer.Holes.Length);
                receivedPacketBuffer.Holes = newHoles;
                availableIndex             = receivedPacketBuffer.Holes.Length - 1;
            }

            receivedPacketBuffer.Holes[availableIndex].FirstIndex = firstIndex;
            receivedPacketBuffer.Holes[availableIndex].LastIndex  = lastIndex;
        }
コード例 #2
0
        void AddReceivedPacketBufferHoleEntry(ReceivedPacketBuffer receivedPacketBuffer, Int32 firstIndex, Int32 lastIndex)
        {
            Int32 availableIndex = -1;
            for (Int32 i = 0; i < receivedPacketBuffer.Holes.Length; i++)
            {
                if (receivedPacketBuffer.Holes[i].FirstIndex == -1 && receivedPacketBuffer.Holes[i].LastIndex == -1)
                {
                    availableIndex = i;
                    break;
                }
            }

            // if we could not find an empty entry, enlarge the array.
            if (availableIndex == -1)
            {
                ReceivedPacketBufferHoles[] newHoles = new ReceivedPacketBufferHoles[receivedPacketBuffer.Holes.Length + 1];
                Array.Copy(receivedPacketBuffer.Holes, newHoles, receivedPacketBuffer.Holes.Length);
                receivedPacketBuffer.Holes = newHoles;
                availableIndex = receivedPacketBuffer.Holes.Length - 1;
            }

            receivedPacketBuffer.Holes[availableIndex].FirstIndex = firstIndex;
            receivedPacketBuffer.Holes[availableIndex].LastIndex = lastIndex;
        }