Java tutorial
// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University // Copyright (c) 2011, 2012 Open Networking Foundation // Copyright (c) 2012, 2013 Big Switch Networks, Inc. // This library was generated by the LoxiGen Compiler. // See the file LICENSE.txt which should have been included in the source distribution // Automatically generated by LOXI from template const_set_serializer.java // Do not modify package com.ltln.modules.openflow.core.protocol.ver10; import java.util.Set; import io.netty.buffer.ByteBuf; import com.google.common.hash.PrimitiveSink; import com.ltln.modules.openflow.core.exceptions.*; import com.ltln.modules.openflow.core.protocol.*; import com.ltln.modules.openflow.core.protocol.action.*; import com.ltln.modules.openflow.core.protocol.actionid.*; import com.ltln.modules.openflow.core.protocol.bsntlv.*; import com.ltln.modules.openflow.core.protocol.errormsg.*; import com.ltln.modules.openflow.core.protocol.instruction.*; import com.ltln.modules.openflow.core.protocol.instructionid.*; import com.ltln.modules.openflow.core.protocol.match.*; import com.ltln.modules.openflow.core.protocol.meterband.*; import com.ltln.modules.openflow.core.protocol.oxm.*; import com.ltln.modules.openflow.core.protocol.queueprop.*; import com.ltln.modules.openflow.core.types.*; import com.ltln.modules.openflow.core.util.*; import java.util.EnumSet; import java.util.Collections; public class OFCapabilitiesSerializerVer10 { public final static int FLOW_STATS_VAL = 0x1; public final static int TABLE_STATS_VAL = 0x2; public final static int PORT_STATS_VAL = 0x4; public final static int STP_VAL = 0x8; public final static int RESERVED_VAL = 0x10; public final static int IP_REASM_VAL = 0x20; public final static int QUEUE_STATS_VAL = 0x40; public final static int ARP_MATCH_IP_VAL = 0x80; public static Set<OFCapabilities> readFrom(ByteBuf bb) throws OFParseError { try { return ofWireValue(bb.readInt()); } catch (IllegalArgumentException e) { throw new OFParseError(e); } } public static void writeTo(ByteBuf bb, Set<OFCapabilities> set) { bb.writeInt(toWireValue(set)); } public static void putTo(Set<OFCapabilities> set, PrimitiveSink sink) { sink.putInt(toWireValue(set)); } public static Set<OFCapabilities> ofWireValue(int val) { EnumSet<OFCapabilities> set = EnumSet.noneOf(OFCapabilities.class); if ((val & FLOW_STATS_VAL) != 0) set.add(OFCapabilities.FLOW_STATS); if ((val & TABLE_STATS_VAL) != 0) set.add(OFCapabilities.TABLE_STATS); if ((val & PORT_STATS_VAL) != 0) set.add(OFCapabilities.PORT_STATS); if ((val & STP_VAL) != 0) set.add(OFCapabilities.STP); if ((val & RESERVED_VAL) != 0) set.add(OFCapabilities.RESERVED); if ((val & IP_REASM_VAL) != 0) set.add(OFCapabilities.IP_REASM); if ((val & QUEUE_STATS_VAL) != 0) set.add(OFCapabilities.QUEUE_STATS); if ((val & ARP_MATCH_IP_VAL) != 0) set.add(OFCapabilities.ARP_MATCH_IP); return Collections.unmodifiableSet(set); } public static int toWireValue(Set<OFCapabilities> set) { int wireValue = 0; for (OFCapabilities e : set) { switch (e) { case FLOW_STATS: wireValue |= FLOW_STATS_VAL; break; case TABLE_STATS: wireValue |= TABLE_STATS_VAL; break; case PORT_STATS: wireValue |= PORT_STATS_VAL; break; case STP: wireValue |= STP_VAL; break; case RESERVED: wireValue |= RESERVED_VAL; break; case IP_REASM: wireValue |= IP_REASM_VAL; break; case QUEUE_STATS: wireValue |= QUEUE_STATS_VAL; break; case ARP_MATCH_IP: wireValue |= ARP_MATCH_IP_VAL; break; default: throw new IllegalArgumentException( "Illegal enum value for type OFCapabilities in version 1.0: " + e); } } return wireValue; } }