c4af65987a3e6ab0449b0f4edee14153bc874a51
[netconf.git] / netconf / netconf-netty-util / src / main / java / org / opendaylight / netconf / nettyutil / handler / ssh / client / NettyPipelineAwareChannelSubsystem.java
1 /*
2  * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.netconf.nettyutil.handler.ssh.client;
9
10 import static java.util.Objects.requireNonNull;
11
12 import io.netty.channel.ChannelHandlerContext;
13 import io.netty.channel.ChannelPipeline;
14
15 /**
16  * A {@link AbstractNettyChannelSubsystem} for subsystem which routes incoming data to a particular
17  * {@link ChannelPipeline}.
18  */
19 // Non-final for testing
20 public non-sealed class NettyPipelineAwareChannelSubsystem extends AbstractNettyChannelSubsystem {
21     private final ChannelPipeline pipeline;
22
23     NettyPipelineAwareChannelSubsystem(final String subsystem, final ChannelPipeline pipeline) {
24         super(subsystem);
25         this.pipeline = requireNonNull(pipeline);
26     }
27
28     @Override
29     final ChannelHandlerContext context() {
30         return pipeline.firstContext();
31     }
32 }