blob: a9b98d7eaf17cef76ac8a9599ef8d9843036632c [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2006 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - Initial Implementation
*
*****************************************************************************/
package org.eclipse.ptp.remotetools.core;
import org.eclipse.ptp.remotetools.exception.CancelException;
import org.eclipse.ptp.remotetools.exception.LocalPortBoundException;
import org.eclipse.ptp.remotetools.exception.RemoteConnectionException;
/**
* Provides service to run commands on the remote host and to transfer files from/to the remote host.
* <p>>
* Adds functionality for blocking operations until they finish execution.
* Allows canceling the hole manager, that will cancel all current operation by raising CancelException
* on each of them..
* <p>
* All paths MUST be specified as full absolute paths.
* <p>
*
* @author Richard Maciel, Daniel F. Ferber
* @since 1.1
*
* NOTE: this interface should not normally be used directly
* @see org.eclipse.ptp.remote.core.IRemoteProcessBuilder
*/
public interface IRemoteExecutionManager {
/**
* Cancels the all current scripts on execution at the remote machine that were created by this manager.
* Also cancels current file transfer operations.
* Does not allow any further operations.
*/
public void cancel();
/**
* Removes the cancel conditions and allows further operations again.
*/
public void resetCancel();
/**
* Free allocated resources for the execution.
*/
public void close();
public IRemoteFileTools getRemoteFileTools() throws RemoteConnectionException;
public IRemoteCopyTools getRemoteCopyTools() throws RemoteConnectionException;
public IRemoteExecutionTools getExecutionTools() throws RemoteConnectionException;
public IRemotePathTools getRemotePathTools();
public IRemoteStatusTools getRemoteStatusTools() throws RemoteConnectionException;
public IRemotePortForwardingTools getPortForwardingTools() throws RemoteConnectionException;
/**
* Create and bind a tunnel from localhost port to a given remotehost port.
* This methods allocs the localhost port automatically.
*
* @param addressOnRemoteHost Remote Host address
* @param portOnRemoteHost Remote Host port
* @return An IRemoteTunnel object representing the created tunnel
* @throws RemoteConnectionException
* @throws LocalPortBoundException No local port available to connect.
* @throws CancelException
* (this method should be deprecated in future and moved to IRemotePortForwardingTools)
*/
public IRemoteTunnel createTunnel(String addressOnRemoteHost, int portOnRemoteHost) throws RemoteConnectionException, LocalPortBoundException, CancelException;
/*
* (this method should be deprecated in future and moved to IRemotePortForwardingTools)
*/
public IRemoteTunnel createTunnel(int localPort, String addressOnRemoteHost, int portOnRemoteHost) throws RemoteConnectionException, LocalPortBoundException, CancelException;
/*
* (this method should be deprecated in future and moved to IRemotePortForwardingTools)
*/
public void releaseTunnel(IRemoteTunnel tunnel) throws RemoteConnectionException;
}