1 package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
\r
3 import io.netty.buffer.ByteBuf;
\r
5 import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer;
\r
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
\r
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessageBuilder;
\r
10 * @author michal.polkorab
\r
11 * @author timotej.kubas
\r
13 public class PortStatusMessageFactory implements OFDeserializer<PortStatusMessage> {
\r
15 private static PortStatusMessageFactory instance;
\r
16 private static final byte PADDING_IN_FEATURES_REPLY_HEADER = 7;
\r
18 private PortStatusMessageFactory() {
\r
23 * @return singleton factory
\r
25 public static PortStatusMessageFactory getInstance(){
\r
26 if(instance == null){
\r
28 instance = new PortStatusMessageFactory();
\r
35 public PortStatusMessage bufferToMessage(ByteBuf rawMessage, short version) {
\r
36 PortStatusMessageBuilder psmb = new PortStatusMessageBuilder();
\r
37 psmb.setVersion(version);
\r
38 psmb.setXid(rawMessage.readUnsignedInt());
\r
40 // TODO enum portReason
\r
41 // psmb.setReason(PortReason.values()[rawMessage.readInt()]);
\r
42 rawMessage.skipBytes(1); //instead of portReason enum
\r
44 rawMessage.skipBytes(PADDING_IN_FEATURES_REPLY_HEADER);
\r
45 return psmb.build();
\r