package org.atomnuke.task.atom.impl;
import java.util.concurrent.atomic.AtomicLong;
import org.atomnuke.task.TaskHandle;
import org.atomnuke.util.remote.CancellationRemote;
/**
*
* @author zinic
*/
public class TaskHandleImpl implements TaskHandle {
private final static AtomicLong TASK_COUNT = new AtomicLong(1);
private final CancellationRemote cancelationRemote;
private final boolean reenterant;
private final long taskId;
public TaskHandleImpl(boolean reenterant, CancellationRemote cancelationRemote) {
this.reenterant = reenterant;
this.cancelationRemote = cancelationRemote;
this.taskId = TASK_COUNT.incrementAndGet();
}
@Override
public boolean reenterant() {
return reenterant;
}
@Override
public long id() {
return taskId;
}
@Override
public CancellationRemote cancellationRemote() {
return cancelationRemote;
}
}