c453b0b092244ed4dc54336457126303bb2baab1
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / core / ChannelInitializerFactory.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.impl.core;\r
10 \r
11 import org.opendaylight.openflowjava.protocol.api.connection.SwitchConnectionHandler;\r
12 import org.opendaylight.openflowjava.protocol.api.connection.TlsConfiguration;\r
13 import org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializationFactory;\r
14 import org.opendaylight.openflowjava.protocol.impl.serialization.SerializationFactory;\r
15 \r
16 /**\r
17  * @author michal.polkorab\r
18  *\r
19  */\r
20 public class ChannelInitializerFactory {\r
21 \r
22     private long switchIdleTimeOut;\r
23     private DeserializationFactory deserializationFactory;\r
24     private SerializationFactory serializationFactory;\r
25     private TlsConfiguration tlsConfig;\r
26     private SwitchConnectionHandler switchConnectionHandler;\r
27     \r
28     /**\r
29      * @return PublishingChannelInitializer that initializes new channels\r
30      */\r
31     public TcpChannelInitializer createPublishingChannelInitializer() {\r
32         TcpChannelInitializer initializer = new TcpChannelInitializer();\r
33         initializer.setSwitchIdleTimeout(switchIdleTimeOut);\r
34         initializer.setDeserializationFactory(deserializationFactory);\r
35         initializer.setSerializationFactory(serializationFactory);\r
36         initializer.setTlsConfiguration(tlsConfig);\r
37         initializer.setSwitchConnectionHandler(switchConnectionHandler);\r
38         return initializer;\r
39     }\r
40 \r
41     /**\r
42      * @return PublishingChannelInitializer that initializes new channels\r
43      */\r
44     public UdpChannelInitializer createUdpChannelInitializer() {\r
45         UdpChannelInitializer initializer = new UdpChannelInitializer();\r
46         initializer.setSwitchIdleTimeout(switchIdleTimeOut);\r
47         initializer.setDeserializationFactory(deserializationFactory);\r
48         initializer.setSerializationFactory(serializationFactory);\r
49         initializer.setSwitchConnectionHandler(switchConnectionHandler);\r
50         return initializer;\r
51     }\r
52 \r
53     /**\r
54      * @param switchIdleTimeOut\r
55      */\r
56     public void setSwitchIdleTimeout(long switchIdleTimeOut) {\r
57         this.switchIdleTimeOut = switchIdleTimeOut;\r
58     }\r
59 \r
60     /**\r
61      * @param deserializationFactory\r
62      */\r
63     public void setDeserializationFactory(DeserializationFactory deserializationFactory) {\r
64         this.deserializationFactory = deserializationFactory;\r
65     }\r
66 \r
67     /**\r
68      * @param serializationFactory\r
69      */\r
70     public void setSerializationFactory(SerializationFactory serializationFactory) {\r
71         this.serializationFactory = serializationFactory;\r
72     }\r
73 \r
74     /**\r
75      * @param tlsConfig\r
76      */\r
77     public void setTlsConfig(TlsConfiguration tlsConfig) {\r
78         this.tlsConfig = tlsConfig;\r
79     }\r
80 \r
81     /**\r
82      * @param switchConnectionHandler\r
83      */\r
84     public void setSwitchConnectionHandler(SwitchConnectionHandler switchConnectionHandler) {\r
85         this.switchConnectionHandler = switchConnectionHandler;\r
86     }\r
87 }