Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

RSE
Release 3.0

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.
 
Methods inherited from interface org.eclipse.core.runtime. IAdaptable
getAdapter
 

Method Detail

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()

RSE
Release 3.0

Copyright (c) IBM Corporation and others 2000, 2008. All Rights Reserved.

 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire