|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--org.exolab.jms.messagemgr.AbstractConsumerEndpoint
|
+--org.exolab.jms.messagemgr.AbstractTopicConsumerEndpoint
|
+--org.exolab.jms.messagemgr.TopicConsumerEndpoint
A ConsumerEndpoint for transient topic consumers.
| Field Summary | |
protected java.util.Map |
_caches
Maintains a map of TopicDestinationCache that this endpoint subscribes to, keyed on JmsTopic. |
| Constructor Summary | |
TopicConsumerEndpoint(long consumerId,
long connectionId,
JmsTopic topic,
java.lang.String selector,
boolean noLocal,
DestinationManager destinations)
Construct a new TopicConsumerEndpoint. |
|
| Method Summary | |
protected void |
addMessage(MessageHandle handle)
Add the handle to the cache. |
void |
cacheAdded(JmsDestination destination,
DestinationCache cache)
Invoked when a message cache is created. |
void |
cacheRemoved(JmsDestination destination,
DestinationCache cache)
Invoked when a message cache is removed. |
boolean |
canConsume(JmsDestination destination)
Determines if this consumer can consume messages from the specified destination. |
void |
destinationAdded(JmsDestination destination)
Invoked when a destination is created. |
void |
destinationRemoved(JmsDestination destination)
Invoked when a destination is removed. |
protected void |
doClose()
Closes this endpoint. |
protected MessageHandle |
doReceive(Condition cancel)
Return the next available message to the client. |
long |
getConnectionId()
Returns the identity of the connection that owns this consumer. |
protected DestinationCache[] |
getDestinationCaches()
Returns the destination caches. |
protected DestinationManager |
getDestinationManager()
Returns the destination manager. |
int |
getMessageCount()
Return the number of unsent messages in the cache for this consumer. |
protected void |
init()
Registers this with the associated DestinationCaches. |
boolean |
messageAdded(MessageHandle handle,
MessageImpl message)
This event is called when a non-persistent message is added to the DestinationCache. |
void |
messageRemoved(java.lang.String messageId)
This event is called when a message is removed from the DestinationCache. |
boolean |
persistentMessageAdded(MessageHandle handle,
MessageImpl message)
This event is called when a persistent message is added to the DestinationCache. |
void |
persistentMessageRemoved(java.lang.String messageId)
This event is called when a message is removed from the DestinationCache. |
void |
returnMessage(MessageHandle handle)
Return a delivered, but unacknowledged message to the cache. |
protected void |
setConnectionId(long connectionId)
Set the connection identifier. |
| Methods inherited from class org.exolab.jms.messagemgr.AbstractConsumerEndpoint |
close, getDestination, getId, getNoLocal, getPersistentId, getSelector, isAsynchronous, isClosed, isPersistent, isWaitingForMessage, notifyMessageAvailable, receive, selects, setAsynchronous, setListener, setNoLocal, setSelector, setWaitingForMessage, toString |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
protected java.util.Map _caches
| Constructor Detail |
public TopicConsumerEndpoint(long consumerId,
long connectionId,
JmsTopic topic,
java.lang.String selector,
boolean noLocal,
DestinationManager destinations)
throws javax.jms.InvalidSelectorException,
javax.jms.JMSException
TopicConsumerEndpoint.consumerId - the identity of this consumerconnectionId - the identity of the connection that owns this
consumertopic - the topic to accessselector - the message selector. May be nullnoLocal - if true, inhibits the delivery of messages published
by its own connection.destinations - the destination managerjavax.jms.InvalidSelectorException - if the selector is invalidjavax.jms.JMSException - if the destination caches can't be
constructed| Method Detail |
public long getConnectionId()
-1 if this is not
currently associated with a connection.ServerConnection.getConnectionId()public boolean canConsume(JmsDestination destination)
canConsume in class AbstractConsumerEndpointdestination - the destinationtrue if the consumer can consume messages from
destination; otherwise falsepublic void returnMessage(MessageHandle handle)
handle - the handle of the message to returnpublic int getMessageCount()
public boolean messageAdded(MessageHandle handle,
MessageImpl message)
throws javax.jms.JMSException
DestinationCache.handle - a handle to the messagemessage - the added messagetrue if the listener accepted the message; otherwise
false- Throws:
javax.jms.JMSException - if the listener fails to handle the message
public void messageRemoved(java.lang.String messageId)
throws javax.jms.JMSException
DestinationCache.messageId - the identifier of the removed messagejavax.jms.JMSException - if the listener fails to handle the message
public boolean persistentMessageAdded(MessageHandle handle,
MessageImpl message)
throws javax.jms.JMSException,
PersistenceException
DestinationCache.handle - a handle to the added messagemessage - the added messagetrue if the listener accepted the message;javax.jms.JMSException - if the listener fails to handle the messagePersistenceException - if there is a persistence related problem
public void persistentMessageRemoved(java.lang.String messageId)
throws javax.jms.JMSException,
PersistenceException
DestinationCache.messageId - the identifier of the removed messagejavax.jms.JMSException - if the listener fails to handle the messagePersistenceException - if there is a persistence related problempublic void destinationAdded(JmsDestination destination)
destinationAdded in interface DestinationEventListenerdestination - the destination that was addedpublic void destinationRemoved(JmsDestination destination)
destinationRemoved in interface DestinationEventListenerdestination - the destination that was removed
public void cacheAdded(JmsDestination destination,
DestinationCache cache)
cacheAdded in interface DestinationEventListenerdestination - the destination that messages are being cached forcache - the corresponding cache
public void cacheRemoved(JmsDestination destination,
DestinationCache cache)
cacheRemoved in interface DestinationEventListenerdestination - the destination that messages are no longer being
cached forcache - the corresponding cache
protected void init()
throws javax.jms.JMSException
DestinationCaches. The
consumer may receive messages immediately.javax.jms.JMSException - for any JMS errorprotected void setConnectionId(long connectionId)
connectionId - the identity of the connection that owns this
consumerAbstractTopicConsumerEndpoint.getConnectionId()protected void addMessage(MessageHandle handle)
handle - the message handle to add
protected MessageHandle doReceive(Condition cancel)
throws javax.jms.JMSException
doReceive in class AbstractConsumerEndpointcancel - null if none is availablejavax.jms.JMSException - for any errorprotected void doClose()
doClose in class AbstractConsumerEndpointprotected DestinationManager getDestinationManager()
protected DestinationCache[] getDestinationCaches()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||