1 package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
\r
3 import io.netty.buffer.ByteBuf;
\r
5 import java.math.BigInteger;
\r
7 import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer;
\r
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableId;
\r
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage;
\r
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessageBuilder;
\r
13 * @author michal.polkorab
\r
14 * @author timotej.kubas
\r
16 public class FlowRemovedMessageFactory implements OFDeserializer<FlowRemovedMessage> {
\r
18 private static FlowRemovedMessageFactory instance;
\r
20 private FlowRemovedMessageFactory() {
\r
25 * @return singleton factory
\r
27 public static FlowRemovedMessageFactory getInstance(){
\r
28 if(instance == null){
\r
29 instance = new FlowRemovedMessageFactory();
\r
36 public FlowRemovedMessage bufferToMessage(ByteBuf rawMessage, short version) {
\r
37 FlowRemovedMessageBuilder frmb = new FlowRemovedMessageBuilder();
\r
39 frmb.setVersion(version);
\r
40 frmb.setXid(rawMessage.readUnsignedInt());
\r
42 byte[] cookie = new byte[8];
\r
43 rawMessage.readBytes(cookie);
\r
44 frmb.setCookie(new BigInteger(cookie));
\r
45 frmb.setPriority(rawMessage.readUnsignedShort());
\r
48 // frmb.setReason(FlowRemovedReason.values()[rawMessage.readInt()]);
\r
49 rawMessage.skipBytes(1); //instead of setReason
\r
51 frmb.setTableId(new TableId((long)rawMessage.readUnsignedByte()));
\r
52 frmb.setDurationSec(rawMessage.readUnsignedInt());
\r
53 frmb.setDurationNsec(rawMessage.readUnsignedInt());
\r
54 frmb.setIdleTimeout(rawMessage.readUnsignedShort());
\r
55 frmb.setHardTimeout(rawMessage.readUnsignedShort());
\r
57 byte[] packet_count = new byte[8];
\r
58 rawMessage.readBytes(packet_count);
\r
59 frmb.setPacketCount(new BigInteger(packet_count));
\r
61 byte[] byte_count = new byte[8];
\r
62 rawMessage.readBytes(byte_count);
\r
63 frmb.setByteCount(new BigInteger(byte_count));
\r
65 return frmb.build();
\r