Exemple #1
0
        public static void EncodePacketData(Session session, Packet packet, ref bool packetQuaranteed)
        {
            int currentIndex = packet.DataStartIndex;
            int lastIndex    = 0;

            for (int i = 0; i < 150; i++)
            {
                lastIndex = currentIndex;

                bool frameQuaranteed = false;
                currentIndex = FrameEncoder.EncodeFrame(session, packet.PacketBytes, currentIndex, ref frameQuaranteed);

                if (frameQuaranteed)
                {
                    packetQuaranteed = true;
                }

                if (currentIndex > MxpConstants.MaxPacketSize - MxpConstants.MaxFrameDataSize)
                {
                    break; // Packet full.
                }
                if (currentIndex == lastIndex)
                {
                    break; // Nothing queued to send.
                }
            }

            packet.PacketLength = currentIndex;
        }
Exemple #2
0
        public static void DecodePacketData(Session session, Packet packet, ref bool packetQuaranteed)
        {
            int currentIndex = packet.DataStartIndex;

            for (int i = 0; i < 150; i++)
            {
                bool frameQuaranteed = false;

                currentIndex = FrameEncoder.DecodeFrame(session, packet.PacketBytes, currentIndex, ref frameQuaranteed);

                if (frameQuaranteed)
                {
                    packetQuaranteed = true;
                }

                if (currentIndex == packet.PacketLength)
                {
                    break; // Packet full.
                }
            }
        }