Interface IProcess

All Superinterfaces:
IAdaptable, ITerminate
All Known Implementing Classes:
RuntimeProcess

public interface IProcess extends IAdaptable, ITerminate
A process represents a program running in normal (non-debug) mode. Processes support setting and getting of client defined attributes. This way, clients can annotate a process with any extra information important to them. For example, classpath annotations, or command line arguments used to launch the process may be important to a client.

Clients may implement this interface, however, the debug plug-in provides an implementation of this interface for a java.lang.Process.

If implementing custom launches it is important to fire event whenever the process state changes in the following way:
 DebugPlugin manager = DebugPlugin.getDefault();
 if (manager != null) {
        manager.fireDebugEventSet(new DebugEvent[] {
                        new DebugEvent(this, DebugEvent.CREATE) });
 }
 
otherwise the UI will probably show faulty state for your process and launch.
See Also:
  • Field Details

    • ATTR_CMDLINE

      static final String ATTR_CMDLINE
      Attribute key for a common, optional, process property. The value of this attribute is the command line a process was launched with.
      Since:
      2.1
    • ATTR_PROCESS_TYPE

      static final String ATTR_PROCESS_TYPE
      Attribute key for a common, optional, process property. The value of this attribute is an identifier for the type of this process. Process types are client defined - whoever creates a process may define its type. For example, a process type could be "java", "javadoc", or "ant".
      Since:
      2.1
    • ATTR_PROCESS_LABEL

      static final String ATTR_PROCESS_LABEL
      Attribute key for a common, optional, process property. The value of this attribute specifies an alternate dynamic label for a process, displayed by the console.
      Since:
      3.0
    • ATTR_PROCESS_ID

      static final String ATTR_PROCESS_ID
      Attribute key for a common, optional, process property. The value of this attribute specifies process id, displayed in the console description or in the debug view.
      Since:
      3.19
  • Method Details

    • getLabel

      String getLabel()
      Returns a human-readable label for this process.
      Returns:
      a label for this process
    • getLaunch

      ILaunch getLaunch()
      Returns the launch this element originated from.
      Returns:
      the launch this process is contained in
    • getStreamsProxy

      IStreamsProxy getStreamsProxy()
      Returns a proxy to the standard input, output, and error streams for this process, or null if not supported.
      Returns:
      a streams proxy, or null if not supported
    • setAttribute

      void setAttribute(String key, String value)
      Sets the value of a client defined attribute.
      Parameters:
      key - the attribute key
      value - the attribute value
    • getAttribute

      String getAttribute(String key)
      Returns the value of a client defined attribute.
      Parameters:
      key - the attribute key
      Returns:
      value the String attribute value, or null if undefined
    • getExitValue

      int getExitValue() throws DebugException
      Returns the exit value of this process. Conventionally, 0 indicates normal termination.
      Returns:
      the exit value of this process
      Throws:
      DebugException - if this process has not yet terminated