[kaffe] CVS kaffe (robilad): Replaced Process by implementation from GNU Classpath

Kaffe CVS cvs-commits at kaffe.org
Sun Jan 9 11:37:43 PST 2005


PatchSet 5828 
Date: 2005/01/09 19:33:34
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Replaced Process by implementation from GNU Classpath

2005-01-09  Dalibor Topic  <robilad at kaffe.org>

* libraries/javalib/java/lang/Process.java:
Replaced by implementation from GNU Classpath.

Members: 
	ChangeLog:1.3372->1.3373 
	libraries/javalib/java/lang/Process.java:1.3->1.4 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3372 kaffe/ChangeLog:1.3373
--- kaffe/ChangeLog:1.3372	Sun Jan  9 19:08:17 2005
+++ kaffe/ChangeLog	Sun Jan  9 19:33:34 2005
@@ -1,5 +1,10 @@
 2005-01-09  Dalibor Topic  <robilad at kaffe.org>
 
+	* libraries/javalib/java/lang/Process.java:
+	Replaced by implementation from GNU Classpath.
+	
+2005-01-09  Dalibor Topic  <robilad at kaffe.org>
+
 	* libraries/javalib/java/lang/Package.java:
 	Replaced by implementation from GNU Classpath.
 	
Index: kaffe/libraries/javalib/java/lang/Process.java
diff -u kaffe/libraries/javalib/java/lang/Process.java:1.3 kaffe/libraries/javalib/java/lang/Process.java:1.4
--- kaffe/libraries/javalib/java/lang/Process.java:1.3	Tue Oct 12 02:29:47 1999
+++ kaffe/libraries/javalib/java/lang/Process.java	Sun Jan  9 19:33:36 2005
@@ -1,28 +1,129 @@
+/* Process.java - Represent spawned system process
+   Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004
+   Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
 package java.lang;
 
 import java.io.InputStream;
 import java.io.OutputStream;
 
-/*
- * Java core library component.
+/**
+ * An instance of a subclass of <code>Process</code> is created by the
+ * <code>Runtime.exec</code> methods.  Methods in <code>Process</code>
+ * provide a means to send input to a process, obtain the output from a
+ * subprocess, destroy a subprocess, obtain the exit value from a
+ * subprocess, and wait for a subprocess to complete.
+ *
+ * <p>This is dependent on the platform, and some processes (like native
+ * windowing processes, 16-bit processes in Windows, or shell scripts) may
+ * be limited in functionality. Because some platforms have limited buffers
+ * between processes, you may need to provide input and read output to prevent
+ * the process from blocking, or even deadlocking.
  *
- * Copyright (c) 1997, 1998
- *      Transvirtual Technologies, Inc.  All rights reserved.
+ * <p>Even if all references to this object disapper, the process continues
+ * to execute to completion. There are no guarantees that the
+ * subprocess execute asynchronously or concurrently with the process which
+ * owns this object.
  *
- * See the file "license.terms" for information on usage and redistribution
- * of this file.
+ * @author Brian Jones
+ * @author Tom Tromey <tromey at cygnus.com>
+ * @see Runtime#exec(String[], String[], File)
+ * @since 1.0
+ * @status updated to 1.4
  */
-abstract public class Process
-	extends Object {
+public abstract class Process
+{
+  /**
+   * Empty constructor does nothing.
+   */
+  public Process()
+  {
+  }
+
+  /**
+   * Obtain the output stream that sends data to the subprocess. This is
+   * the STDIN of the subprocess. When implementing, you should probably
+   * use a buffered stream.
+   *
+   * @return the output stream that pipes to the process input
+   */
+  public abstract OutputStream getOutputStream();
+
+  /**
+   * Obtain the input stream that receives data from the subprocess. This is
+   * the STDOUT of the subprocess. When implementing, you should probably
+   * use a buffered stream.
+   *
+   * @return the input stream that pipes data from the process output
+   */
+  public abstract InputStream getInputStream();
+
+  /**
+   * Obtain the input stream that receives data from the subprocess. This is
+   * the STDERR of the subprocess. When implementing, you should probably
+   * use a buffered stream.
+   *
+   * @return the input stream that pipes data from the process error output
+   */
+  public abstract InputStream getErrorStream();
 
-public Process() {
-}
+  /**
+   * The thread calling <code>waitFor</code> will block until the subprocess
+   * has terminated. If the process has already terminated then the method
+   * immediately returns with the exit value of the subprocess.
+   *
+   * @return the subprocess exit value; 0 conventionally denotes success
+   * @throws InterruptedException if another thread interrupts the blocked one
+   */
+  public abstract int waitFor() throws InterruptedException;
 
-abstract public void destroy();
-abstract public int exitValue();
-abstract public InputStream getErrorStream();
-abstract public InputStream getInputStream();
-abstract public OutputStream getOutputStream();
-abstract public int waitFor() throws InterruptedException;
+  /**
+   * When a process terminates there is associated with that termination
+   * an exit value for the process to indicate why it terminated. A return
+   * of <code>0</code> denotes normal process termination by convention.
+   *
+   * @return the exit value of the subprocess
+   * @throws IllegalThreadStateException if the subprocess has not terminated
+   */
+  public abstract int exitValue();
 
-}
+  /**
+   * Kills the subprocess and all of its children forcibly.
+   */
+  public abstract void destroy();
+} // class Process




More information about the kaffe mailing list