2 * Copyright (c) 2013 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.controller.netconf.nettyutil.handler.ssh.client;
10 import java.io.IOException;
13 * Abstract class providing mechanism of invoking various SSH level services.
14 * Class is not allowed to be extended, as it provides its own implementations via instance initiators.
16 abstract class Invoker {
17 private boolean invoked = false;
22 protected boolean isInvoked() {
26 public void setInvoked() {
30 abstract void invoke(SshSession session) throws IOException;
32 public static Invoker netconfSubsystem(){
33 return subsystem("netconf");
36 public static Invoker subsystem(final String subsystem) {
37 return new Invoker() {
39 synchronized void invoke(SshSession session) throws IOException {
41 throw new IllegalStateException("Already invoked.");
44 session.startSubSystem(subsystem);