Refactoring noms de classes des packets

This commit is contained in:
Marc Baloup 2017-01-15 22:27:57 +01:00
parent 48bbec7ff0
commit 20ed0fee2c
19 changed files with 114 additions and 95 deletions

View File

@ -25,7 +25,7 @@ import fr.pandacube.java.util.network.packet.PacketClient;
import fr.pandacube.java.util.network.packet.PacketException;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.ResponseCallback;
import fr.pandacube.java.util.network.packet.packets.global.PacketServerException;
import fr.pandacube.java.util.network.packet.packets.global.PacketD0ServerException;
import org.javatuples.Pair;
public class TCPClient extends Thread implements Closeable {
@ -83,10 +83,10 @@ public class TCPClient extends Thread implements Closeable {
if (!(p instanceof PacketServer))
throw new PacketException(p.getClass().getCanonicalName() + " is not a subclass of PacketServer");
if (p instanceof PacketServerException) {
if (p instanceof PacketD0ServerException) {
try {
listener.onServerException(this, ((PacketServerException)p).getExceptionString());
listener.onServerException(this, ((PacketD0ServerException)p).getExceptionString());
} catch (Exception e) {
Log.severe("Exception while calling TCPClientListener.onServerException()", e);
}

View File

@ -9,20 +9,20 @@ import fr.pandacube.java.Pandacube;
import fr.pandacube.java.util.Log;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteSerializable;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketClientClose;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketClientDeclareProcess;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketClientProcessQueryResponse;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketServerClose;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketServerConnectSuccess;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketServerProcessDeclarationConfirm;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketServerProcessInput;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketServerProcessQuery;
import fr.pandacube.java.util.network.packet.packets.global.PacketClientAuthenticate;
import fr.pandacube.java.util.network.packet.packets.global.PacketClientLogRecord;
import fr.pandacube.java.util.network.packet.packets.global.PacketServerCantAuthenticate;
import fr.pandacube.java.util.network.packet.packets.global.PacketServerException;
import fr.pandacube.java.util.network.packet.packets.web.PacketClientWebRequest;
import fr.pandacube.java.util.network.packet.packets.web.PacketServerWebResponse;
import fr.pandacube.java.util.network.packet.packets.core_slave.Packet31ClientClose;
import fr.pandacube.java.util.network.packet.packets.core_slave.Packet30ClientDeclareProcess;
import fr.pandacube.java.util.network.packet.packets.core_slave.Packet32ClientProcessQueryResponse;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketB0ServerClose;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketB2ServerConnectSuccess;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketB1ServerProcessDeclarationConfirm;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketB3ServerProcessInput;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketB4ServerProcessQuery;
import fr.pandacube.java.util.network.packet.packets.global.Packet50ClientAuthenticate;
import fr.pandacube.java.util.network.packet.packets.global.Packet51ClientLogRecord;
import fr.pandacube.java.util.network.packet.packets.global.PacketD1ServerCantAuthenticate;
import fr.pandacube.java.util.network.packet.packets.global.PacketD0ServerException;
import fr.pandacube.java.util.network.packet.packets.web.Packet00ClientWebRequest;
import fr.pandacube.java.util.network.packet.packets.web.Packet80ServerWebResponse;
/** <pre>
* Identification des packets réseaux
@ -96,22 +96,22 @@ public abstract class Packet implements ByteSerializable {
/*
* Ajout des types de packets (client + serveur)
*/
addPacket(PacketClientClose.class);
addPacket(PacketClientDeclareProcess.class);
addPacket(PacketClientProcessQueryResponse.class);
addPacket(PacketServerClose.class);
addPacket(PacketServerConnectSuccess.class);
addPacket(PacketServerProcessDeclarationConfirm.class);
addPacket(PacketServerProcessInput.class);
addPacket(PacketServerProcessQuery.class);
addPacket(Packet31ClientClose.class);
addPacket(Packet30ClientDeclareProcess.class);
addPacket(Packet32ClientProcessQueryResponse.class);
addPacket(PacketB0ServerClose.class);
addPacket(PacketB2ServerConnectSuccess.class);
addPacket(PacketB1ServerProcessDeclarationConfirm.class);
addPacket(PacketB3ServerProcessInput.class);
addPacket(PacketB4ServerProcessQuery.class);
addPacket(PacketClientAuthenticate.class);
addPacket(PacketClientLogRecord.class);
addPacket(PacketServerCantAuthenticate.class);
addPacket(PacketServerException.class);
addPacket(Packet50ClientAuthenticate.class);
addPacket(Packet51ClientLogRecord.class);
addPacket(PacketD1ServerCantAuthenticate.class);
addPacket(PacketD0ServerException.class);
addPacket(PacketClientWebRequest.class);
addPacket(PacketServerWebResponse.class);
addPacket(Packet00ClientWebRequest.class);
addPacket(Packet80ServerWebResponse.class);
}

View File

@ -2,37 +2,31 @@ package fr.pandacube.java.util.network.packet.bytebuffer;
import java.util.Arrays;
public class Array8Bit {
public class Array8Bit implements ByteSerializable {
public static final int BIT_COUNT = 8;
public static final int BIT_COUNT = Byte.SIZE;
private boolean[] values = new boolean[BIT_COUNT];
/**
*
* @param b unsigned integer value. Lowest significant bit will be used.
*/
public Array8Bit(int b) {
for (int i = 0; i<BIT_COUNT; i++) {
values[i] = (b % 2 == 1);
b >>= 1;
}
public Array8Bit(byte b) {
fromByte(b);
}
/**
* @param bits (index 0 is the lowest significant bit)
*/
public Array8Bit(boolean[] bits) {
if (bits == null || bits.length != BIT_COUNT)
throw new IllegalArgumentException("bits is null or bits.length != "+BIT_COUNT);
values = Arrays.copyOf(bits, BIT_COUNT);
}
/**
* i = 0 is the lowest significant bit
* @param i
* @return
*/
public boolean getValue(int i) {
public boolean getBit(int i) {
return values[i];
}
@ -41,12 +35,23 @@ public class Array8Bit {
* @param i
* @param b
*/
public void setValue(int i, boolean b) {
public void setBit(int i, boolean b) {
values[i] = b;
}
public byte getValuesAsByte() {
public void fromByte(byte b) {
int mask = 1;
for (int i = 0; i < BIT_COUNT; i++) {
values[i] = (b & mask) != 0;
mask <<= 1;
}
}
public byte toByte() {
byte b = 0;
for (int i=BIT_COUNT-1; i>=0; i--) {
b <<= 1;
@ -55,4 +60,18 @@ public class Array8Bit {
return b;
}
@Override
public void deserializeFromByteBuffer(ByteBuffer buffer) {
fromByte(buffer.getByte());
}
@Override
public void serializeToByteBuffer(ByteBuffer buffer) {
buffer.putByte(toByte());
}
}

View File

@ -3,12 +3,12 @@ package fr.pandacube.java.util.network.packet.packets.core_slave;
import fr.pandacube.java.util.network.packet.PacketClient;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketClientDeclareProcess extends PacketClient {
public class Packet30ClientDeclareProcess extends PacketClient {
private String processName;
private String type;
public PacketClientDeclareProcess() {
public Packet30ClientDeclareProcess() {
super((byte)0x30);
}

View File

@ -3,9 +3,9 @@ package fr.pandacube.java.util.network.packet.packets.core_slave;
import fr.pandacube.java.util.network.packet.PacketClient;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketClientClose extends PacketClient {
public class Packet31ClientClose extends PacketClient {
public PacketClientClose() {
public Packet31ClientClose() {
super((byte)0x31);
}

View File

@ -2,16 +2,16 @@ package fr.pandacube.java.util.network.packet.packets.core_slave;
import fr.pandacube.java.util.network.packet.PacketClient;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketServerProcessQuery.QueryType;
import fr.pandacube.java.util.network.packet.packets.core_slave.PacketB4ServerProcessQuery.QueryType;
public class PacketClientProcessQueryResponse extends PacketClient {
public class Packet32ClientProcessQueryResponse extends PacketClient {
private QueryType type;
private int queryId;
private byte[] responseData = null;
public PacketClientProcessQueryResponse() {
public Packet32ClientProcessQueryResponse() {
super((byte)0x32);
}
@ -35,23 +35,23 @@ public class PacketClientProcessQueryResponse extends PacketClient {
}
public static PacketClientProcessQueryResponse destroyResponse(int queryId) {
PacketClientProcessQueryResponse q = new PacketClientProcessQueryResponse();
public static Packet32ClientProcessQueryResponse destroyResponse(int queryId) {
Packet32ClientProcessQueryResponse q = new Packet32ClientProcessQueryResponse();
q.type = QueryType.DESTROY;
q.queryId = queryId;
return q;
}
public static PacketClientProcessQueryResponse isAliveResponse(int queryId, boolean resp) {
PacketClientProcessQueryResponse q = new PacketClientProcessQueryResponse();
public static Packet32ClientProcessQueryResponse isAliveResponse(int queryId, boolean resp) {
Packet32ClientProcessQueryResponse q = new Packet32ClientProcessQueryResponse();
q.type = QueryType.IS_ALIVE;
q.queryId = queryId;
q.responseData = new byte[] {(byte)(resp ? 1 : 0)};
return q;
}
public static PacketClientProcessQueryResponse exitStatusResponse(int queryId, int resp) {
PacketClientProcessQueryResponse q = new PacketClientProcessQueryResponse();
public static Packet32ClientProcessQueryResponse exitStatusResponse(int queryId, int resp) {
Packet32ClientProcessQueryResponse q = new Packet32ClientProcessQueryResponse();
q.type = QueryType.EXIT_STATUS;
q.queryId = queryId;
q.responseData = new ByteBuffer(4, CHARSET).putInt(resp).array();

View File

@ -3,9 +3,9 @@ package fr.pandacube.java.util.network.packet.packets.core_slave;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketServerClose extends PacketServer {
public class PacketB0ServerClose extends PacketServer {
public PacketServerClose() {
public PacketB0ServerClose() {
super((byte)0xB0);
}

View File

@ -3,11 +3,11 @@ package fr.pandacube.java.util.network.packet.packets.core_slave;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketServerProcessDeclarationConfirm extends PacketServer {
public class PacketB1ServerProcessDeclarationConfirm extends PacketServer {
private String serverName;
public PacketServerProcessDeclarationConfirm() {
public PacketB1ServerProcessDeclarationConfirm() {
super((byte)0xB1);
}

View File

@ -3,9 +3,9 @@ package fr.pandacube.java.util.network.packet.packets.core_slave;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketServerConnectSuccess extends PacketServer {
public class PacketB2ServerConnectSuccess extends PacketServer {
public PacketServerConnectSuccess() {
public PacketB2ServerConnectSuccess() {
super((byte)0xB2);
}

View File

@ -3,12 +3,12 @@ package fr.pandacube.java.util.network.packet.packets.core_slave;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketServerProcessInput extends PacketServer {
public class PacketB3ServerProcessInput extends PacketServer {
private String serverName;
private byte[] dataToSend;
public PacketServerProcessInput() {
public PacketB3ServerProcessInput() {
super((byte)0xB3);
}

View File

@ -4,7 +4,7 @@ import fr.pandacube.java.util.RandomUtil;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketServerProcessQuery extends PacketServer {
public class PacketB4ServerProcessQuery extends PacketServer {
private String processName;
private QueryType type;
@ -12,7 +12,7 @@ public class PacketServerProcessQuery extends PacketServer {
private byte[] queryData = null;
public PacketServerProcessQuery() {
public PacketB4ServerProcessQuery() {
super((byte)0xB4);
}
@ -36,30 +36,30 @@ public class PacketServerProcessQuery extends PacketServer {
}
public static PacketServerProcessQuery startQuery(String processName) {
PacketServerProcessQuery q = new PacketServerProcessQuery();
public static PacketB4ServerProcessQuery startQuery(String processName) {
PacketB4ServerProcessQuery q = new PacketB4ServerProcessQuery();
q.processName = processName;
q.type = QueryType.START;
return q;
}
public static PacketServerProcessQuery destroyQuery(String processName, boolean wait) {
PacketServerProcessQuery q = new PacketServerProcessQuery();
public static PacketB4ServerProcessQuery destroyQuery(String processName, boolean wait) {
PacketB4ServerProcessQuery q = new PacketB4ServerProcessQuery();
q.processName = processName;
q.type = QueryType.DESTROY;
q.queryData = new byte[] {(byte)(wait ? 1 : 0)};
return q;
}
public static PacketServerProcessQuery isAliveQuery(String processName) {
PacketServerProcessQuery q = new PacketServerProcessQuery();
public static PacketB4ServerProcessQuery isAliveQuery(String processName) {
PacketB4ServerProcessQuery q = new PacketB4ServerProcessQuery();
q.processName = processName;
q.type = QueryType.IS_ALIVE;
return q;
}
public static PacketServerProcessQuery exitStatusQuery(String processName) {
PacketServerProcessQuery q = new PacketServerProcessQuery();
public static PacketB4ServerProcessQuery exitStatusQuery(String processName) {
PacketB4ServerProcessQuery q = new PacketB4ServerProcessQuery();
q.processName = processName;
q.type = QueryType.EXIT_STATUS;
return q;

View File

@ -3,12 +3,12 @@ package fr.pandacube.java.util.network.packet.packets.global;
import fr.pandacube.java.util.network.packet.PacketClient;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketClientAuthenticate extends PacketClient {
public class Packet50ClientAuthenticate extends PacketClient {
private String password;
private String additionalData = "";
public PacketClientAuthenticate() {
public Packet50ClientAuthenticate() {
super((byte)0x50);
}

View File

@ -3,7 +3,7 @@ package fr.pandacube.java.util.network.packet.packets.global;
import fr.pandacube.java.util.network.packet.PacketClient;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketClientLogRecord extends PacketClient {
public class Packet51ClientLogRecord extends PacketClient {
private long time;
private String level;
@ -11,7 +11,7 @@ public class PacketClientLogRecord extends PacketClient {
private String message;
private String throwable;
public PacketClientLogRecord() {
public Packet51ClientLogRecord() {
super((byte)0x51);
}

View File

@ -6,11 +6,11 @@ import java.io.StringWriter;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketServerException extends PacketServer {
public class PacketD0ServerException extends PacketServer {
private String exception;
public PacketServerException() {
public PacketD0ServerException() {
super((byte)0xD0);
}

View File

@ -3,9 +3,9 @@ package fr.pandacube.java.util.network.packet.packets.global;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketServerCantAuthenticate extends PacketServer {
public class PacketD1ServerCantAuthenticate extends PacketServer {
public PacketServerCantAuthenticate() {
public PacketD1ServerCantAuthenticate() {
super((byte)0xD1);
}

View File

@ -3,13 +3,13 @@ package fr.pandacube.java.util.network.packet.packets.global;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketServerCommand extends PacketServer {
public class PacketD2ServerCommand extends PacketServer {
private String command;
private boolean async;
private boolean returnResult;
public PacketServerCommand() {
public PacketD2ServerCommand() {
super((byte)0xD2);
}

View File

@ -3,12 +3,12 @@ package fr.pandacube.java.util.network.packet.packets.web;
import fr.pandacube.java.util.network.packet.PacketClient;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketClientWebRequest extends PacketClient {
public class Packet00ClientWebRequest extends PacketClient {
private String password;
private String jsonData;
public PacketClientWebRequest() {
public Packet00ClientWebRequest() {
super((byte)0x00);
}

View File

@ -3,11 +3,11 @@ package fr.pandacube.java.util.network.packet.packets.web;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
public class PacketServerWebResponse extends PacketServer {
public class Packet80ServerWebResponse extends PacketServer {
private String jsonData;
public PacketServerWebResponse() {
public Packet80ServerWebResponse() {
super((byte)0x80);
}

View File

@ -32,7 +32,7 @@ import fr.pandacube.java.util.network.packet.PacketException;
import fr.pandacube.java.util.network.packet.PacketServer;
import fr.pandacube.java.util.network.packet.ResponseCallback;
import fr.pandacube.java.util.network.packet.bytebuffer.ByteBuffer;
import fr.pandacube.java.util.network.packet.packets.global.PacketServerException;
import fr.pandacube.java.util.network.packet.packets.global.PacketD0ServerException;
import org.javatuples.Pair;
/**
@ -158,7 +158,7 @@ public class TCPServer extends Thread implements Closeable {
} catch (Exception e) {
Log.severe("Exception while handling packet. This exception will be sent to the client with PacketServerException packet.", e);
PacketServerException packet = new PacketServerException();
PacketD0ServerException packet = new PacketD0ServerException();
packet.setException(e);
send(packet);
}