package net.floodlightcontroller.core;
import org.projectfloodlight.openflow.protocol.OFMessage;
import com.google.common.util.concurrent.AbstractFuture;
/** Implementation of a ListenableFuture that provides a Deliverable interface to
* the provider.
*
* @author Andreas Wundsam <andreas.wundsam@bigswitch.com>
* @see Deliverable
* @param <T>
*/
public class DeliverableListenableFuture<T> extends AbstractFuture<T> implements Deliverable<T> {
private OFMessage request;
public DeliverableListenableFuture(OFMessage msg) {
this.request = msg;
}
@Override
public void deliver(final T result) {
set(result);
}
@Override
public void deliverError(final Throwable cause) {
setException(cause);
}
@Override
public OFMessage getRequest() {
return request;
}
}