2 * Copyright (c) 2015 Cisco Systems, Inc. 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.netconf.test.tool.client.stress;
11 import io.netty.channel.EventLoopGroup;
12 import io.netty.util.Timer;
14 import org.opendaylight.netconf.client.NetconfClientDispatcherImpl;
15 import org.opendaylight.netconf.client.NetconfClientSessionNegotiatorFactory;
16 import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
18 public class ConfigurableClientDispatcher extends NetconfClientDispatcherImpl {
20 private final Set<String> capabilities;
22 private ConfigurableClientDispatcher(final EventLoopGroup bossGroup, final EventLoopGroup workerGroup,
23 final Timer timer, final Set<String> capabilities) {
24 super(bossGroup, workerGroup, timer);
25 this.capabilities = capabilities;
29 * EXI + chunked framing.
31 public static ConfigurableClientDispatcher createChunkedExi(final EventLoopGroup bossGroup,
32 final EventLoopGroup workerGroup, final Timer timer) {
33 return new ConfigurableClientDispatcher(bossGroup, workerGroup, timer,
34 NetconfClientSessionNegotiatorFactory.EXI_CLIENT_CAPABILITIES);
38 * EXI + ]]gt;]]gt; framing.
40 public static ConfigurableClientDispatcher createLegacyExi(final EventLoopGroup bossGroup,
41 final EventLoopGroup workerGroup, final Timer timer) {
42 return new ConfigurableClientDispatcher(bossGroup, workerGroup, timer,
43 NetconfClientSessionNegotiatorFactory.LEGACY_EXI_CLIENT_CAPABILITIES);
49 public static ConfigurableClientDispatcher createChunked(final EventLoopGroup bossGroup,
50 final EventLoopGroup workerGroup, final Timer timer) {
51 return new ConfigurableClientDispatcher(bossGroup, workerGroup, timer,
52 NetconfClientSessionNegotiatorFactory.DEFAULT_CLIENT_CAPABILITIES);
58 public static ConfigurableClientDispatcher createLegacy(final EventLoopGroup bossGroup,
59 final EventLoopGroup workerGroup, final Timer timer) {
60 return new ConfigurableClientDispatcher(bossGroup, workerGroup, timer,
61 NetconfClientSessionNegotiatorFactory.LEGACY_FRAMING_CLIENT_CAPABILITIES);
65 protected NetconfClientSessionNegotiatorFactory getNegotiatorFactory(final NetconfClientConfiguration cfg) {
66 return new NetconfClientSessionNegotiatorFactory(getTimer(), cfg.getAdditionalHeader(),
67 cfg.getConnectionTimeoutMillis(), capabilities);