01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: *
17: */
18:
19: package org.apache.tools.ant.taskdefs;
20:
21: import java.io.IOException;
22: import java.io.InputStream;
23: import java.io.OutputStream;
24:
25: /**
26: * Used by <code>Execute</code> to handle input and output stream of
27: * subprocesses.
28: *
29: * @since Ant 1.2
30: */
31: public interface ExecuteStreamHandler {
32:
33: /**
34: * Install a handler for the input stream of the subprocess.
35: *
36: * @param os output stream to write to the standard input stream of the
37: * subprocess
38: * @throws IOException on error
39: */
40: void setProcessInputStream(OutputStream os) throws IOException;
41:
42: /**
43: * Install a handler for the error stream of the subprocess.
44: *
45: * @param is input stream to read from the error stream from the subprocess
46: * @throws IOException on error
47: */
48: void setProcessErrorStream(InputStream is) throws IOException;
49:
50: /**
51: * Install a handler for the output stream of the subprocess.
52: *
53: * @param is input stream to read from the error stream from the subprocess
54: * @throws IOException on error
55: */
56: void setProcessOutputStream(InputStream is) throws IOException;
57:
58: /**
59: * Start handling of the streams.
60: * @throws IOException on error
61: */
62: void start() throws IOException;
63:
64: /**
65: * Stop handling of the streams - will not be restarted.
66: */
67: void stop();
68: }
|