Added functionality to frontend text app and made connect wait for connection

This commit is contained in:
Josh Larson
2017-03-01 10:46:58 -06:00
parent 4ebeee9b17
commit 3f63324328

View File

@@ -42,14 +42,19 @@ import com.projectswg.common.network.packets.post.PostDeleteServerPacket;
import com.projectswg.common.network.packets.post.PostDeployPacket;
import com.projectswg.common.network.packets.post.PostStopBuildPacket;
import com.projectswg.common.network.packets.post.PostStopDeployPacket;
import com.projectswg.common.network.packets.request.RequestBuildDetailedPacket;
import com.projectswg.common.network.packets.request.RequestBuildListPacket;
import com.projectswg.common.network.packets.request.RequestDeploymentDetailedPacket;
import com.projectswg.common.network.packets.request.RequestDeploymentListPacket;
import com.projectswg.common.network.packets.request.RequestPacket;
import com.projectswg.common.network.packets.request.RequestServerDetailedPacket;
import com.projectswg.common.network.packets.request.RequestServerListPacket;
import com.projectswg.common.network.packets.response.ResponseBuildDetailedPacket;
import com.projectswg.common.network.packets.response.ResponseBuildListPacket;
import com.projectswg.common.network.packets.response.ResponseDeploymentDetailedPacket;
import com.projectswg.common.network.packets.response.ResponseDeploymentListPacket;
import com.projectswg.common.network.packets.response.ResponseServerListPacket;
import com.projectswg.common.utilities.TimeUtilities;
import com.projectswg.lightspeed_frontend.communication.FrontendCommunication;
import com.projectswg.lightspeed_frontend.communication.FrontendLightspeedSession.LightspeedSessionCallback;
import com.projectswg.lightspeed_frontend.data.SharedBuildData;
@@ -140,6 +145,13 @@ public class LightspeedFrontendText implements LightspeedSessionCallback {
return;
}
communication.connect(new InetSocketAddress(addr, port));
try {
while (!communication.isConnected()) {
Thread.sleep(10);
}
} catch (InterruptedException e) {
Log.w(e);
}
}
private void processDisconnect() {
@@ -152,34 +164,53 @@ public class LightspeedFrontendText implements LightspeedSessionCallback {
return;
}
switch (args[1]) {
case "servers":
communication.send(new RequestServerListPacket());
case "server_list":
sendAwaitResponse(new RequestServerListPacket());
break;
case "server_detailed":
if (args.length < 3) {
Log.e("Invalid call to request server_detailed! Expected server id.");
break;
}
sendAwaitResponse(new RequestServerDetailedPacket(args[2]));
break;
case "build_list":
if (args.length < 3) {
Log.e("Invalid call to request build_list! Expected server id.");
break;
}
communication.send(new RequestBuildListPacket(args[2]));
sendAwaitResponse(new RequestBuildListPacket(args[2]));
break;
case "build_detailed":
if (args.length < 3) {
Log.e("Invalid call to request build_detailed! Expected build id.");
break;
}
sendAwaitResponse(new RequestBuildDetailedPacket(Long.parseLong(args[2])));
break;
case "deployment_list":
if (args.length < 3) {
Log.e("Invalid call to request deployment_list! Expected server id.");
break;
}
communication.send(new RequestDeploymentListPacket(args[2]));
sendAwaitResponse(new RequestDeploymentListPacket(args[2]));
break;
case "deployment_detailed":
if (args.length < 3) {
Log.e("Invalid call to request deployment_detailed! Expected deployment id.");
break;
}
communication.send(new RequestDeploymentDetailedPacket(Long.parseLong(args[2])));
sendAwaitResponse(new RequestDeploymentDetailedPacket(Long.parseLong(args[2])));
break;
default:
Log.e("Unknown request: " + args[1]);
return;
}
}
private void sendAwaitResponse(RequestPacket request) {
communication.send(request);
synchronized (inbound) {
try {
inbound.wait(3000);
@@ -275,6 +306,16 @@ public class LightspeedFrontendText implements LightspeedSessionCallback {
for (SharedBuildData build : ((ResponseBuildListPacket) p).getBuildList()) {
Log.i(" " + build);
}
} else if (p instanceof ResponseBuildDetailedPacket) {
ResponseBuildDetailedPacket detailed = (ResponseBuildDetailedPacket) p;
Log.i("Build: %d", detailed.getBuildId());
Log.i(" Server Id: %s", detailed.getServerId());
Log.i(" Time: %s", TimeUtilities.getDateString(TimeUtilities.convertUtcToLocal(detailed.getTime())));
Log.i(" Compile Time: %.2fms", detailed.getCompileTime());
Log.i(" Build Success: %b", detailed.isBuildSuccess());
Log.i(" Test Success: %b", detailed.isTestSuccess());
Log.i(" Cancelled: %b", detailed.isCancelled());
Log.i(" Test Results: %d/%d", detailed.getTestTotal()-detailed.getTestFailures(), detailed.getTestTotal());
} else if (p instanceof ResponseDeploymentListPacket) {
Log.i("Deployments:");
for (SharedDeploymentData deployment : ((ResponseDeploymentListPacket) p).getDeploymentList()) {
@@ -283,6 +324,8 @@ public class LightspeedFrontendText implements LightspeedSessionCallback {
} else if (p instanceof ResponseDeploymentDetailedPacket) {
ResponseDeploymentDetailedPacket detailed = (ResponseDeploymentDetailedPacket) p;
Log.i("Deployment: %d", detailed.getDeploymentId());
Log.i(" Build Id: %d", detailed.getBuildId());
Log.i(" Server Id: %s", detailed.getServerId());
Log.i(" Start Time: %d", detailed.getStartTime());
Log.i(" End Time: %d", detailed.getEndTime());
Log.i(" Output: %n%s", detailed.getOutput());