2 * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
\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
8 package org.opendaylight.openflowjava.protocol.impl.serialization;
\r
10 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
\r
11 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.BarrierInputMessageFactory;
\r
12 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.EchoInputMessageFactory;
\r
13 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.EchoReplyInputMessageFactory;
\r
14 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.FlowModInputMessageFactory;
\r
15 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetAsyncRequestMessageFactory;
\r
16 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetConfigInputMessageFactory;
\r
17 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetFeaturesInputMessageFactory;
\r
18 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GetQueueConfigInputMessageFactory;
\r
19 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.GroupModInputMessageFactory;
\r
20 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.HelloInputMessageFactory;
\r
21 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MeterModInputMessageFactory;
\r
22 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MultipartRequestInputFactory;
\r
23 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10BarrierInputMessageFactory;
\r
24 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10FlowModInputMessageFactory;
\r
25 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10HelloInputMessageFactory;
\r
26 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10PacketOutInputMessageFactory;
\r
27 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10PortModInputMessageFactory;
\r
28 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10QueueGetConfigInputMessageFactory;
\r
29 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.OF10StatsRequestInputFactory;
\r
30 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.PacketOutInputMessageFactory;
\r
31 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.PortModInputMessageFactory;
\r
32 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.RoleRequestInputMessageFactory;
\r
33 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.SetAsyncInputMessageFactory;
\r
34 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.SetConfigMessageFactory;
\r
35 import org.opendaylight.openflowjava.protocol.impl.serialization.factories.TableModInputMessageFactory;
\r
36 import org.opendaylight.openflowjava.protocol.impl.util.CommonMessageRegistryHelper;
\r
37 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
\r
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput;
\r
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoInput;
\r
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoReplyInput;
\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput;
\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetAsyncInput;
\r
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigInput;
\r
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesInput;
\r
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigInput;
\r
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInput;
\r
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloInput;
\r
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInput;
\r
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
\r
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketOutInput;
\r
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortModInput;
\r
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestInput;
\r
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetAsyncInput;
\r
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;
\r
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.TableModInput;
\r
58 * @author michal.polkorab
\r
61 public class MessageFactoryInitializer {
\r
64 * Registers message serializers into provided registry
\r
65 * @param serializerRegistry registry to be initialized with message serializers
\r
67 public static void registerMessageSerializers(SerializerRegistry serializerRegistry) {
\r
68 // register OF v1.0 message serializers
\r
69 short version = EncodeConstants.OF10_VERSION_ID;
\r
70 CommonMessageRegistryHelper registryHelper = new CommonMessageRegistryHelper(version, serializerRegistry);
\r
71 registryHelper.registerSerializer(BarrierInput.class, new OF10BarrierInputMessageFactory());
\r
72 registryHelper.registerSerializer(EchoInput.class, new EchoInputMessageFactory());
\r
73 registryHelper.registerSerializer(EchoReplyInput.class, new EchoReplyInputMessageFactory());
\r
74 registryHelper.registerSerializer(FlowModInput.class, new OF10FlowModInputMessageFactory());
\r
75 registryHelper.registerSerializer(GetConfigInput.class, new GetConfigInputMessageFactory());
\r
76 registryHelper.registerSerializer(GetFeaturesInput.class, new GetFeaturesInputMessageFactory());
\r
77 registryHelper.registerSerializer(GetQueueConfigInput.class, new OF10QueueGetConfigInputMessageFactory());
\r
78 registryHelper.registerSerializer(HelloInput.class, new OF10HelloInputMessageFactory());
\r
79 registryHelper.registerSerializer(MultipartRequestInput.class, new OF10StatsRequestInputFactory());
\r
80 registryHelper.registerSerializer(PacketOutInput.class, new OF10PacketOutInputMessageFactory());
\r
81 registryHelper.registerSerializer(PortModInput.class, new OF10PortModInputMessageFactory());
\r
82 registryHelper.registerSerializer(SetConfigInput.class, new SetConfigMessageFactory());
\r
83 // register OF v1.3 message serializers
\r
84 version = EncodeConstants.OF13_VERSION_ID;
\r
85 registryHelper = new CommonMessageRegistryHelper(version, serializerRegistry);
\r
86 registryHelper.registerSerializer(BarrierInput.class, new BarrierInputMessageFactory());
\r
87 registryHelper.registerSerializer(EchoInput.class, new EchoInputMessageFactory());
\r
88 registryHelper.registerSerializer(EchoReplyInput.class, new EchoReplyInputMessageFactory());
\r
89 registryHelper.registerSerializer(FlowModInput.class, new FlowModInputMessageFactory());
\r
90 registryHelper.registerSerializer(GetAsyncInput.class, new GetAsyncRequestMessageFactory());
\r
91 registryHelper.registerSerializer(GetConfigInput.class, new GetConfigInputMessageFactory());
\r
92 registryHelper.registerSerializer(GetFeaturesInput.class, new GetFeaturesInputMessageFactory());
\r
93 registryHelper.registerSerializer(GetQueueConfigInput.class, new GetQueueConfigInputMessageFactory());
\r
94 registryHelper.registerSerializer(GroupModInput.class, new GroupModInputMessageFactory());
\r
95 registryHelper.registerSerializer(HelloInput.class, new HelloInputMessageFactory());
\r
96 registryHelper.registerSerializer(MeterModInput.class, new MeterModInputMessageFactory());
\r
97 registryHelper.registerSerializer(MultipartRequestInput.class, new MultipartRequestInputFactory());
\r
98 registryHelper.registerSerializer(PacketOutInput.class, new PacketOutInputMessageFactory());
\r
99 registryHelper.registerSerializer(PortModInput.class, new PortModInputMessageFactory());
\r
100 registryHelper.registerSerializer(RoleRequestInput.class, new RoleRequestInputMessageFactory());
\r
101 registryHelper.registerSerializer(SetAsyncInput.class, new SetAsyncInputMessageFactory());
\r
102 registryHelper.registerSerializer( SetConfigInput.class, new SetConfigMessageFactory());
\r
103 registryHelper.registerSerializer(TableModInput.class, new TableModInputMessageFactory());
\r