package io.fathom.cloud.ssh.mina;
//
//import java.io.IOException;
//import java.security.KeyPair;
//import java.util.Map;
//
//import org.apache.sshd.ClientChannel;
//import org.apache.sshd.ClientSession;
//import org.apache.sshd.client.SshdSocketAddress;
//import org.apache.sshd.client.channel.ChannelDirectTcpip;
//import org.apache.sshd.client.channel.ChannelExec;
//import org.apache.sshd.client.channel.ChannelShell;
//import org.apache.sshd.client.channel.ChannelSubsystem;
//import org.apache.sshd.client.future.AuthFuture;
//import org.apache.sshd.common.future.CloseFuture;
//
//import io.fathom.cloud.ssh.SshClientPool;
//
//public class PooledClientSession implements ClientSession {
// final SshClientPool pool;
// ClientSession inner;
//
// public PooledClientSession(SshClientPool pool, ClientSession inner) {
// super();
// this.pool = pool;
// this.inner = inner;
// }
//
// @Override
// public AuthFuture authAgent(String username) throws IOException {
// return inner.authAgent(username);
// }
//
// @Override
// public AuthFuture authPassword(String username, String password)
// throws IOException {
// return inner.authPassword(username, password);
// }
//
// @Override
// public AuthFuture authPublicKey(String username, KeyPair key)
// throws IOException {
// return inner.authPublicKey(username, key);
// }
//
// @Override
// public ClientChannel createChannel(String type) throws Exception {
// return inner.createChannel(type);
// }
//
// @Override
// public ClientChannel createChannel(String type, String subType)
// throws Exception {
// return inner.createChannel(type, subType);
// }
//
// @Override
// public ChannelShell createShellChannel() throws Exception {
// return inner.createShellChannel();
// }
//
// @Override
// public ChannelExec createExecChannel(String command) throws Exception {
// return inner.createExecChannel(command);
// }
//
// @Override
// public ChannelSubsystem createSubsystemChannel(String subsystem)
// throws Exception {
// return inner.createSubsystemChannel(subsystem);
// }
//
// @Override
// public ChannelDirectTcpip createDirectTcpipChannel(SshdSocketAddress local,
// SshdSocketAddress remote) throws Exception {
// if (inner == null) {
// throw new IllegalStateException();
// }
// return inner.createDirectTcpipChannel(local, remote);
// }
//
// @Override
// public void startLocalPortForwarding(SshdSocketAddress local,
// SshdSocketAddress remote) throws Exception {
// inner.startLocalPortForwarding(local, remote);
// }
//
// @Override
// public void stopLocalPortForwarding(SshdSocketAddress local)
// throws Exception {
// inner.stopLocalPortForwarding(local);
// }
//
// @Override
// public void startRemotePortForwarding(SshdSocketAddress remote,
// SshdSocketAddress local) throws Exception {
// inner.startRemotePortForwarding(remote, local);
// }
//
// @Override
// public void stopRemotePortForwarding(SshdSocketAddress remote)
// throws Exception {
// inner.stopRemotePortForwarding(remote);
// }
//
// @Override
// public int waitFor(int mask, long timeout) {
// return inner.waitFor(mask, timeout);
// }
//
// @Override
// public CloseFuture close(boolean immediately) {
// CloseFuture future = pool.returnToPool(immediately, this);
// inner = null;
// return future;
// }
//
// @Override
// public Map<Object, Object> getMetadataMap() {
// return inner.getMetadataMap();
// }
//
// }