package cactusServer.utils;
import java.util.Timer;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import org.glassfish.jersey.server.ResourceConfig;
import org.ntlab.radishforandroidstudio.framework.model3D.Position3D;
import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D;
import cactusServer.entities.*;
import cactusServer.entities.Character;
import cactusServer.models.Accounts;
import cactusServer.models.CharacterModelManager;
import cactusServer.models.Instances;
import cactusServer.models.StageModelManager;
@SuppressWarnings("unused")
@ApplicationPath("/rest")
public class App extends ResourceConfig implements Runnable {
private ScheduledThreadPoolExecutor task = new ScheduledThreadPoolExecutor(4);
public App() {
StageModelManager.getInstance();
CharacterModelManager.getInstance();
Instances.getInstance();
Accounts.getInstance();
initDummy();
start(10000);
System.out.println("pass");
}
@Override
public void run() {
System.out.println("タスクを実行");
}
public void start(int interval) {
task.scheduleWithFixedDelay(this, interval, interval, TimeUnit.MILLISECONDS);
}
private void initDummy() {
Accounts.getInstance().createAcount("test", "test", "test");
Instances.getInstance().getInstances().put("test1", new Instance("test1", 0));
Instances.getInstance().getInstances().put("test2", new Instance("test2", 1));
String accountUri = "/CactusServer/rest/accounts/"
+ Accounts.getInstance().getAccountByID("test").getUniqueID();
Character chara1 = new Character("test1", accountUri, "chara1", new Position3D(), new Quaternion3D(), 0);
Character chara2 = new Character("test2", accountUri, "chara2", new Position3D(), new Quaternion3D(), 0);
Instances.getInstance().getInstance("test1").getCharacters().put("chara1", chara1);
Instances.getInstance().getInstance("test1").getCharacters().put("chara2", chara2);
Instances.getInstance().getInstance("test2").getCharacters().put("chara1", chara1);
Instances.getInstance().getInstance("test2").getCharacters().put("chara2", chara2);
}
}