fafdd4498ac18fc48a2544bbf840966d70de540e
[openflowjava.git] / openflow-protocol-ext / src / main / java / org / opendaylight / openflowjava / protocol / ext / deserialization / OF13ExperimenterMessageDeserializer.java
1 /*\r
2  * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 package org.opendaylight.openflowjava.protocol.ext.deserialization;\r
10 \r
11 import io.netty.buffer.ByteBuf;\r
12 \r
13 import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;\r
14 import org.opendaylight.openflowjava.protocol.ext.util.ExtConstants;\r
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;\r
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessageBuilder;\r
17 \r
18 /**\r
19  * @author michal.polkorab\r
20  *\r
21  */\r
22 public class OF13ExperimenterMessageDeserializer implements OFDeserializer<ExperimenterMessage> {\r
23 \r
24     @Override\r
25     public ExperimenterMessage deserialize(ByteBuf message) {\r
26         ExperimenterMessageBuilder builder = new ExperimenterMessageBuilder();\r
27         builder.setVersion((short) ExtConstants.OF13_VERSION_ID);\r
28         builder.setXid(message.readUnsignedInt());\r
29         builder.setExperimenter(message.readUnsignedInt());\r
30         builder.setExpType(message.readUnsignedInt());\r
31         if (message.readableBytes() > 0) {\r
32             byte[] data = new byte[message.readableBytes()];\r
33             message.readBytes(data);\r
34             builder.setData(data);\r
35         }\r
36         return builder.build();\r
37     }\r
38 \r
39 }\r