/*
* Copyright (c) 2015 NetIDE Consortium and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.openflowjava.protocol.impl.serialization;
import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.BarrierReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.EchoOutputMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.EchoRequestMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.ErrorMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.ExperimenterMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.FlowRemovedMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetAsyncReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetConfigReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetFeaturesOutputFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.HelloMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MultipartReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10BarrierReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10FeaturesReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10FlowRemovedMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10PacketInMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10PortStatusMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10QueueGetConfigReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10StatsReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.PacketInMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.PacketOutInputMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.PortStatusMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.QueueGetConfigReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.serialization.factories.RoleReplyMessageFactory;
import org.opendaylight.openflowjava.protocol.impl.util.CommonMessageRegistryHelper;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ErrorMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.ExperimenterMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemovedMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortStatusMessage;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestOutput;
/**
* @author giuseppex.petralia@intel.com
*
*/
public class AdditionalMessageFactoryInitializer {
private AdditionalMessageFactoryInitializer() {
throw new UnsupportedOperationException("Utility class shouldn't be instantiated");
}
/**
* Registers message serializers implemented within NetIde project into
* provided registry
*
* @param serializerRegistry
* registry to be initialized with message serializers
*/
public static void registerMessageSerializers(SerializerRegistry serializerRegistry) {
// register OF v1.0 message serializers
short version = EncodeConstants.OF10_VERSION_ID;
CommonMessageRegistryHelper registryHelper = new CommonMessageRegistryHelper(version, serializerRegistry);
registryHelper.registerSerializer(ErrorMessage.class, new ErrorMessageFactory());
registryHelper.registerSerializer(EchoRequestMessage.class, new EchoRequestMessageFactory());
registryHelper.registerSerializer(EchoOutput.class, new EchoOutputMessageFactory());
registryHelper.registerSerializer(GetFeaturesOutput.class, new OF10FeaturesReplyMessageFactory());
registryHelper.registerSerializer(GetConfigOutput.class, new GetConfigReplyMessageFactory());
registryHelper.registerSerializer(PacketInMessage.class, new OF10PacketInMessageFactory());
registryHelper.registerSerializer(FlowRemovedMessage.class, new OF10FlowRemovedMessageFactory());
registryHelper.registerSerializer(PortStatusMessage.class, new OF10PortStatusMessageFactory());
registryHelper.registerSerializer(MultipartReplyMessage.class, new OF10StatsReplyMessageFactory());
registryHelper.registerSerializer(BarrierOutput.class, new OF10BarrierReplyMessageFactory());
registryHelper.registerSerializer(GetQueueConfigOutput.class, new OF10QueueGetConfigReplyMessageFactory());
// register OF v1.3 message serializers
version = EncodeConstants.OF13_VERSION_ID;
registryHelper = new CommonMessageRegistryHelper(version, serializerRegistry);
registryHelper.registerSerializer(EchoOutput.class, new EchoOutputMessageFactory());
registryHelper.registerSerializer(PacketInMessage.class, new PacketInMessageFactory());
registryHelper.registerSerializer(PacketOutInput.class, new PacketOutInputMessageFactory());
registryHelper.registerSerializer(GetFeaturesOutput.class, new GetFeaturesOutputFactory());
registryHelper.registerSerializer(EchoRequestMessage.class, new EchoRequestMessageFactory());
registryHelper.registerSerializer(MultipartReplyMessage.class, new MultipartReplyMessageFactory());
registryHelper.registerSerializer(HelloMessage.class, new HelloMessageFactory());
registryHelper.registerSerializer(ErrorMessage.class, new ErrorMessageFactory());
registryHelper.registerSerializer(ExperimenterMessage.class, new ExperimenterMessageFactory());
registryHelper.registerSerializer(GetConfigOutput.class, new GetConfigReplyMessageFactory());
registryHelper.registerSerializer(FlowRemovedMessage.class, new FlowRemovedMessageFactory());
registryHelper.registerSerializer(PortStatusMessage.class, new PortStatusMessageFactory());
registryHelper.registerSerializer(BarrierOutput.class, new BarrierReplyMessageFactory());
registryHelper.registerSerializer(GetQueueConfigOutput.class, new QueueGetConfigReplyMessageFactory());
registryHelper.registerSerializer(RoleRequestOutput.class, new RoleReplyMessageFactory());
registryHelper.registerSerializer(GetAsyncOutput.class, new GetAsyncReplyMessageFactory());
}
}