Package org.flowforwarding.warp.protocol.ofmessages

Source Code of org.flowforwarding.warp.protocol.ofmessages.OFMessageSwitchConfig

/**
* © 2013 FlowForwarding.Org
* All Rights Reserved.  Use is subject to license terms.
*/
package org.flowforwarding.warp.protocol.ofmessages;

import java.util.HashMap;
import java.util.Map;

import org.flowforwarding.warp.protocol.supply.OFMAddConfigFlag;
import org.flowforwarding.warp.protocol.supply.OFMGet;

/**
* @author Infoblox Inc.
*
*/
public class OFMessageSwitchConfig  extends OFMessage{
 
   // TODO Improvs: think how to hide it!
   public enum ConfigFlag{
      FRAG_NORMAL,
      FRAG_DROP,
      FRAG_REASM,
      FRAG_MASK
   }
  
   protected Map<ConfigFlag, Boolean> configFlags;

   public void setFlag (ConfigFlag flag) {
      configFlags.put(flag, true);
   }
  
   public void setFlag (ConfigFlag flag, Boolean value) {
      configFlags.put(flag, value.booleanValue());
   }
  
   // TODO Improvs: does Boolean configFlags.get(flag) means something? Or containsKey(flag) is enough?
   public Boolean getFlag (ConfigFlag flag) {
      return configFlags.containsKey(flag);
   }
  
  
   protected OFMessageSwitchConfig() {
      configFlags = new HashMap<>();
   }
  
   public static class OFMessageSwitchConfigRef extends OFMessageRef <OFMessageSwitchConfig> {
     
      protected OFMAddConfigFlag addFlag;
      protected OFMGetConfigFlag getFlag;
     
      protected OFMessageSwitchConfigRef() {
         message = new OFMessageSwitchConfig();
         addFlag = new OFMAddConfigFlag(message);
         getFlag = new OFMGetConfigFlag(message);
      }
     
      public static OFMessageSwitchConfigRef create () {
         return new OFMessageSwitchConfigRef();
      }
     
      public void setConfigFlagFragNormal () {
         addFlag.add(ConfigFlag.FRAG_NORMAL, true);
      }
     
      public void setConfigFlagFragDrop () {
         addFlag.add(ConfigFlag.FRAG_DROP, true);
      }
     
      public void setConfigFlagFragReasm () {
         addFlag.add(ConfigFlag.FRAG_REASM, true);
      }
     
      public void setConfigFlagFragMask () {
         addFlag.add(ConfigFlag.FRAG_MASK, true);
      }
     
      public Boolean isFragNormal() {
         return getFlag.get(ConfigFlag.FRAG_NORMAL);
      }
     
      public Boolean isFragDrop() {
         return getFlag.get(ConfigFlag.FRAG_DROP);
      }

      public Boolean isFragReasm() {
         return getFlag.get(ConfigFlag.FRAG_REASM);
      }

      public Boolean isFragMask() {
         return getFlag.get(ConfigFlag.FRAG_MASK);
      }
     
      public class OFMGetConfigFlag extends OFMGet<OFMessageSwitchConfig, ConfigFlag> {
         public OFMGetConfigFlag(OFMessageSwitchConfig swConfig) {
            receiver = swConfig;
         }
        
         // TODO Improvs: add another get to OFMGet
         public Boolean get (ConfigFlag flag) {
            return receiver.getFlag(flag);
         }
      }
   }
}
TOP

Related Classes of org.flowforwarding.warp.protocol.ofmessages.OFMessageSwitchConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.