|
 |
|
|
org.eclipse.rse.services.terminals
Interface IBaseShell
-
All Superinterfaces:
-
IAdaptable
-
All Known Subinterfaces:
-
ITerminalShell
-
All Known Implementing Classes:
-
AbstractTerminalShell,
BaseShellDecorator,
TerminalShellDecorator
-
public interface IBaseShell
- extends
IAdaptable
A basic shell, representing the connection to some process that may be
running local or remote. Clients may implement this interface.
Clients implementing this interface are encouraged to extend
PlatformObject for providing the
IAdaptable.getAdapter(Class)
functionality.
The resulting IBaseShell can be decorated by clients with additional
functionality easily by instantiating their subclassed variant of
BaseShellDecorator .
-
Since:
- org.eclipse.rse.services 3.1
-
See Also:
-
Process
,
BaseShellDecorator
Method Summary
|
void
|
exit
()
Exit this shell. |
int
|
exitValue
()
Return the exit value of the Process connected by this shell. |
InputStream
|
getErrorStream
()
Get a remote-to-local InputStream connected to the standard error output
of the underlying Process. |
InputStream
|
getInputStream
()
Get a remote-to-local InputStream connected to the standard output of the
underlying Process. |
OutputStream
|
getOutputStream
()
Get a local-to-remote OutputStream connected to the standard input of the
underlying Process. |
boolean
|
isActive
()
Test whether this connection is active. |
boolean
|
waitFor
(long timeout)
Block the calling Thread until this shell is no longer active, or the
specified timeout has elapsed. |
getOutputStream
OutputStream getOutputStream()
- Get a local-to-remote OutputStream connected to the standard input of the
underlying Process.
Clients must not close the obtained OutputStream themselves, since the
behavior that this may have on the underlying shell or process is
undefined. Use {#exit()} instead to terminate the shell if that is
desired, it will close all relevant Streams.
-
-
-
Returns:
- an OutputStream for talking to the underlying process.
getInputStream
InputStream getInputStream()
- Get a remote-to-local InputStream connected to the standard output of the
underlying Process.
Clients must not close the obtained InputStream themselves, since the
behavior that this may have on the underlying shell or process is
undefined. Use {#exit()} instead to terminate the shell if that is
desired, it will close all relevant Streams.
-
-
-
Returns:
- an InputStream for reading from the underlying process.
getErrorStream
InputStream getErrorStream()
- Get a remote-to-local InputStream connected to the standard error output
of the underlying Process.
Implementations may return
null if they do not support
separate Streams for output and error.
Clients must not close the obtained InputStream themselves, since the
behavior that this may have on the underlying shell or process is
undefined. Use {#exit()} instead to terminate the shell if that is
desired, it will close all relevant Streams.
-
-
-
Returns:
- an InputStream for reading error output from the underlying
process, or
null if separate output and error
streams are not supported. Error output will be merged with the
Stream obtained from
getInputStream() in that case.
isActive
boolean isActive()
- Test whether this connection is active.
-
-
-
Returns:
-
true if the connection is active, i.e. the Process
underlying this connection is running, and the Streams connected
to it are not closed. -
See Also:
-
exitValue()
exit
void exit()
- Exit this shell.
Implementations are encouraged to try terminating the underlying process
in a clean way, if they can. Depending on the implementation, this may be
possible or not. What's guaranteed to happen is that the Streams
connected with the process are closed so the shell will not be active any
more.
Execution of this method may run asynchronously in the sense that the
method performs everything to initiate terminating the shell but then
returns immediately. Clients may use
waitFor(long) after calling
this method to know when the shell is really terminated. At any rate, the
exit() method returns quickly and guarantees that the shell will be
terminated as soon as possible, after any required (and possible) cleanup
is finished.
-
-
-
See Also:
-
Process.destroy()
exitValue
int exitValue()
- Return the exit value of the Process connected by this shell.
Depending on the underlying implementation, this call may not be
supported. Implementations which do not support this must throw an
IllegalThreadStateException when the shell is still active, or return 0
the shell has terminated.
-
-
-
Returns:
- the exit value of the Process connected by this shell, provided
that it has already terminated. By convention, the exit value 0
indicates successful completion or the fact that transmission of
exit values is not supported by an implementation.
-
Throws:
-
IllegalThreadStateException
- when the shell is still active. -
See Also:
-
Process.exitValue()
waitFor
boolean waitFor(long timeout)
throws
InterruptedException
- Block the calling Thread until this shell is no longer active, or the
specified timeout has elapsed. If the underlying shell has already
terminated, this method returns immediately.
When this method returns
false , the shell is no longer
active, so an
exitValue() may be obtained.
-
-
-
Parameters:
-
timeout - the maximum time (in milliseconds) to wait.
Implementations may return sooner even if the underlying
Process has not yet terminated, so clients always need to keep
track of time themselves and need to check the return value. A
timeout value of zero causes this method to not limit the wait
time. Negative wait time has undefined behavior.
-
Returns:
-
true if the Shell is still active after waiting
(e.g. because the timeout has elapsed); false if
the shell is no longer active.
-
Throws:
-
InterruptedException
- if the waiting Thread has been interrupted,
e.g. because the main application is shutting down. -
See Also:
-
isActive()
Copyright (c) IBM Corporation and others 2000, 2008. All Rights Reserved.
|
|
|