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.Packet;
23  
24  /***
25   * Provides an OutputStream for a given Packet.
26   *  
27   * @version $Revision$
28   */
29  public class PacketOutputStream extends OutputStream {
30      
31      final Packet packet;
32      
33      public PacketOutputStream(Packet packet) {
34          this.packet = packet;
35      }
36  
37      public void write(int b) throws IOException {
38          if( !packet.write(b) )
39              throw new IOException("Packet does not have any remaining space to write to.");
40      }
41      
42      public void write(byte[] b, int off, int len) throws IOException {
43          if( packet.write(b, off, len)!=len )
44              throw new IOException("Packet does not have "+len+" byte(s) left to write to.");
45      }
46  }