PacketOutputStream xref

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  }