2 * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.openflowplugin.impl.protocol.serialization.util;
11 import io.netty.buffer.ByteBuf;
12 import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderSerializer;
13 import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
14 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
15 import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction;
19 * Utility class for instruction serialization.
21 public class InstructionUtil {
24 * Serialize instruction.
26 * @param instruction OpenFlow instruction
27 * @param version OpenFlow version
28 * @param registry OpenFlowJava serializer registry
29 * @param outBuffer output buffer
31 @SuppressWarnings("unchecked")
32 public static void writeInstruction(final Instruction instruction,
34 final SerializerRegistry registry,
35 final ByteBuf outBuffer) {
37 registry.<Instruction, OFSerializer<Instruction>>getSerializer(
40 (Class<Instruction>) instruction.getImplementedInterface()))
41 .serialize(instruction, outBuffer);
46 * Serialize instruction header.
48 * @param instruction OpenFlow instruction
49 * @param version OpenFlow version
50 * @param registry OpenFlowJava serializer registry
51 * @param outBuffer output buffer
53 @SuppressWarnings("unchecked")
54 public static void writeInstructionHeader(final Instruction instruction,
56 final SerializerRegistry registry,
57 final ByteBuf outBuffer) {
59 registry.<Instruction, HeaderSerializer<Instruction>>getSerializer(
62 (Class<Instruction>) instruction.getImplementedInterface()))
63 .serializeHeader(instruction, outBuffer);