@Override public void submitToMembers(Runnable command, Collection<Member> members, MultiExecutionCallback callback) { Callable<?> callable = createRunnableAdapter(command); MultiExecutionCallbackWrapper multiExecutionCallbackWrapper = new MultiExecutionCallbackWrapper(members.size(), callback); for (Member member : members) { final ExecutionCallbackWrapper executionCallback = new ExecutionCallbackWrapper(multiExecutionCallbackWrapper, member); submitToMember(callable, member, executionCallback); } }
@Override public void onResponse(Member member, Object value) { multiExecutionCallback.onResponse(member, value); values.put(member, value); int waitingResponse = members.decrementAndGet(); if (waitingResponse == 0) { onComplete(values); } }
@Override public void onResponse(T response) { multiExecutionCallbackWrapper.onResponse(member, response); }
@Override public void onFailure(Throwable t) { multiExecutionCallbackWrapper.onResponse(member, t); } }
@Override public void onFailure(Throwable t) { multiExecutionCallbackWrapper.onResponse(member, t); } }
@Override public <T> void submitToMembers(Callable<T> task, Collection<Member> members, MultiExecutionCallback callback) { MultiExecutionCallbackWrapper multiExecutionCallbackWrapper = new MultiExecutionCallbackWrapper(members.size(), callback); for (Member member : members) { final ExecutionCallbackWrapper<T> executionCallback = new ExecutionCallbackWrapper<T>(multiExecutionCallbackWrapper, member); submitToMember(task, member, executionCallback); } }
@Override public <T> void submitToAllMembers(Callable<T> task, MultiExecutionCallback callback) { final Collection<Member> memberList = getContext().getClusterService().getMemberList(); MultiExecutionCallbackWrapper multiExecutionCallbackWrapper = new MultiExecutionCallbackWrapper(memberList.size(), callback); for (Member member : memberList) { final ExecutionCallbackWrapper<T> executionCallback = new ExecutionCallbackWrapper<T>(multiExecutionCallbackWrapper, member); submitToMember(task, member, executionCallback); } }
@Override public <T> void submitToMembers(Callable<T> task, Collection<Member> members, MultiExecutionCallback callback) { MultiExecutionCallbackWrapper multiExecutionCallbackWrapper = new MultiExecutionCallbackWrapper(members.size(), callback); for (Member member : members) { final ExecutionCallbackWrapper<T> executionCallback = new ExecutionCallbackWrapper<T>(multiExecutionCallbackWrapper, member); submitToMember(task, member, executionCallback); } }
@Override public void onResponse(Member member, Object value) { multiExecutionCallback.onResponse(member, value); values.put(member, value); int waitingResponse = members.decrementAndGet(); if (waitingResponse == 0) { onComplete(values); } }
@Override public void onResponse(T response) { multiExecutionCallbackWrapper.onResponse(member, response); }
@Override public void submitToMembers(Runnable command, Collection<Member> members, MultiExecutionCallback callback) { Callable<?> callable = createRunnableAdapter(command); MultiExecutionCallbackWrapper multiExecutionCallbackWrapper = new MultiExecutionCallbackWrapper(members.size(), callback); for (Member member : members) { final ExecutionCallbackWrapper executionCallback = new ExecutionCallbackWrapper(multiExecutionCallbackWrapper, member); submitToMember(callable, member, executionCallback); } }