|
|||||||||
Home >> All >> org >> activemq >> [ message overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: ![]() ![]() ![]() |
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:
getPacketType
in interfacePacket
- Overrides:
getPacketType
in classActiveMQMessage
shallowCopy
public ActiveMQMessage shallowCopy() throws javax.jms.JMSException
- Overrides:
shallowCopy
in classActiveMQMessage
deepCopy
public ActiveMQMessage deepCopy() throws javax.jms.JMSException
- Overrides:
deepCopy
in classActiveMQMessage
setBodyAsBytes
public void setBodyAsBytes(byte[] bodyAsBytes, int offset, int length)
- Overrides:
setBodyAsBytes
in classActiveMQMessage
getBodyAsBytes
public org.activemq.io.util.ByteArray getBodyAsBytes() throws java.io.IOException
- Overrides:
getBodyAsBytes
in 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:
clearBody
in interfacejavax.jms.Message
- Overrides:
clearBody
in 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:
getBodyLength
in interfacejavax.jms.BytesMessage
- Since:
- 1.1
readBoolean
public boolean readBoolean() throws javax.jms.JMSException
- Reads a
boolean
from the bytes message stream.- Specified by:
readBoolean
in interfacejavax.jms.BytesMessage
readByte
public byte readByte() throws javax.jms.JMSException
- Reads a signed 8-bit value from the bytes message stream.
- Specified by:
readByte
in interfacejavax.jms.BytesMessage
readUnsignedByte
public int readUnsignedByte() throws javax.jms.JMSException
- Reads an unsigned 8-bit number from the bytes message stream.
- Specified by:
readUnsignedByte
in interfacejavax.jms.BytesMessage
readShort
public short readShort() throws javax.jms.JMSException
- Reads a signed 16-bit number from the bytes message stream.
- Specified by:
readShort
in interfacejavax.jms.BytesMessage
readUnsignedShort
public int readUnsignedShort() throws javax.jms.JMSException
- Reads an unsigned 16-bit number from the bytes message stream.
- Specified by:
readUnsignedShort
in interfacejavax.jms.BytesMessage
readChar
public char readChar() throws javax.jms.JMSException
- Reads a Unicode character value from the bytes message stream.
- Specified by:
readChar
in interfacejavax.jms.BytesMessage
readInt
public int readInt() throws javax.jms.JMSException
- Reads a signed 32-bit integer from the bytes message stream.
- Specified by:
readInt
in interfacejavax.jms.BytesMessage
readLong
public long readLong() throws javax.jms.JMSException
- Reads a signed 64-bit integer from the bytes message stream.
- Specified by:
readLong
in interfacejavax.jms.BytesMessage
readFloat
public float readFloat() throws javax.jms.JMSException
- Reads a
float
from the bytes message stream.- Specified by:
readFloat
in interfacejavax.jms.BytesMessage
readDouble
public double readDouble() throws javax.jms.JMSException
- Reads a
double
from the bytes message stream.- Specified by:
readDouble
in 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:
readUTF
in 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
value
is 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:
readBytes
in 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
value
is 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.length
is negative, orlength
is greater than the length of the arrayvalue
, then anIndexOutOfBoundsException
is thrown. No bytes will be read from the stream for this exception case.- Specified by:
readBytes
in interfacejavax.jms.BytesMessage
writeBoolean
public void writeBoolean(boolean value) throws javax.jms.JMSException
- Writes a
boolean
to the bytes message stream as a 1-byte value. The valuetrue
is written as the value(byte)1
; the valuefalse
is written as the value(byte)0
.- Specified by:
writeBoolean
in interfacejavax.jms.BytesMessage
writeByte
public void writeByte(byte value) throws javax.jms.JMSException
- Writes a
byte
to the bytes message stream as a 1-byte value.- Specified by:
writeByte
in interfacejavax.jms.BytesMessage
writeShort
public void writeShort(short value) throws javax.jms.JMSException
- Writes a
short
to the bytes message stream as two bytes, high byte first.- Specified by:
writeShort
in interfacejavax.jms.BytesMessage
writeChar
public void writeChar(char value) throws javax.jms.JMSException
- Writes a
char
to the bytes message stream as a 2-byte value, high byte first.- Specified by:
writeChar
in interfacejavax.jms.BytesMessage
writeInt
public void writeInt(int value) throws javax.jms.JMSException
- Writes an
int
to the bytes message stream as four bytes, high byte first.- Specified by:
writeInt
in interfacejavax.jms.BytesMessage
writeLong
public void writeLong(long value) throws javax.jms.JMSException
- Writes a
long
to the bytes message stream as eight bytes, high byte first.- Specified by:
writeLong
in interfacejavax.jms.BytesMessage
writeFloat
public void writeFloat(float value) throws javax.jms.JMSException
- Converts the
float
argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value to the bytes message stream as a 4-byte quantity, high byte first.- Specified by:
writeFloat
in interfacejavax.jms.BytesMessage
writeDouble
public void writeDouble(double value) throws javax.jms.JMSException
- Converts the
double
argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value to the bytes message stream as an 8-byte quantity, high byte first.- Specified by:
writeDouble
in 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:
writeUTF
in interfacejavax.jms.BytesMessage
writeBytes
public void writeBytes(byte[] value) throws javax.jms.JMSException
- Writes a byte array to the bytes message stream.
- Specified by:
writeBytes
in 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:
writeBytes
in 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
...),String
objects, and byte arrays.- Specified by:
writeObject
in 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:
reset
in 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:
toString
in classActiveMQMessage
|
|||||||||
Home >> All >> org >> activemq >> [ message overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: ![]() ![]() ![]() |
DETAIL: FIELD | CONSTR | METHOD |