package io.vivarium.net;
import java.io.File;
import java.util.concurrent.ExecutionException;
import io.vivarium.client.TaskClient;
import io.vivarium.client.WorkerClient;
import io.vivarium.client.WorkerConfig;
import io.vivarium.client.task.DownloadResourceTask;
import io.vivarium.client.task.UploadResourceTask;
import io.vivarium.core.GridWorld;
import io.vivarium.core.GridWorldBlueprint;
import io.vivarium.server.VivariumResearchServer;
import io.vivarium.util.UUID;
public class DemoTest
{
public static void main(String[] args) throws Exception
{
// Run Server
VivariumResearchServer.main(args);
Thread.sleep(100);
GridWorld world = new GridWorld(GridWorldBlueprint.makeDefault());
UploadResourceTask t1 = new UploadResourceTask(UUID.randomUUID(), world);
TaskClient c1 = new TaskClient(t1);
c1.connect();
System.out.println("New world with " + world.getCreatureCount() + " creatures");
/*
* List<UUID> dependencies = new LinkedList<>();
* dependencies.add(UUID.fromString("b51738f3-9f08-42ce-969d-ffae6c722e6e"));
* dependencies.add(UUID.fromString("7bd92d3d-f0f0-4760-9ad3-2f4302530e2c")); Job job = new
* SimulationJob(dependencies, UUID.fromString("d51b6b31-84b5-0835-d5d5-05467ab4f04d"),
* UUID.fromString("d51b6b31-84b5-0835-d5d5-05467ab4f04d"), 20000); TaskClient c2 = new TaskClient(new
* CreateJobTask(job)); c2.connect();
*/
Thread.sleep(100);
WorkerClient w = new WorkerClient(WorkerConfig.loadWorkerConfig(new File(WorkerConfig.DEFAULT_PATH), true));
w.connect();
Thread.sleep(100);
// Don't try to request before they have it.
Thread.sleep(300);
DownloadResourceTask t3 = new DownloadResourceTask(t1.getResourceUUID());
TaskClient c3 = new TaskClient(t3);
c3.connect();
try
{
GridWorld world_copy = t3.waitForResource().getFirst(GridWorld.class);
System.out.println("DL world with " + world_copy.getCreatureCount() + " creatures");
}
catch (ExecutionException e)
{
e.printStackTrace();
}
// Thread.sleep(1000);
System.exit(0);
}
}