mirror of
https://github.com/collinsmith/riiablo.git
synced 2025-07-13 09:17:52 +07:00
Filled in UnreliableOrderedMessageChannel
This commit is contained in:
@ -7,7 +7,9 @@ import io.netty.channel.socket.DatagramPacket;
|
|||||||
|
|
||||||
import com.riiablo.net.reliable.Log;
|
import com.riiablo.net.reliable.Log;
|
||||||
import com.riiablo.net.reliable.MessageChannel;
|
import com.riiablo.net.reliable.MessageChannel;
|
||||||
|
import com.riiablo.net.reliable.Packet;
|
||||||
import com.riiablo.net.reliable.ReliableConfiguration;
|
import com.riiablo.net.reliable.ReliableConfiguration;
|
||||||
|
import com.riiablo.net.reliable.ReliableUtils;
|
||||||
|
|
||||||
public class UnreliableOrderedMessageChannel extends MessageChannel {
|
public class UnreliableOrderedMessageChannel extends MessageChannel {
|
||||||
private static final String TAG = "UnreliableOrderedMessageChannel";
|
private static final String TAG = "UnreliableOrderedMessageChannel";
|
||||||
@ -16,18 +18,21 @@ public class UnreliableOrderedMessageChannel extends MessageChannel {
|
|||||||
private static final boolean DEBUG_SEND = DEBUG && true;
|
private static final boolean DEBUG_SEND = DEBUG && true;
|
||||||
private static final boolean DEBUG_RECEIVE = DEBUG && true;
|
private static final boolean DEBUG_RECEIVE = DEBUG && true;
|
||||||
|
|
||||||
|
private int nextSequence = 0;
|
||||||
|
|
||||||
public UnreliableOrderedMessageChannel(PacketTransceiver packetTransceiver) {
|
public UnreliableOrderedMessageChannel(PacketTransceiver packetTransceiver) {
|
||||||
super(new ReliableConfiguration(), packetTransceiver);
|
super(new ReliableConfiguration(), packetTransceiver);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reset() {
|
public void reset() {
|
||||||
|
nextSequence = 0;
|
||||||
|
packetController.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(long time, DatagramChannel ch) {
|
public void update(long time, DatagramChannel ch) {
|
||||||
|
packetController.update(time);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -44,11 +49,14 @@ public class UnreliableOrderedMessageChannel extends MessageChannel {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPacketTransmitted(ByteBuf bb) {
|
public void onPacketTransmitted(ByteBuf bb) {
|
||||||
|
packetTransceiver.sendPacket(bb);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPacketProcessed(int sequence, ByteBuf bb) {
|
public void onPacketProcessed(int sequence, ByteBuf bb) {
|
||||||
|
if (sequence == nextSequence || ReliableUtils.sequenceGreaterThan(sequence, nextSequence)) {
|
||||||
|
nextSequence = (sequence + 1) & Packet.USHORT_MAX_VALUE;
|
||||||
|
packetTransceiver.receivePacket(bb);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user