package com.kedzie.vbox.task;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.kedzie.vbox.R;
import com.kedzie.vbox.SettingsActivity;
import com.kedzie.vbox.api.IMachine;
import com.kedzie.vbox.api.jaxb.SessionState;
import com.kedzie.vbox.app.Utils;
import com.kedzie.vbox.soap.VBoxSvc;
public class LaunchVMProcessTask extends DialogTask<IMachine, IMachine> {
public LaunchVMProcessTask(SherlockFragmentActivity activity, VBoxSvc vmgr) {
super(activity, vmgr, R.string.progress_starting);
}
@Override
protected IMachine work(IMachine... m) throws Exception {
if(!m[0].getSessionState().equals(SessionState.UNLOCKED))
throw new RuntimeException("Machine session state is " + m[0].getSessionState());
handleProgress( m[0].launchVMProcess(_vmgr.getVBox().getSessionObject(), IMachine.LaunchMode.headless) );
_vmgr.getVBox().getPerformanceCollector().setupMetrics(new String[] { "*:" },
Utils.getIntPreference(getContext(), SettingsActivity.PREF_PERIOD),
Utils.getIntPreference(getContext(), SettingsActivity.PREF_COUNT), m[0]);
return m[0];
}
}