KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > debug > internal > core > NullStreamsProxy


1 /*******************************************************************************
2  * Copyright (c) 2000, 2005 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.debug.internal.core;
12
13 import java.io.IOException JavaDoc;
14 import java.io.InputStream JavaDoc;
15
16 import org.eclipse.debug.core.IStreamListener;
17 import org.eclipse.debug.core.model.IStreamMonitor;
18 import org.eclipse.debug.core.model.IStreamsProxy2;
19
20 public class NullStreamsProxy implements IStreamsProxy2 {
21     private NullStreamMonitor outputStreamMonitor;
22     private NullStreamMonitor errorStreamMonitor;
23     
24     public NullStreamsProxy(Process JavaDoc process) {
25         outputStreamMonitor = new NullStreamMonitor(process.getInputStream());
26         errorStreamMonitor = new NullStreamMonitor(process.getErrorStream());
27     }
28
29     /* (non-Javadoc)
30      * @see org.eclipse.debug.core.model.IStreamsProxy2#closeInputStream()
31      */

32     public void closeInputStream() throws IOException JavaDoc {
33     }
34
35     /* (non-Javadoc)
36      * @see org.eclipse.debug.core.model.IStreamsProxy#getErrorStreamMonitor()
37      */

38     public IStreamMonitor getErrorStreamMonitor() {
39         return errorStreamMonitor;
40     }
41
42     /* (non-Javadoc)
43      * @see org.eclipse.debug.core.model.IStreamsProxy#getOutputStreamMonitor()
44      */

45     public IStreamMonitor getOutputStreamMonitor() {
46         return outputStreamMonitor;
47     }
48
49     /* (non-Javadoc)
50      * @see org.eclipse.debug.core.model.IStreamsProxy#write(java.lang.String)
51      */

52     public void write(String JavaDoc input) throws IOException JavaDoc {
53     }
54
55     private class NullStreamMonitor implements IStreamMonitor {
56         private InputStream JavaDoc fStream;
57
58         public NullStreamMonitor(InputStream JavaDoc stream) {
59             fStream = stream;
60             startReaderThread();
61         }
62
63         private void startReaderThread() {
64             Thread JavaDoc thread = new Thread JavaDoc(new Runnable JavaDoc() {
65                 public void run() {
66                     byte[] bytes = new byte[1024];
67                     try {
68                         while(fStream.read(bytes) >= 0) {
69                             //do nothing
70
}
71                     } catch (IOException JavaDoc e) {
72                     }
73                 }
74             }, DebugCoreMessages.NullStreamsProxy_0);
75             thread.setDaemon(true);
76             thread.start();
77             
78         }
79
80         /* (non-Javadoc)
81          * @see org.eclipse.debug.core.model.IStreamMonitor#addListener(org.eclipse.debug.core.IStreamListener)
82          */

83         public void addListener(IStreamListener listener) {
84         }
85
86         /* (non-Javadoc)
87          * @see org.eclipse.debug.core.model.IStreamMonitor#getContents()
88          */

89         public String JavaDoc getContents() {
90             return ""; //$NON-NLS-1$
91
}
92
93         /* (non-Javadoc)
94          * @see org.eclipse.debug.core.model.IStreamMonitor#removeListener(org.eclipse.debug.core.IStreamListener)
95          */

96         public void removeListener(IStreamListener listener) {
97         }
98     }
99 }
100
Popular Tags