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
8 package org.opendaylight.netconf.test.tool.client.stress;
10 import io.netty.channel.EventLoopGroup;
11 import io.netty.util.Timer;
13 import org.opendaylight.netconf.client.NetconfClientDispatcherImpl;
14 import org.opendaylight.netconf.client.NetconfClientSessionNegotiatorFactory;
15 import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
18 public final class ConfigurableClientDispatcher extends NetconfClientDispatcherImpl {
19 private final Set<String> capabilities;
21 private ConfigurableClientDispatcher(final EventLoopGroup bossGroup, final EventLoopGroup workerGroup,
22 final Timer timer, final Set<String> capabilities) {
23 super(bossGroup, workerGroup, timer);
24 this.capabilities = capabilities;
28 * EXI + chunked framing.
30 public static ConfigurableClientDispatcher createChunkedExi(final EventLoopGroup bossGroup,
31 final EventLoopGroup workerGroup, final Timer timer) {
32 return new ConfigurableClientDispatcher(bossGroup, workerGroup, timer,
33 NetconfClientSessionNegotiatorFactory.EXI_CLIENT_CAPABILITIES);
37 * EXI + ]]gt;]]gt; framing.
39 public static ConfigurableClientDispatcher createLegacyExi(final EventLoopGroup bossGroup,
40 final EventLoopGroup workerGroup, final Timer timer) {
41 return new ConfigurableClientDispatcher(bossGroup, workerGroup, timer,
42 NetconfClientSessionNegotiatorFactory.LEGACY_EXI_CLIENT_CAPABILITIES);
48 public static ConfigurableClientDispatcher createChunked(final EventLoopGroup bossGroup,
49 final EventLoopGroup workerGroup, final Timer timer) {
50 return new ConfigurableClientDispatcher(bossGroup, workerGroup, timer,
51 NetconfClientSessionNegotiatorFactory.DEFAULT_CLIENT_CAPABILITIES);
57 public static ConfigurableClientDispatcher createLegacy(final EventLoopGroup bossGroup,
58 final EventLoopGroup workerGroup, final Timer timer) {
59 return new ConfigurableClientDispatcher(bossGroup, workerGroup, timer,
60 NetconfClientSessionNegotiatorFactory.LEGACY_FRAMING_CLIENT_CAPABILITIES);
64 protected NetconfClientSessionNegotiatorFactory getNegotiatorFactory(final NetconfClientConfiguration cfg) {
65 return new NetconfClientSessionNegotiatorFactory(getTimer(), cfg.getAdditionalHeader(),
66 cfg.getConnectionTimeoutMillis(), capabilities);