|
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 IBaseShellIBaseShell.exit()public int exitValue()
IBaseShell
exitValue in interface IBaseShellProcess.exitValue()public InputStream getErrorStream()
IBaseShellnull 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 IBaseShellnull 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 IBaseShellpublic OutputStream getOutputStream()
IBaseShell
getOutputStream in interface IBaseShellpublic boolean isActive()
isActive in interface IBaseShelltrue 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
IBaseShellfalse, the shell is no longer
active, so an IBaseShell.exitValue() may be obtained.
waitFor in interface IBaseShelltimeout - 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 | |||||||||