package com.nutiteq.core;
import com.mgmaps.utils.AsyncRunner;
import com.mgmaps.utils.Queue;
import com.nutiteq.task.LocalTask;
import com.nutiteq.task.TasksRunner;
import com.nutiteq.task.TasksRunnerImpl;
//TODO jaanus : evaluate this implementation
public class MappingCore {
private TasksRunner tasksRunner;
private AsyncRunner asyncCalls;
private static MappingCore instance;
private MappingCore() {
}
public static MappingCore getInstance() {
if (instance == null) {
instance = new MappingCore();
}
return instance;
}
public TasksRunner getTasksRunner() {
if (tasksRunner == null) {
tasksRunner = new TasksRunnerImpl(new Queue());
}
return tasksRunner;
}
public void runAsync(final LocalTask task) {
final AsyncRunner runner = new AsyncRunner(task);
runner.start();
}
public static void clean() {
getInstance().getTasksRunner().quit();
instance = null;
}
public void setTasksRunner(final TasksRunner nextRunner) {
tasksRunner = nextRunner;
}
}