* @param <R>
* The type of the high-level operation result
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
* @param <R>
* The type of the high-level operation result
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
/** The list of callback listeners. */
private final List<HighLevelCallbackListener<R>> highLevelCallbackListeners = Collections.synchronizedList(new ArrayList<HighLevelCallbackListener<R>>());
/** The list of callback listeners. */
private final List<HighLevelCallbackListener<R>> highLevelCallbackListeners = Collections.synchronizedList(new ArrayList<HighLevelCallbackListener<R>>());
* Adds a callback listener to this callback. The callback listener will be
* called as soon as the result of the operation is known. If the result is
* already known, the listener will be called immediately. Also, as soon as
* Adds a callback listener to this callback. The callback listener will be
* called as soon as the result of the operation is known. If the result is
* already known, the listener will be called immediately. Also, as soon as
*
* @see HighLevelCallbackListener#gotResult(HighLevelCallback)
*/
private synchronized void fireGotResult() {
for (HighLevelCallbackListener<R> highLevelCallbackListener: highLevelCallbackListeners) {
*
* @see HighLevelCallbackListener#gotResult(HighLevelCallback)
*/
private synchronized void fireGotResult() {
for (HighLevelCallbackListener<R> highLevelCallbackListener: highLevelCallbackListeners) {