Use internal SNAPSHOT couplings again
[trakem2.git] / TrakEM2_ / src / main / java / ini / trakem2 / parallel / CountingTaskFactory.java
blob4011e30cdd9abb2e8c79fb53d09b77941c504834
1 package ini.trakem2.parallel;
3 import java.util.concurrent.Callable;
4 import java.util.concurrent.atomic.AtomicInteger;
6 public abstract class CountingTaskFactory<I,O> extends TaskFactory<I,O> {
8 private AtomicInteger count = new AtomicInteger(0);
10 /** Generates a Callable task for an ExecutorService to process @param input.
11 * Unless overriden, will simply call process(input);
13 @Override
14 public Callable<O> create(final I input) {
15 return new Callable<O>() {
16 public O call() {
17 return process(input, count.getAndIncrement());
22 /** The actual processing on the given @param input;
23 * override to define a task to be performed over @param input.
24 * By default does nothing and returns null. */
25 public O process(final I input, final int index) { return null; }