1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */
2 package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
4 import io.netty.buffer.ByteBuf;
6 import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer;
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessageBuilder;
12 * @author michal.polkorab,
13 * @author timotej.kubas
16 public class ExperimenterMessageFactory implements OFDeserializer<ExperimenterMessage>{
18 private static ExperimenterMessageFactory instance;
20 private ExperimenterMessageFactory() {
26 * @return singleton factory
28 public static synchronized ExperimenterMessageFactory getInstance(){
29 if (instance == null){
30 instance = new ExperimenterMessageFactory();
36 public ExperimenterMessage bufferToMessage(ByteBuf rawMessage, short version) {
37 ExperimenterMessageBuilder builder = new ExperimenterMessageBuilder();
38 builder.setVersion(version);
39 builder.setXid(rawMessage.readUnsignedInt());
40 builder.setExperimenter(rawMessage.readUnsignedInt());
41 builder.setExpType(rawMessage.readUnsignedInt());
42 int remainingBytes = rawMessage.readableBytes();
43 if (remainingBytes > 0) {
44 builder.setData(rawMessage.readBytes(remainingBytes).array());
46 return builder.build();