public Par11Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6, Task<T7> task7, Task<T8> task8, Task<T9> task9, Task<T10> task10, Task<T11> task11) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6, task7, task8, task9, task10, task11); }
public Par5Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5) { super(name); _tasks = tuple(task1, task2, task3, task4, task5); }
public Par4Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4) { super(name); _tasks = tuple(task1, task2, task3, task4); }
public Par2Task(final String name, Task<T1> task1, Task<T2> task2) { super(name); _tasks = tuple(task1, task2); }
public Par8Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6, Task<T7> task7, Task<T8> task8) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6, task7, task8); }
public Par7Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6, Task<T7> task7) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6, task7); }
public Par12Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6, Task<T7> task7, Task<T8> task8, Task<T9> task9, Task<T10> task10, Task<T11> task11, Task<T12> task12) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6, task7, task8, task9, task10, task11, task12); }
public Par6Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6); }
public Par9Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6, Task<T7> task7, Task<T8> task8, Task<T9> task9) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6, task7, task8, task9); }
public Par15Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6, Task<T7> task7, Task<T8> task8, Task<T9> task9, Task<T10> task10, Task<T11> task11, Task<T12> task12, Task<T13> task13, Task<T14> task14, Task<T15> task15) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6, task7, task8, task9, task10, task11, task12, task13, task14, task15); }
public Par10Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6, Task<T7> task7, Task<T8> task8, Task<T9> task9, Task<T10> task10) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6, task7, task8, task9, task10); }
public Par14Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6, Task<T7> task7, Task<T8> task8, Task<T9> task9, Task<T10> task10, Task<T11> task11, Task<T12> task12, Task<T13> task13, Task<T14> task14) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6, task7, task8, task9, task10, task11, task12, task13, task14); }
public Par13Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3, Task<T4> task4, Task<T5> task5, Task<T6> task6, Task<T7> task7, Task<T8> task8, Task<T9> task9, Task<T10> task10, Task<T11> task11, Task<T12> task12, Task<T13> task13) { super(name); _tasks = tuple(task1, task2, task3, task4, task5, task6, task7, task8, task9, task10, task11, task12, task13); }
public Par3Task(final String name, Task<T1> task1, Task<T2> task2, Task<T3> task3) { super(name); _tasks = tuple(task1, task2, task3); }
private Tuple3<Set<Object>, Set<PathSpec>, Boolean> reduceRequests( final Batch<RestRequestBatchKey, Response<Object>> batch) { return batch.entries().stream() .map(Entry::getKey) .map(RestRequestBatchKey::getRequest) .reduce(Tuples.tuple(new HashSet<>(), new HashSet<>(), false), GetRequestGroup::reduceRequests, GetRequestGroup::combine); }
private static Tuple3<Set<Object>, Set<PathSpec>, Boolean> reduceContainsBatch(Tuple3<Set<Object>, Set<PathSpec>, Boolean> state, Request<?> request) { if (request instanceof GetRequest) { return state; } else if (request instanceof BatchRequest) { return Tuples.tuple(state._1(), state._2(), true); } else { throw unsupportedGetRequestType(request); } }
private static Tuple3<Set<Object>, Set<PathSpec>, Boolean> combine(Tuple3<Set<Object>, Set<PathSpec>, Boolean> a, Tuple3<Set<Object>, Set<PathSpec>, Boolean> b) { Set<Object> ids = a._1(); ids.addAll(b._1()); Set<PathSpec> paths = a._2(); paths.addAll(b._2()); return Tuples.tuple(ids, paths, a._3() || b._3()); }
private static Tuple3<Set<Object>, Set<PathSpec>, Boolean> reduceFields(Tuple3<Set<Object>, Set<PathSpec>, Boolean> state, Request<?> request) { if (request instanceof GetRequest || request instanceof BatchRequest) { final Set<PathSpec> requestFields = request.getFields(); if (requestFields != null && !requestFields.isEmpty()) { if (state._2() != null) { state._2().addAll(requestFields); } return state; } else { return Tuples.tuple(state._1(), null, state._3()); } } else { throw unsupportedGetRequestType(request); } }
@Override protected Promise<Tuple2<T1, T2>> run(final Context context) throws Exception { final SettablePromise<Tuple2<T1, T2>> result = Promises.settable(); InternalUtil.fastFailAfter(p -> { if (p.isFailed()) { result.fail(p.getError()); } else { result.done(tuple(_tasks._1().get(), _tasks._2().get())); } }, _tasks._1(), _tasks._2()); _tasks.forEach(t -> context.run((Task<?>)t)); return result; }
private Task<int[]> mergeSort(final int[] toSort, final Range range) { if (range.size() == 0) { return Task.value("leaf", new int[0]); } else if (range.size() == 1) { return Task.value("leaf", new int[] { toSort[range.start()] }); } else { // Neither base case applied, so recursively split this problem into // smaller problems and then merge the results. return Task.value("ranges", Tuples.tuple(range.firstHalf(), range.secondHalf())) .flatMap("split", ranges -> Task.par(mergeSort(toSort, ranges._1()), mergeSort(toSort, ranges._2())) .map("merge", parts -> merge(ranges._1(), parts._1(), ranges._2(), parts._2()))); } }