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; }
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. } } }