com.cafesoft.core.message
Class MessageOutputStream

java.lang.Object
  |
  +--java.io.OutputStream
        |
        +--com.cafesoft.core.message.MessageOutputStream

public class MessageOutputStream
extends OutputStream

The MessageOutputStream stream object extends the abstract class OutputStream. In essence, this class is responsible for writing data to the OutputStream transport.

More specifically it is responsible for writing data into data envelopes the Messaging Framework calls Packets. The OutputStream writes data to the packets and understands various data limits imposed as well as error conditions that could occur while writing to a packet. The end result is that every packet that the OutputStream constructs is sent to a PacketQueue where it is later removed for processing.

Since:
2/21/02

Constructor Summary
MessageOutputStream(PacketObjectPool objectPool)
          Create a new MessageOutputStream
 
Method Summary
 void close()
          Close the MessageOutputStream Flush the MessageOutputStream and mark it as closed.
 void flush()
          Flush the MessageOutputStream Mark the current packet being written to as the end of message packet and place the current packet on the packet queue.
 void setMessageId(int messageId)
          Set the message id of the message being sent
 void setMessageType(int messageType)
          Set the message type of the message being sent
 void setPacketConsumer(PacketConsumer packetConsumer)
          Set the PacketConsumer that will consume full packets
 void setReceiverId(int receiverId)
          Set the receiver id of the message being sent
 void setSenderId(int senderId)
          Set the sender id of the message being sent
 void write(byte[] b)
          Writes b.length bytes from the specified byte array to this output stream.
 void write(byte[] b, int off, int len)
          Writes len bytes from the specified byte array starting at offset off to this output stream.
 void write(int b)
          Writes the specified byte to this output stream.
 void writeInteger(int value)
          Write an integer to the MessageOutputStream
 void writeString(String string)
          Write a String to the MessageOutputStream
 void writeUnsignedShort(int value)
          Write an unsigned short to the MessageOutputStream The value to be written to the output stream must be between the range of 0 and 65535.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MessageOutputStream

public MessageOutputStream(PacketObjectPool objectPool)
Create a new MessageOutputStream

Parameters:
objectPool - KRJ
Method Detail

setMessageId

public void setMessageId(int messageId)
Set the message id of the message being sent

Parameters:
messageId - the new message id

setSenderId

public void setSenderId(int senderId)
Set the sender id of the message being sent

Parameters:
senderId - the new sender id

setReceiverId

public void setReceiverId(int receiverId)
Set the receiver id of the message being sent

Parameters:
receiverId - the new receiver id

setMessageType

public void setMessageType(int messageType)
Set the message type of the message being sent

Parameters:
messageType - the new message type

setPacketConsumer

public void setPacketConsumer(PacketConsumer packetConsumer)
Set the PacketConsumer that will consume full packets

Parameters:
packetConsumer - the new PacketConsumer

writeUnsignedShort

public void writeUnsignedShort(int value)
                        throws IOException
Write an unsigned short to the MessageOutputStream

The value to be written to the output stream must be between the range of 0 and 65535. If it is not an IllegalArgumentException is thrown.

Parameters:
value - the value to be written
Throws:
IOException - thrown if the output stream is closed.

writeInteger

public void writeInteger(int value)
                  throws IOException
Write an integer to the MessageOutputStream

Parameters:
value - the value to be written
Throws:
IOException - thrown if the output stream is closed

writeString

public void writeString(String string)
                 throws IOException
Write a String to the MessageOutputStream

Parameters:
string - the String to write to the output stream
Throws:
IOException - thrown if the stream has been closed, or if the encoding type used to write the String to the stream is not supported

write

public void write(int b)
           throws IOException
Writes the specified byte to this output stream. The general contract for write is that one byte is written to the output stream. The byte to be written is the eight low-order bits of the argument b. The 24 high-order bits of b are ignored.

Specified by:
write in class OutputStream
Parameters:
b - the byte.
Throws:
IOException - if an I/O error occurs. In particular, an IOException is thrown if the output stream has been closed

write

public void write(byte[] b)
           throws IOException
Writes b.length bytes from the specified byte array to this output stream. The general contract for write(b) is that it should have exactly the same effect as the call write(b, 0, b.length).

Overrides:
write in class OutputStream
Parameters:
b - the data.
Throws:
IOException - if an I/O error occurs.
See Also:
OutputStream.write(byte[], int, int)

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
Writes len bytes from the specified byte array starting at offset off to this output stream. The general contract for write(b, off, len) is that some of the bytes in the array b are written to the output stream in order; element b[off] is the first byte written and b[off+len-1] is the last byte written by this operation.

The write method of OutputStream calls the write method of one argument on each of the bytes to be written out. Subclasses are encouraged to override this method and provide a more efficient implementation.

If b is null, a NullPointerException is thrown.

If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown.

Overrides:
write in class OutputStream
Parameters:
b - the data.
off - the start offset in the data.
len - the number of bytes to write.
Throws:
IOException - if an I/O error occurs. In particular, an IOException is thrown if the output stream is closed.

flush

public void flush()
           throws IOException
Flush the MessageOutputStream

Mark the current packet being written to as the end of message packet and place the current packet on the packet queue.

Flushes this output stream and forces any buffered output bytes to be written out. The general contract of flush is that calling it is an indication that, if any bytes previously written have been buffered by the implementation of the output stream, such bytes should immediately be written to their intended destination.

Overrides:
flush in class OutputStream
Throws:
IOException - if an I/O error occurs. In particular, the stream is closed.

close

public void close()
           throws IOException
Close the MessageOutputStream

Flush the MessageOutputStream and mark it as closed.

Closes this output stream and releases any system resources associated with this stream. The general contract of close is that it closes the output stream. A closed stream cannot perform output operations and cannot be reopened.

Overrides:
close in class OutputStream
Throws:
IOException - if an I/O error occurs. In particular if the stream has already been closed.


Generated on 10:40:31 AM September 10, 2003, © 1996-2003 Cafésoft LLC. All rights reserved.