Added salt field to Netty fbs

This commit is contained in:
Collin Smith
2020-06-25 19:47:39 -07:00
parent 9c586f90d0
commit ad78346c1e
7 changed files with 19 additions and 11 deletions

View File

@ -14,21 +14,25 @@ public final class Netty extends Table {
public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); } public void __init(int _i, ByteBuffer _bb) { bb_pos = _i; bb = _bb; vtable_start = bb_pos - bb.getInt(bb_pos); vtable_size = bb.getShort(vtable_start); }
public Netty __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; } public Netty __assign(int _i, ByteBuffer _bb) { __init(_i, _bb); return this; }
public byte dataType() { int o = __offset(4); return o != 0 ? bb.get(o + bb_pos) : 0; } public long salt() { int o = __offset(4); return o != 0 ? bb.getLong(o + bb_pos) : 0L; }
public Table data(Table obj) { int o = __offset(6); return o != 0 ? __union(obj, o) : null; } public byte dataType() { int o = __offset(6); return o != 0 ? bb.get(o + bb_pos) : 0; }
public Table data(Table obj) { int o = __offset(8); return o != 0 ? __union(obj, o) : null; }
public static int createNetty(FlatBufferBuilder builder, public static int createNetty(FlatBufferBuilder builder,
long salt,
byte data_type, byte data_type,
int dataOffset) { int dataOffset) {
builder.startObject(2); builder.startObject(3);
Netty.addSalt(builder, salt);
Netty.addData(builder, dataOffset); Netty.addData(builder, dataOffset);
Netty.addDataType(builder, data_type); Netty.addDataType(builder, data_type);
return Netty.endNetty(builder); return Netty.endNetty(builder);
} }
public static void startNetty(FlatBufferBuilder builder) { builder.startObject(2); } public static void startNetty(FlatBufferBuilder builder) { builder.startObject(3); }
public static void addDataType(FlatBufferBuilder builder, byte dataType) { builder.addByte(0, dataType, 0); } public static void addSalt(FlatBufferBuilder builder, long salt) { builder.addLong(0, salt, 0L); }
public static void addData(FlatBufferBuilder builder, int dataOffset) { builder.addOffset(1, dataOffset, 0); } public static void addDataType(FlatBufferBuilder builder, byte dataType) { builder.addByte(1, dataType, 0); }
public static void addData(FlatBufferBuilder builder, int dataOffset) { builder.addOffset(2, dataOffset, 0); }
public static int endNetty(FlatBufferBuilder builder) { public static int endNetty(FlatBufferBuilder builder) {
int o = builder.endObject(); int o = builder.endObject();
return o; return o;

View File

@ -9,6 +9,7 @@ union NettyData {
} }
table Netty { table Netty {
salt:int64;
data:NettyData; data:NettyData;
} }

View File

@ -90,7 +90,7 @@ public class ReliableEndpoint implements Endpoint<DatagramPacket>, MessageChanne
public void sendMessage(int channelId, ByteBuffer bb) { public void sendMessage(int channelId, ByteBuffer bb) {
if (DEBUG_SEND) Log.debug(TAG, "sendMessage"); if (DEBUG_SEND) Log.debug(TAG, "sendMessage");
Validate.inclusiveBetween(0x00, 0xFF, channelId, "channelId must fit within a ubyte"); Validate.inclusiveBetween(0x00, 0xFF, channelId, "channelId must fit within a ubyte");
if (DEBUG_CHANNEL) Log.debug(TAG, "sending message with on channel %d", channelId); if (DEBUG_CHANNEL) Log.debug(TAG, "sending message on channel %d", channelId);
MessageChannel mc = channels[channelId]; MessageChannel mc = channels[channelId];
mc.sendMessage(channelId, channel, Unpooled.wrappedBuffer(bb)); // automatically released mc.sendMessage(channelId, channel, Unpooled.wrappedBuffer(bb)); // automatically released
} }

View File

@ -198,6 +198,8 @@ public class ReliablePacketController {
} }
final int sequence = channel.incSequence(); final int sequence = channel.incSequence();
if (DEBUG_SEND) Log.debug(TAG, "packet sequence set to %d", sequence);
int ack, ackBits; int ack, ackBits;
synchronized (receivedPackets) { synchronized (receivedPackets) {
ack = receivedPackets.generateAck(); ack = receivedPackets.generateAck();
@ -263,6 +265,7 @@ public class ReliablePacketController {
isStale = !receivedPackets.testInsert(sequence); isStale = !receivedPackets.testInsert(sequence);
} }
if (DEBUG_RECEIVE) Log.debug(TAG, "packet reported sequence as %d", sequence);
final boolean isAck = Packet.isAck(flags); final boolean isAck = Packet.isAck(flags);
if (!isStale && !isAck) { if (!isStale && !isAck) {
if (DEBUG_RECEIVE) Log.debug(TAG, "processing packet %d", sequence); if (DEBUG_RECEIVE) Log.debug(TAG, "processing packet %d", sequence);

View File

@ -78,7 +78,7 @@ public class TestClient extends ApplicationAdapter implements PacketProcessor {
FlatBufferBuilder builder = new FlatBufferBuilder(); FlatBufferBuilder builder = new FlatBufferBuilder();
Connection.startConnection(builder); Connection.startConnection(builder);
int dataOffset = Connection.endConnection(builder); int dataOffset = Connection.endConnection(builder);
int offset = Netty.createNetty(builder, NettyData.Connection, dataOffset); int offset = Netty.createNetty(builder, 0L, NettyData.Connection, dataOffset);
Netty.finishNettyBuffer(builder, offset); Netty.finishNettyBuffer(builder, offset);
endpoint.sendMessage(QoS.Unreliable, builder.dataBuffer()); endpoint.sendMessage(QoS.Unreliable, builder.dataBuffer());

View File

@ -84,7 +84,7 @@ public class Client extends ApplicationAdapter {
FlatBufferBuilder builder = new FlatBufferBuilder(); FlatBufferBuilder builder = new FlatBufferBuilder();
Connection.startConnection(builder); Connection.startConnection(builder);
int dataOffset = Connection.endConnection(builder); int dataOffset = Connection.endConnection(builder);
int offset = Netty.createNetty(builder, NettyData.Connection, dataOffset); int offset = Netty.createNetty(builder, 0L, NettyData.Connection, dataOffset);
Netty.finishNettyBuffer(builder, offset); Netty.finishNettyBuffer(builder, offset);
ByteBuf byteBuf = Unpooled.wrappedBuffer(builder.dataBuffer()); ByteBuf byteBuf = Unpooled.wrappedBuffer(builder.dataBuffer());

View File

@ -52,7 +52,7 @@ public class ReliableUtilTest {
FlatBufferBuilder builder = new FlatBufferBuilder(); FlatBufferBuilder builder = new FlatBufferBuilder();
Connection.startConnection(builder); Connection.startConnection(builder);
int dataOffset = Connection.endConnection(builder); int dataOffset = Connection.endConnection(builder);
int offset = Netty.createNetty(builder, NettyData.Connection, dataOffset); int offset = Netty.createNetty(builder, 0L, NettyData.Connection, dataOffset);
Netty.finishNettyBuffer(builder, offset); Netty.finishNettyBuffer(builder, offset);
Packet.Single.setContent(bb, builder.dataBuffer()); Packet.Single.setContent(bb, builder.dataBuffer());
@ -80,7 +80,7 @@ public class ReliableUtilTest {
FlatBufferBuilder builder = new FlatBufferBuilder(); FlatBufferBuilder builder = new FlatBufferBuilder();
Connection.startConnection(builder); Connection.startConnection(builder);
int dataOffset = Connection.endConnection(builder); int dataOffset = Connection.endConnection(builder);
int offset = Netty.createNetty(builder, NettyData.Connection, dataOffset); int offset = Netty.createNetty(builder, 0L, NettyData.Connection, dataOffset);
Netty.finishNettyBuffer(builder, offset); Netty.finishNettyBuffer(builder, offset);
ByteBuf bbContent = bb.alloc().buffer(); ByteBuf bbContent = bb.alloc().buffer();