blob: 396287ad46d8eaa99e0ec8c90898f01d76dc7b39 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
// PosixProcess.java - Subclass of Process for POSIX systems.
/* Copyright (C) 1998, 1999 Cygnus Solutions
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.lang;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
/**
* @author Tom Tromey <tromey@cygnus.com>
* @date May 3, 1999
*/
// This is entirely internal to our implementation.
// This file is copied to `ConcreteProcess.java' before compilation.
// Hence the class name apparently does not match the file name.
final class ConcreteProcess extends Process
{
public native void destroy ();
public native int exitValue ();
public InputStream getErrorStream ()
{
return errorStream;
}
public InputStream getInputStream ()
{
return inputStream;
}
public OutputStream getOutputStream ()
{
return outputStream;
}
public native int waitFor () throws InterruptedException;
// This is used for actual initialization, as we can't write a
// native constructor.
public native void startProcess (String[] progarray, String[] envp)
throws IOException;
// This file is copied to `ConcreteProcess.java' before
// compilation. Hence the constructor name apparently does not
// match the file name.
public ConcreteProcess (String[] progarray, String[] envp) throws IOException
{
startProcess (progarray, envp);
}
// The process id. This is cast to a pid_t on the native side.
private long pid;
// True when child has exited.
private boolean hasExited;
// The exit status, if the child has exited.
private int status;
// The streams.
private InputStream errorStream;
private InputStream inputStream;
private OutputStream outputStream;
}
|