*/
package org.opendaylight.openflowplugin.api.openflow.device;
-
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import java.util.concurrent.Future;
+import javax.annotation.Nullable;
/**
* Request context handles all requests on device. Number of requests is limited by request quota. When this quota is
* exceeded all rpc's will end up with exception.
- * <p/>
- * Created by Martin Bobak <mbobak@cisco.com> on 25.2.2015.
+ * <p>
+ * Created by Martin Bobak <mbobak@cisco.com> on 25.2.2015.
*/
-public interface RequestContext {
+public interface RequestContext<T> extends RequestFutureContext<T>, AutoCloseable {
+ /**
+ * Returns XID generated for this request.
+ *
+ * @return Allocated XID, or null if the device has disconnected.
+ */
+ @Nullable Xid getXid();
- <T extends DataObject> Future<RpcResult<T>> createRequestFuture(DataObject dataObject);
+ @Override
+ void close();
+ /**
+ * Returns request timeout value.
+ *
+ * @return
+ */
+ long getWaitTimeout();
+ /**
+ * Sets request timeout value.
+ */
+ void setWaitTimeout(long waitTimeout);
}