|
|||||||||
| Home >> All >> org >> activemq >> [ message overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.activemq.message
Class ActiveMQBytesMessage

java.lang.Objectorg.activemq.message.AbstractPacket
org.activemq.message.ActiveMQMessage
org.activemq.message.ActiveMQBytesMessage
- All Implemented Interfaces:
- BodyPacket, javax.jms.BytesMessage, java.lang.Comparable, org.activemq.io.util.MemoryManageable, javax.jms.Message, Packet
- public class ActiveMQBytesMessage
- extends ActiveMQMessage
- implements javax.jms.BytesMessage
- extends ActiveMQMessage
A BytesMessage object is used to send a message containing a stream of uninterpreted bytes. It
inherits from the Message interface and adds a bytes message body. The receiver of the message
supplies the interpretation of the bytes.
The BytesMessage methods are based largely on those found in java.io.DataInputStream
and java.io.DataOutputStream.
This message type is for client encoding of existing message formats. If possible, one of the other self-defining message types should be used instead.
Although the JMS API allows the use of message properties with byte messages, they are typically not used, since the inclusion of properties may affect the format.
The primitive types can be written explicitly using methods for each type. They may also be written generically as
objects. For instance, a call to BytesMessage.writeInt(6) is equivalent to
BytesMessage.writeObject(new Integer(6)). Both forms are provided, because the explicit form is convenient
for static programming, and the object form is needed when types are not known at compile time.
When the message is first created, and when clearBody is called, the body of the message is in
write-only mode. After the first call to reset has been made, the message body is in read-only mode.
After a message has been sent, the client that sent it can retain and modify it without affecting the message that
has been sent. The same message object can be sent multiple times. When a message has been received, the provider
has called reset so that the message body is in read-only mode for the client.
If clearBody is called on a message in read-only mode, the message body is cleared and the message is
in write-only mode.
If a client attempts to read a message in write-only mode, a MessageNotReadableException is thrown.
If a client attempts to write a message in read-only mode, a MessageNotWriteableException is thrown.
| Field Summary | |
private long |
bodyLength
|
private java.io.ByteArrayOutputStream |
bytesOut
|
private java.io.DataInputStream |
dataIn
|
private java.io.DataOutputStream |
dataOut
|
| Fields inherited from class org.activemq.message.ActiveMQMessage |
BOOLEAN, BROKER_NAME_INDEX, BYTE, BYTES, CACHED_DESTINATION_INDEX, CACHED_VALUES_INDEX, CHAR, CID_INDEX, CLUSTER_NAME_INDEX, CORRELATION_INDEX, DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE, DISPATCHED_FROM_DLQ_INDEX, DOUBLE, EOF, EXPIRATION_INDEX, EXTERNAL_MESSAGE_ID_INDEX, FLOAT, INT, LONG, LONG_SEQUENCE_INDEX, MESSAGE_PART_INDEX, NULL, PAYLOAD_INDEX, PROPERTIES_INDEX, readOnlyMessage, REDELIVERED_INDEX, REPLY_TO_INDEX, SHORT, STRING, TIMESTAMP_INDEX, TRANSACTION_ID_INDEX, TYPE_INDEX, XA_TRANS_INDEX |
| Fields inherited from class org.activemq.message.AbstractPacket |
bitArray, BROKERS_VISITED_INDEX, cachedHashCode, RECEIPT_REQUIRED_INDEX |
| Fields inherited from interface javax.jms.Message |
DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE |
| Constructor Summary | |
ActiveMQBytesMessage()
|
|
| Method Summary | |
void |
clearBody()
Clears out the message body. |
ActiveMQMessage |
deepCopy()
|
org.activemq.io.util.ByteArray |
getBodyAsBytes()
|
long |
getBodyLength()
Gets the number of bytes of the message body when the message is in read-only mode. |
int |
getPacketType()
Return the type of Packet |
private void |
initializeReading()
|
private void |
initializeWriting()
|
boolean |
readBoolean()
Reads a boolean from the bytes message stream. |
byte |
readByte()
Reads a signed 8-bit value from the bytes message stream. |
int |
readBytes(byte[] value)
Reads a byte array from the bytes message stream. |
int |
readBytes(byte[] value,
int length)
Reads a portion of the bytes message stream. |
char |
readChar()
Reads a Unicode character value from the bytes message stream. |
double |
readDouble()
Reads a double from the bytes message stream. |
float |
readFloat()
Reads a float from the bytes message stream. |
int |
readInt()
Reads a signed 32-bit integer from the bytes message stream. |
long |
readLong()
Reads a signed 64-bit integer from the bytes message stream. |
short |
readShort()
Reads a signed 16-bit number from the bytes message stream. |
int |
readUnsignedByte()
Reads an unsigned 8-bit number from the bytes message stream. |
int |
readUnsignedShort()
Reads an unsigned 16-bit number from the bytes message stream. |
java.lang.String |
readUTF()
Reads a string that has been encoded using a modified UTF-8 format from the bytes message stream. |
void |
reset()
Puts the message body in read-only mode and repositions the stream of bytes to the beginning. |
void |
setBodyAsBytes(byte[] bodyAsBytes,
int offset,
int length)
|
ActiveMQMessage |
shallowCopy()
|
java.lang.String |
toString()
Convert this Object to a human-readable String. |
void |
writeBoolean(boolean value)
Writes a boolean to the bytes message stream as a 1-byte value. |
void |
writeByte(byte value)
Writes a byte to the bytes message stream as a 1-byte value. |
void |
writeBytes(byte[] value)
Writes a byte array to the bytes message stream. |
void |
writeBytes(byte[] value,
int offset,
int length)
Writes a portion of a byte array to the bytes message stream. |
void |
writeChar(char value)
Writes a char to the bytes message stream as a 2-byte value, high byte first. |
void |
writeDouble(double value)
Converts the double argument to a long using the doubleToLongBits
method in class Double, and then writes that long value to the bytes message
stream as an 8-byte quantity, high byte first. |
void |
writeFloat(float value)
Converts the float argument to an int using the floatToIntBits
method in class Float, and then writes that int value to the bytes message stream
as a 4-byte quantity, high byte first. |
void |
writeInt(int value)
Writes an int to the bytes message stream as four bytes, high byte first. |
void |
writeLong(long value)
Writes a long to the bytes message stream as eight bytes, high byte first. |
void |
writeObject(java.lang.Object value)
Writes an object to the bytes message stream. |
void |
writeShort(short value)
Writes a short to the bytes message stream as two bytes, high byte first. |
void |
writeUTF(java.lang.String value)
Writes a string to the bytes message stream using UTF-8 encoding in a machine-independent manner. |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.activemq.io.util.MemoryManageable |
decrementMemoryReferenceCount, getMemoryUsage, getMemoryUsageReferenceCount, incrementMemoryReferenceCount |
| Field Detail |
dataOut
private java.io.DataOutputStream dataOut
bytesOut
private java.io.ByteArrayOutputStream bytesOut
dataIn
private java.io.DataInputStream dataIn
bodyLength
private transient long bodyLength
| Constructor Detail |
ActiveMQBytesMessage
public ActiveMQBytesMessage()
| Method Detail |
getPacketType
public int getPacketType()
- Return the type of Packet
- Specified by:
getPacketTypein interfacePacket- Overrides:
getPacketTypein classActiveMQMessage
shallowCopy
public ActiveMQMessage shallowCopy() throws javax.jms.JMSException
- Overrides:
shallowCopyin classActiveMQMessage
deepCopy
public ActiveMQMessage deepCopy() throws javax.jms.JMSException
- Overrides:
deepCopyin classActiveMQMessage
setBodyAsBytes
public void setBodyAsBytes(byte[] bodyAsBytes,
int offset,
int length)
- Overrides:
setBodyAsBytesin classActiveMQMessage
getBodyAsBytes
public org.activemq.io.util.ByteArray getBodyAsBytes() throws java.io.IOException
- Overrides:
getBodyAsBytesin classActiveMQMessage
clearBody
public void clearBody()
throws javax.jms.JMSException
- Clears out the message body. Clearing a message's body does not clear its header values or property entries.
If this message body was read-only, calling this method leaves the message body in the same state as an empty body in a newly created message.
- Specified by:
clearBodyin interfacejavax.jms.Message- Overrides:
clearBodyin classActiveMQMessage
getBodyLength
public long getBodyLength()
throws javax.jms.JMSException
- Gets the number of bytes of the message body when the message is in read-only mode. The value returned can be
used to allocate a byte array. The value returned is the entire length of the message body, regardless of where
the pointer for reading the message is currently located.
- Specified by:
getBodyLengthin interfacejavax.jms.BytesMessage
- Since:
- 1.1
readBoolean
public boolean readBoolean()
throws javax.jms.JMSException
- Reads a
booleanfrom the bytes message stream.- Specified by:
readBooleanin interfacejavax.jms.BytesMessage
readByte
public byte readByte()
throws javax.jms.JMSException
- Reads a signed 8-bit value from the bytes message stream.
- Specified by:
readBytein interfacejavax.jms.BytesMessage
readUnsignedByte
public int readUnsignedByte()
throws javax.jms.JMSException
- Reads an unsigned 8-bit number from the bytes message stream.
- Specified by:
readUnsignedBytein interfacejavax.jms.BytesMessage
readShort
public short readShort()
throws javax.jms.JMSException
- Reads a signed 16-bit number from the bytes message stream.
- Specified by:
readShortin interfacejavax.jms.BytesMessage
readUnsignedShort
public int readUnsignedShort()
throws javax.jms.JMSException
- Reads an unsigned 16-bit number from the bytes message stream.
- Specified by:
readUnsignedShortin interfacejavax.jms.BytesMessage
readChar
public char readChar()
throws javax.jms.JMSException
- Reads a Unicode character value from the bytes message stream.
- Specified by:
readCharin interfacejavax.jms.BytesMessage
readInt
public int readInt()
throws javax.jms.JMSException
- Reads a signed 32-bit integer from the bytes message stream.
- Specified by:
readIntin interfacejavax.jms.BytesMessage
readLong
public long readLong()
throws javax.jms.JMSException
- Reads a signed 64-bit integer from the bytes message stream.
- Specified by:
readLongin interfacejavax.jms.BytesMessage
readFloat
public float readFloat()
throws javax.jms.JMSException
- Reads a
floatfrom the bytes message stream.- Specified by:
readFloatin interfacejavax.jms.BytesMessage
readDouble
public double readDouble()
throws javax.jms.JMSException
- Reads a
doublefrom the bytes message stream.- Specified by:
readDoublein interfacejavax.jms.BytesMessage
readUTF
public java.lang.String readUTF() throws javax.jms.JMSException
- Reads a string that has been encoded using a modified UTF-8 format from the bytes message stream.
For more information on the UTF-8 format, see "File System Safe UCS Transformation Format (FSS_UTF)", X/Open Preliminary Specification, X/Open Company Ltd., Document Number: P316. This information also appears in ISO/IEC 10646, Annex P.
- Specified by:
readUTFin interfacejavax.jms.BytesMessage
readBytes
public int readBytes(byte[] value)
throws javax.jms.JMSException
- Reads a byte array from the bytes message stream.
If the length of array
valueis less than the number of bytes remaining to be read from the stream, the array should be filled. A subsequent call reads the next increment, and so on.If the number of bytes remaining in the stream is less than the length of array
value, the bytes should be read into the array. The return value of the total number of bytes read will be less than the length of the array, indicating that there are no more bytes left to be read from the stream. The next read of the stream returns -1.- Specified by:
readBytesin interfacejavax.jms.BytesMessage
readBytes
public int readBytes(byte[] value,
int length)
throws javax.jms.JMSException
- Reads a portion of the bytes message stream.
If the length of array
valueis less than the number of bytes remaining to be read from the stream, the array should be filled. A subsequent call reads the next increment, and so on.If the number of bytes remaining in the stream is less than the length of array
Ifvalue, the bytes should be read into the array. The return value of the total number of bytes read will be less than the length of the array, indicating that there are no more bytes left to be read from the stream. The next read of the stream returns -1.lengthis negative, orlengthis greater than the length of the arrayvalue, then anIndexOutOfBoundsExceptionis thrown. No bytes will be read from the stream for this exception case.- Specified by:
readBytesin interfacejavax.jms.BytesMessage
writeBoolean
public void writeBoolean(boolean value)
throws javax.jms.JMSException
- Writes a
booleanto the bytes message stream as a 1-byte value. The valuetrueis written as the value(byte)1; the valuefalseis written as the value(byte)0.- Specified by:
writeBooleanin interfacejavax.jms.BytesMessage
writeByte
public void writeByte(byte value)
throws javax.jms.JMSException
- Writes a
byteto the bytes message stream as a 1-byte value.- Specified by:
writeBytein interfacejavax.jms.BytesMessage
writeShort
public void writeShort(short value)
throws javax.jms.JMSException
- Writes a
shortto the bytes message stream as two bytes, high byte first.- Specified by:
writeShortin interfacejavax.jms.BytesMessage
writeChar
public void writeChar(char value)
throws javax.jms.JMSException
- Writes a
charto the bytes message stream as a 2-byte value, high byte first.- Specified by:
writeCharin interfacejavax.jms.BytesMessage
writeInt
public void writeInt(int value)
throws javax.jms.JMSException
- Writes an
intto the bytes message stream as four bytes, high byte first.- Specified by:
writeIntin interfacejavax.jms.BytesMessage
writeLong
public void writeLong(long value)
throws javax.jms.JMSException
- Writes a
longto the bytes message stream as eight bytes, high byte first.- Specified by:
writeLongin interfacejavax.jms.BytesMessage
writeFloat
public void writeFloat(float value)
throws javax.jms.JMSException
- Converts the
floatargument to anintusing thefloatToIntBitsmethod in classFloat, and then writes thatintvalue to the bytes message stream as a 4-byte quantity, high byte first.- Specified by:
writeFloatin interfacejavax.jms.BytesMessage
writeDouble
public void writeDouble(double value)
throws javax.jms.JMSException
- Converts the
doubleargument to alongusing thedoubleToLongBitsmethod in classDouble, and then writes thatlongvalue to the bytes message stream as an 8-byte quantity, high byte first.- Specified by:
writeDoublein interfacejavax.jms.BytesMessage
writeUTF
public void writeUTF(java.lang.String value) throws javax.jms.JMSException
- Writes a string to the bytes message stream using UTF-8 encoding in a machine-independent manner.
For more information on the UTF-8 format, see "File System Safe UCS Transformation Format (FSS_UTF)", X/Open Preliminary Specification, X/Open Company Ltd., Document Number: P316. This information also appears in ISO/IEC 10646, Annex P.
- Specified by:
writeUTFin interfacejavax.jms.BytesMessage
writeBytes
public void writeBytes(byte[] value)
throws javax.jms.JMSException
- Writes a byte array to the bytes message stream.
- Specified by:
writeBytesin interfacejavax.jms.BytesMessage
writeBytes
public void writeBytes(byte[] value,
int offset,
int length)
throws javax.jms.JMSException
- Writes a portion of a byte array to the bytes message stream.
- Specified by:
writeBytesin interfacejavax.jms.BytesMessage
writeObject
public void writeObject(java.lang.Object value) throws javax.jms.JMSException
- Writes an object to the bytes message stream.
This method works only for the objectified primitive object types (
Integer,Double,Long...),Stringobjects, and byte arrays.- Specified by:
writeObjectin interfacejavax.jms.BytesMessage
reset
public void reset()
throws javax.jms.JMSException
- Puts the message body in read-only mode and repositions the stream of bytes to the beginning.
- Specified by:
resetin interfacejavax.jms.BytesMessage
initializeWriting
private void initializeWriting()
throws javax.jms.MessageNotWriteableException
initializeReading
private void initializeReading()
throws javax.jms.MessageNotReadableException
toString
public java.lang.String toString()
- Description copied from class:
java.lang.Object - Convert this Object to a human-readable String.
There are no limits placed on how long this String
should be or what it should contain. We suggest you
make it as intuitive as possible to be able to place
it into System.out.println() 55
and such.
It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.
This method will be called when performing string concatenation with this object. If the result is
null, string concatenation will instead use"null".The default implementation returns
getClass().getName() + "@" + Integer.toHexString(hashCode()).- Overrides:
toStringin classActiveMQMessage
|
|||||||||
| Home >> All >> org >> activemq >> [ message overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC