|
RSE Release 3.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.core.runtime.PlatformObject
org.eclipse.rse.internal.services.terminals.ProcessBaseShell
public class ProcessBaseShell
A wrapper for Java Process
objects to give more convenient access to
them through the IBaseShell
interface.
EXPERIMENTAL. This class or interface has been added as part of a work in progress. There is no guarantee that this API will work or that it will remain the same. Please do not use this API without consulting with the Target Management team.
Field Summary | |
---|---|
protected Process |
fProcess
The underlying Process instance. |
Constructor Summary | |
---|---|
ProcessBaseShell(Process p)
Constructor. |
Method Summary | |
---|---|
void |
exit()
Forcefully terminate the underlying Process through Process.destroy() . |
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()
Check if the underlying Process is still active. |
boolean |
waitFor(long timeout)
Block the calling Thread until this shell is no longer active, or the specified timeout has elapsed. |
Methods inherited from class org.eclipse.core.runtime.PlatformObject |
---|
getAdapter |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.eclipse.core.runtime.IAdaptable |
---|
getAdapter |
Field Detail |
---|
protected final Process fProcess
Constructor Detail |
---|
public ProcessBaseShell(Process p)
p
- the Process to wrap with this IBaseShell interface.Method Detail |
---|
public void exit()
Process.destroy()
. Subclasses may want to override this behavior
by trying to terminate the underlying Process in a cleaner way.
exit
in interface IBaseShell
IBaseShell.exit()
public int exitValue()
IBaseShell
exitValue
in interface IBaseShell
Process.exitValue()
public InputStream getErrorStream()
IBaseShell
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.
getErrorStream
in interface IBaseShell
null
if separate output and error
streams are not supported. Error output will be merged with the
Stream obtained from IBaseShell.getInputStream()
in that case.public InputStream getInputStream()
IBaseShell
getInputStream
in interface IBaseShell
public OutputStream getOutputStream()
IBaseShell
getOutputStream
in interface IBaseShell
public boolean isActive()
isActive
in interface IBaseShell
true
if the connection is active, i.e. the Process
underlying this connection is running, and the Streams connected
to it are not closed.IBaseShell.isActive()
public boolean waitFor(long timeout) throws InterruptedException
IBaseShell
false
, the shell is no longer
active, so an IBaseShell.exitValue()
may be obtained.
waitFor
in interface IBaseShell
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.
true
if the Shell is still active after waiting
(e.g. because the timeout has elapsed); false
if
the shell is no longer active.
InterruptedException
- if the waiting Thread has been interrupted,
e.g. because the main application is shutting down.IBaseShell.isActive()
|
RSE Release 3.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |