org.apache.qpid.client
Class BasicMessageConsumer_0_10

java.lang.Object
  extended by org.apache.qpid.client.Closeable
      extended by org.apache.qpid.client.BasicMessageConsumer<UnprocessedMessage_0_10>
          extended by org.apache.qpid.client.BasicMessageConsumer_0_10
All Implemented Interfaces:
MessageConsumer

public class BasicMessageConsumer_0_10
extends BasicMessageConsumer<UnprocessedMessage_0_10>

This is a 0.10 message consumer.


Field Summary
protected  org.slf4j.Logger _logger
          This class logger
 
Fields inherited from class org.apache.qpid.client.BasicMessageConsumer
_acknowledgeMode, _channelId, _connection, _consumerTag, _destination, _exclusive, _messageFactory, _messageSelector, _protocolHandler, _session, _synchronousQueue
 
Fields inherited from class org.apache.qpid.client.Closeable
_closed, _closing
 
Constructor Summary
protected BasicMessageConsumer_0_10(int channelId, AMQConnection connection, AMQDestination destination, String messageSelector, boolean noLocal, MessageFactoryRegistry messageFactory, AMQSession session, AMQProtocolHandler protocolHandler, org.apache.qpid.framing.FieldTable arguments, int prefetchHigh, int prefetchLow, boolean exclusive, int acknowledgeMode, boolean noConsume, boolean autoClose)
           
 
Method Summary
 AbstractJMSMessage createJMSMessageFromUnprocessedMessage(AMQMessageDelegateFactory delegateFactory, UnprocessedMessage_0_10 msg)
           
 void failedOverPost()
           
 String getConsumerTagString()
           
 Object getMessageFromQueue(long l)
          When messages are not prefetched we need to request a message from the broker.
 boolean isExclusive()
           
 void notifyMessage(AbstractJMSMessage jmsMessage)
          This is invoked by the session thread when emptying the session message queue.
(package private)  void notifyMessage(UnprocessedMessage_0_10 messageFrame)
          Called from the AMQSession when a message has arrived for this consumer.
(package private)  void postDeliver(AbstractJMSMessage msg)
           
protected  void preApplicationProcessing(AbstractJMSMessage jmsMsg)
           
(package private)  Message receiveBrowse()
           
 void rollbackPendingMessages()
           
(package private)  void sendCancel()
          This method is invoked when this consumer is stopped.
 void setConsumerTag(int consumerTag)
           
 void setMessageListener(MessageListener messageListener)
           
 
Methods inherited from class org.apache.qpid.client.BasicMessageConsumer
acknowledgeDelivered, addBindingKey, clearReceiveQueue, close, close, debugIdentity, drainReceiverQueueAndRetrieveDeliveryTags, failedOverPre, getAcknowledgeMode, getArguments, getConsumerTag, getDestination, getLastDelivered, getMessageListener, getMessageSelector, getPrefetch, getPrefetchHigh, getPrefetchLow, getQueuename, getSession, isAutoClose, isMessageListenerSet, isNoConsume, isNoLocal, isReceiving, markClosed, notifyCloseMessage, notifyError, preDeliver, receive, receive, receiveNoWait, rollback, setQueuename
 
Methods inherited from class org.apache.qpid.client.Closeable
checkNotClosed, isClosed, isClosing
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_logger

protected final org.slf4j.Logger _logger
This class logger

Constructor Detail

BasicMessageConsumer_0_10

protected BasicMessageConsumer_0_10(int channelId,
                                    AMQConnection connection,
                                    AMQDestination destination,
                                    String messageSelector,
                                    boolean noLocal,
                                    MessageFactoryRegistry messageFactory,
                                    AMQSession session,
                                    AMQProtocolHandler protocolHandler,
                                    org.apache.qpid.framing.FieldTable arguments,
                                    int prefetchHigh,
                                    int prefetchLow,
                                    boolean exclusive,
                                    int acknowledgeMode,
                                    boolean noConsume,
                                    boolean autoClose)
                             throws JMSException
Throws:
JMSException
Method Detail

setConsumerTag

public void setConsumerTag(int consumerTag)
Overrides:
setConsumerTag in class BasicMessageConsumer<UnprocessedMessage_0_10>

getConsumerTagString

public String getConsumerTagString()

notifyMessage

public void notifyMessage(AbstractJMSMessage jmsMessage)
This is invoked by the session thread when emptying the session message queue. We first check if the message is valid (match the selector) and then deliver it to the message listener or to the sync consumer queue.

Overrides:
notifyMessage in class BasicMessageConsumer<UnprocessedMessage_0_10>
Parameters:
jmsMessage - this message has already been processed so can't redo preDeliver

sendCancel

void sendCancel()
          throws org.apache.qpid.AMQException
This method is invoked when this consumer is stopped. It tells the broker to stop delivering messages to this consumer.

Specified by:
sendCancel in class BasicMessageConsumer<UnprocessedMessage_0_10>
Throws:
org.apache.qpid.AMQException

notifyMessage

void notifyMessage(UnprocessedMessage_0_10 messageFrame)
Description copied from class: BasicMessageConsumer
Called from the AMQSession when a message has arrived for this consumer. This methods handles both the case of a message listener or a synchronous receive() caller.

Overrides:
notifyMessage in class BasicMessageConsumer<UnprocessedMessage_0_10>
Parameters:
messageFrame - the raw unprocessed mesage

preApplicationProcessing

protected void preApplicationProcessing(AbstractJMSMessage jmsMsg)
                                 throws JMSException
Overrides:
preApplicationProcessing in class BasicMessageConsumer<UnprocessedMessage_0_10>
Throws:
JMSException

createJMSMessageFromUnprocessedMessage

public AbstractJMSMessage createJMSMessageFromUnprocessedMessage(AMQMessageDelegateFactory delegateFactory,
                                                                 UnprocessedMessage_0_10 msg)
                                                          throws Exception
Specified by:
createJMSMessageFromUnprocessedMessage in class BasicMessageConsumer<UnprocessedMessage_0_10>
Throws:
Exception

setMessageListener

public void setMessageListener(MessageListener messageListener)
                        throws JMSException
Specified by:
setMessageListener in interface MessageConsumer
Overrides:
setMessageListener in class BasicMessageConsumer<UnprocessedMessage_0_10>
Throws:
JMSException

failedOverPost

public void failedOverPost()
Overrides:
failedOverPost in class BasicMessageConsumer<UnprocessedMessage_0_10>

getMessageFromQueue

public Object getMessageFromQueue(long l)
                           throws InterruptedException
When messages are not prefetched we need to request a message from the broker. Note that if the timeout is too short a message may be queued in _synchronousQueue until this consumer closes or request it.

Overrides:
getMessageFromQueue in class BasicMessageConsumer<UnprocessedMessage_0_10>
Parameters:
l -
Returns:
Throws:
InterruptedException

postDeliver

void postDeliver(AbstractJMSMessage msg)
           throws JMSException
Overrides:
postDeliver in class BasicMessageConsumer<UnprocessedMessage_0_10>
Throws:
JMSException

receiveBrowse

Message receiveBrowse()
                throws JMSException
Specified by:
receiveBrowse in class BasicMessageConsumer<UnprocessedMessage_0_10>
Throws:
JMSException

rollbackPendingMessages

public void rollbackPendingMessages()
Overrides:
rollbackPendingMessages in class BasicMessageConsumer<UnprocessedMessage_0_10>

isExclusive

public boolean isExclusive()
Overrides:
isExclusive in class BasicMessageConsumer<UnprocessedMessage_0_10>


Licensed to the Apache Software Foundation