View Javadoc

1   /***
2    *
3    * Copyright 2004 Hiram Chirino
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *     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  package org.activeio.adapter;
18  
19  import java.io.IOException;
20  import java.io.OutputStream;
21  
22  import org.activeio.AsynchChannel;
23  import org.activeio.packet.ByteArrayPacket;
24  import org.activeio.packet.BytePacket;
25  
26  /***
27   */
28  public class AsynchChannelOutputStream extends OutputStream {
29  
30      private final AsynchChannel channel;
31      private boolean closed;
32  
33      /***
34       * @param channel
35       */
36      public AsynchChannelOutputStream(AsynchChannel channel) {
37          this.channel = channel;
38      }
39  
40      /***
41       * @see java.io.OutputStream#write(int)
42       */
43      public void write(int b) throws IOException {
44          channel.write(new BytePacket((byte) b));
45      }
46  
47      /***
48       * @see java.io.OutputStream#write(byte[], int, int)
49       */
50      public void write(byte[] b, int off, int len) throws IOException {
51          channel.write(new ByteArrayPacket(b, off, len));
52      }
53      
54      /***
55       * @see java.io.OutputStream#flush()
56       */
57      public void flush() throws IOException {
58          channel.flush();
59      }
60              
61      /***
62       * @see java.io.InputStream#close()
63       */
64      public void close() throws IOException {
65          closed=true;
66          super.close();
67      }
68      
69      public boolean isClosed() {
70          return closed;
71      }    
72  }