Changed methods in DeviceContext, created DeviceReplyProcessor interface
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / device / DeviceManagerImpl.java
index 0a5dc6798b934a3d330e75f20ae72fd9d32fde62..cd3cb12916ad9ef7f5a27f9d3864589f1f11140a 100644 (file)
@@ -1,16 +1,19 @@
 /**
  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 package org.opendaylight.openflowplugin.impl.device;
 
-import java.util.concurrent.ExecutionException;
-
+import com.google.common.base.Preconditions;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+import javax.annotation.CheckForNull;
 import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceManager;
+import org.opendaylight.openflowplugin.api.openflow.device.DeviceState;
 import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
 import org.opendaylight.openflowplugin.api.openflow.device.Xid;
 import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceContextReadyHandler;
@@ -23,65 +26,61 @@ import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-
 /**
- * 
+ *
  */
 public class DeviceManagerImpl implements DeviceManager {
-    
+
     private static final Logger LOG = LoggerFactory.getLogger(DeviceManagerImpl.class);
-    
-    private Xid xid;
 
     @Override
-    public void deviceConnected(ConnectionContext connectionContext) {
-        xid = new Xid(0L);
-        DeviceContextImpl deviceContextImpl = new DeviceContextImpl();
+    public void deviceConnected(@CheckForNull final ConnectionContext connectionContext) {
+        Preconditions.checkArgument(connectionContext != null);
+        final DeviceState deviceState = new DeviceStateImpl(connectionContext.getFeatures(), connectionContext.getNodeId());
+//        final DeviceContextImpl deviceContextImpl = new DeviceContextImpl(connectionContext, deviceState);
 
-        try {
-            FlowCapableNode description = queryDescription(connectionContext, xid.getNextValue()).get();
-            
-        } catch (InterruptedException | ExecutionException e) {
-            // TODO Auto-generated catch block
-            LOG.info("Failed to retrieve node static info: {}", e.getMessage());
-        }
+//        try {
+//            final FlowCapableNode description = queryDescription(connectionContext, deviceContextImpl.getNextXid()).get();
+
+//        } catch (InterruptedException | ExecutionException e) {
+//            // TODO Auto-generated catch block
+//            LOG.info("Failed to retrieve node static info: {}", e.getMessage());
+//        }
     }
 
     /**
-     * @param connectionContext 
-     * @param nextXid 
+     * @param connectionContext
+     * @param xid
      */
-    private static ListenableFuture<FlowCapableNode> queryDescription(ConnectionContext connectionContext, long nextXid) {
-        MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();
+    private static ListenableFuture<FlowCapableNode> queryDescription(final ConnectionContext connectionContext, final Xid xid) {
+        final MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();
         builder.setType(MultipartType.OFPMPDESC);
         builder.setVersion(connectionContext.getFeatures().getVersion());
         builder.setFlags(new MultipartRequestFlags(false));
         builder.setMultipartRequestBody(new MultipartRequestDescCaseBuilder()
                 .build());
-        builder.setXid(nextXid);
+        builder.setXid(xid.getValue());
         connectionContext.getConnectionAdapter().multipartRequest(builder.build());
-        
+
         //TODO: involve general wait-for-answer mechanism and return future with complete value
         //TODO: translate message
-        return Futures.immediateFuture(null); 
+        return Futures.immediateFuture(null);
     }
 
     @Override
-    public void sendMessage(DataObject dataObject, RequestContext requestContext) {
+    public void sendMessage(final DataObject dataObject, final RequestContext requestContext) {
         // TODO Auto-generated method stub
 
     }
 
     @Override
-    public Xid sendRequest(DataObject dataObject, RequestContext requestContext) {
+    public Xid sendRequest(final DataObject dataObject, final RequestContext requestContext) {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
-    public void addRequestContextReadyHandler(DeviceContextReadyHandler deviceContextReadyHandler) {
+    public void addRequestContextReadyHandler(final DeviceContextReadyHandler deviceContextReadyHandler) {
         // TODO Auto-generated method stub
 
     }