added requestMap access methods
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / device / DeviceContextImpl.java
index 356d95ee3e1e38cda674a48343295c5b76fe1814..b49773ac3f4a8b62ce1ff9e5e8582183ba723c33 100644 (file)
@@ -188,16 +188,25 @@ public class DeviceContextImpl implements DeviceContext {
     }
 
     @Override
-    public Map<Long, RequestContext> getRequests() {
-        return requests;
+    public RequestContext lookupRequest(Xid xid) {
+        return requests.get(xid.getValue());
+    }
+
+    @Override
+    public int getNumberOfOutstandingRequests() {
+        return requests.size();
     }
 
     @Override
     public void hookRequestCtx(final Xid xid, final RequestContext requestFutureContext) {
-        // TODO Auto-generated method stub
         requests.put(xid.getValue(), requestFutureContext);
     }
 
+    @Override
+    public RequestContext unhookRequestCtx(Xid xid) {
+        return requests.remove(xid.getValue());
+    }
+
     @Override
     public void attachOpenflowMessageListener(final OpenflowMessageListenerFacade openflowMessageListenerFacade) {
         this.openflowMessageListenerFacade = openflowMessageListenerFacade;
@@ -226,10 +235,10 @@ public class DeviceContextImpl implements DeviceContext {
 
     @Override
     public void processReply(final OfHeader ofHeader) {
-        final RequestContext requestContext = getRequests().get(ofHeader.getXid());
+        final RequestContext requestContext = requests.get(ofHeader.getXid());
         if (null != requestContext) {
             final SettableFuture replyFuture = requestContext.getFuture();
-            getRequests().remove(ofHeader.getXid());
+            requests.remove(ofHeader.getXid());
             RpcResult<OfHeader> rpcResult;
             if (ofHeader instanceof Error) {
                 final Error error = (Error) ofHeader;
@@ -261,10 +270,10 @@ public class DeviceContextImpl implements DeviceContext {
 
     @Override
     public void processReply(final Xid xid, final List<MultipartReply> ofHeaderList) {
-        final RequestContext requestContext = getRequests().get(xid.getValue());
+        final RequestContext requestContext = requests.get(xid.getValue());
         if (null != requestContext) {
             final SettableFuture replyFuture = requestContext.getFuture();
-            getRequests().remove(xid.getValue());
+            requests.remove(xid.getValue());
             final RpcResult<List<MultipartReply>> rpcResult = RpcResultBuilder
                     .<List<MultipartReply>>success()
                     .withResult(ofHeaderList)
@@ -290,11 +299,11 @@ public class DeviceContextImpl implements DeviceContext {
 
         LOG.trace("Processing exception for xid : {}", xid.getValue());
 
-        final RequestContext requestContext = getRequests().get(xid.getValue());
+        final RequestContext requestContext = requests.get(xid.getValue());
 
         if (null != requestContext) {
             final SettableFuture replyFuture = requestContext.getFuture();
-            getRequests().remove(xid.getValue());
+            requests.remove(xid.getValue());
             final RpcResult<List<OfHeader>> rpcResult = RpcResultBuilder
                     .<List<OfHeader>>failed()
                     .withError(RpcError.ErrorType.APPLICATION, String.format("Message processing failed : %s", deviceDataException.getError()), deviceDataException)