org.apache.qpid.server.queue
Class AMQMessage

java.lang.Object
  extended by org.apache.qpid.server.queue.AMQMessage

public class AMQMessage
extends java.lang.Object

Combines the information that make up a deliverable message into a more manageable form.


Constructor Summary
protected AMQMessage(AMQMessage msg)
           
  AMQMessage(MessageStore messageStore, org.apache.qpid.framing.BasicPublishBody publishBody)
           
  AMQMessage(MessageStore messageStore, org.apache.qpid.framing.BasicPublishBody publishBody, boolean storeWhenComplete)
           
  AMQMessage(MessageStore store, org.apache.qpid.framing.BasicPublishBody publishBody, org.apache.qpid.framing.ContentHeaderBody contentHeaderBody, java.util.List<org.apache.qpid.framing.ContentBody> contentBodies)
           
  AMQMessage(MessageStore store, long messageId, org.apache.qpid.framing.BasicPublishBody publishBody, org.apache.qpid.framing.ContentHeaderBody contentHeaderBody, java.util.List<org.apache.qpid.framing.ContentBody> contentBodies)
           
 
Method Summary
 void addContentBodyFrame(org.apache.qpid.framing.ContentBody contentBody)
           
 void checkDeliveredToConsumer()
          Called to enforce the 'immediate' flag.
 boolean checkToken(java.lang.Object token)
           
 void decrementReference()
          Threadsafe.
 void dequeue(AMQQueue queue)
           
 void enqueue(AMQQueue queue)
           
 java.util.List<org.apache.qpid.framing.ContentBody> getContentBodies()
           
 org.apache.qpid.framing.ContentHeaderBody getContentHeaderBody()
           
 org.apache.qpid.framing.CompositeAMQDataBlock getDataBlock(org.apache.mina.common.ByteBuffer encodedDeliverBody, int channel)
           
 org.apache.qpid.framing.CompositeAMQDataBlock getDataBlock(int channel, java.lang.String consumerTag, long deliveryTag)
           
 long getMessageId()
           
 java.util.List<org.apache.qpid.framing.AMQBody> getPayload()
           
 org.apache.qpid.framing.BasicPublishBody getPublishBody()
           
 AMQProtocolSession getPublisher()
           
 TxnBuffer getTxnBuffer()
           
 void incrementReference()
          Threadsafe.
 boolean isAllContentReceived()
           
 boolean isPersistent()
           
 boolean isRedelivered()
           
 void setContentBodies(java.util.List<org.apache.qpid.framing.ContentBody> contentBodies)
           
 void setContentHeaderBody(org.apache.qpid.framing.ContentHeaderBody contentHeaderBody)
           
 void setDeliveredToConsumer()
          Called when this message is delivered to a consumer.
 void setPublisher(AMQProtocolSession publisher)
           
 void setTxnBuffer(TxnBuffer buffer)
           
 void storeMessage()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AMQMessage

public AMQMessage(MessageStore messageStore,
                  org.apache.qpid.framing.BasicPublishBody publishBody)

AMQMessage

public AMQMessage(MessageStore messageStore,
                  org.apache.qpid.framing.BasicPublishBody publishBody,
                  boolean storeWhenComplete)

AMQMessage

public AMQMessage(MessageStore store,
                  long messageId,
                  org.apache.qpid.framing.BasicPublishBody publishBody,
                  org.apache.qpid.framing.ContentHeaderBody contentHeaderBody,
                  java.util.List<org.apache.qpid.framing.ContentBody> contentBodies)
           throws org.apache.qpid.AMQException
Throws:
org.apache.qpid.AMQException

AMQMessage

public AMQMessage(MessageStore store,
                  org.apache.qpid.framing.BasicPublishBody publishBody,
                  org.apache.qpid.framing.ContentHeaderBody contentHeaderBody,
                  java.util.List<org.apache.qpid.framing.ContentBody> contentBodies)
           throws org.apache.qpid.AMQException
Throws:
org.apache.qpid.AMQException

AMQMessage

protected AMQMessage(AMQMessage msg)
              throws org.apache.qpid.AMQException
Throws:
org.apache.qpid.AMQException
Method Detail

storeMessage

public void storeMessage()
                  throws org.apache.qpid.AMQException
Throws:
org.apache.qpid.AMQException

getDataBlock

public org.apache.qpid.framing.CompositeAMQDataBlock getDataBlock(org.apache.mina.common.ByteBuffer encodedDeliverBody,
                                                                  int channel)

getDataBlock

public org.apache.qpid.framing.CompositeAMQDataBlock getDataBlock(int channel,
                                                                  java.lang.String consumerTag,
                                                                  long deliveryTag)

getPayload

public java.util.List<org.apache.qpid.framing.AMQBody> getPayload()

getPublishBody

public org.apache.qpid.framing.BasicPublishBody getPublishBody()

getContentHeaderBody

public org.apache.qpid.framing.ContentHeaderBody getContentHeaderBody()

setContentHeaderBody

public void setContentHeaderBody(org.apache.qpid.framing.ContentHeaderBody contentHeaderBody)
                          throws org.apache.qpid.AMQException
Throws:
org.apache.qpid.AMQException

getContentBodies

public java.util.List<org.apache.qpid.framing.ContentBody> getContentBodies()

setContentBodies

public void setContentBodies(java.util.List<org.apache.qpid.framing.ContentBody> contentBodies)

addContentBodyFrame

public void addContentBodyFrame(org.apache.qpid.framing.ContentBody contentBody)
                         throws org.apache.qpid.AMQException
Throws:
org.apache.qpid.AMQException

isAllContentReceived

public boolean isAllContentReceived()

isRedelivered

public boolean isRedelivered()

getMessageId

public long getMessageId()

incrementReference

public void incrementReference()
Threadsafe. Increment the reference count on the message.


decrementReference

public void decrementReference()
                        throws MessageCleanupException
Threadsafe. This will decrement the reference count and when it reaches zero will remove the message from the message store.

Throws:
MessageCleanupException

setPublisher

public void setPublisher(AMQProtocolSession publisher)

getPublisher

public AMQProtocolSession getPublisher()

checkToken

public boolean checkToken(java.lang.Object token)

enqueue

public void enqueue(AMQQueue queue)
             throws org.apache.qpid.AMQException
Throws:
org.apache.qpid.AMQException

dequeue

public void dequeue(AMQQueue queue)
             throws org.apache.qpid.AMQException
Throws:
org.apache.qpid.AMQException

isPersistent

public boolean isPersistent()
                     throws org.apache.qpid.AMQException
Throws:
org.apache.qpid.AMQException

setTxnBuffer

public void setTxnBuffer(TxnBuffer buffer)

getTxnBuffer

public TxnBuffer getTxnBuffer()

checkDeliveredToConsumer

public void checkDeliveredToConsumer()
                              throws NoConsumersException
Called to enforce the 'immediate' flag.

Throws:
NoConsumersException - if the message is marked for immediate delivery but has not been marked as delivered to a consumer

setDeliveredToConsumer

public void setDeliveredToConsumer()
Called when this message is delivered to a consumer. (used to implement the 'immediate' flag functionality).