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;
11 * Translates Experimenter messages
12 * @author michal.polkorab,
13 * @author timotej.kubas
15 public class ExperimenterMessageFactory implements OFDeserializer<ExperimenterMessage>{
17 private static ExperimenterMessageFactory instance;
19 private ExperimenterMessageFactory() {
25 * @return singleton factory
27 public static synchronized ExperimenterMessageFactory getInstance(){
28 if (instance == null){
29 instance = new ExperimenterMessageFactory();
35 public ExperimenterMessage bufferToMessage(ByteBuf rawMessage, short version) {
36 ExperimenterMessageBuilder builder = new ExperimenterMessageBuilder();
37 builder.setVersion(version);
38 builder.setXid(rawMessage.readUnsignedInt());
39 builder.setExperimenter(rawMessage.readUnsignedInt());
40 builder.setExpType(rawMessage.readUnsignedInt());
41 int remainingBytes = rawMessage.readableBytes();
42 if (remainingBytes > 0) {
43 builder.setData(rawMessage.readBytes(remainingBytes).array());
45 return builder.build();