Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.activemq.service.boundedvm
Class TransientTopicBoundedMessageContainer  view TransientTopicBoundedMessageContainer download TransientTopicBoundedMessageContainer.java

java.lang.Object
  extended byorg.activemq.service.boundedvm.TransientTopicBoundedMessageContainer
All Implemented Interfaces:
org.activemq.service.MessageContainer, org.activemq.service.MessageContainerAdmin, java.lang.Runnable, org.activemq.service.Service

public class TransientTopicBoundedMessageContainer
extends java.lang.Object
implements org.activemq.service.MessageContainer, org.activemq.service.Service, java.lang.Runnable, org.activemq.service.MessageContainerAdmin

A MessageContainer for transient topics One of these exists for every active Connection consuming transient Topic messages

Version:
$Revision: 1.1.1.1 $

Field Summary
private  org.activemq.filter.DestinationMap accel
           
private  org.activemq.broker.BrokerClient client
           
private  org.apache.commons.logging.Log log
           
private  TransientTopicBoundedMessageManager manager
           
private  org.activemq.io.util.MemoryBoundedQueue queue
           
private  SynchronizedBoolean started
           
private  ConcurrentHashMap subMap
           
private  CopyOnWriteArrayList subscriptions
           
private  java.lang.Thread worker
           
 
Constructor Summary
TransientTopicBoundedMessageContainer(TransientTopicBoundedMessageManager manager, org.activemq.broker.BrokerClient client, org.activemq.io.util.MemoryBoundedQueue queue)
          Construct this beast
 
Method Summary
 TransientTopicSubscription addConsumer(org.activemq.filter.Filter filter, org.activemq.message.ConsumerInfo info)
          Add a consumer to dispatch messages to
 void addMessage(org.activemq.message.ActiveMQMessage msg)
          Add an ActiveMQMessage to the message container
 void close()
          close down this container
 boolean containsMessage(org.activemq.service.MessageIdentity messageIdentity)
          Returns whether or not this container contains the given message identity which provides an optimisation over getMessage() where the message does not need to be loaded.
 void delete(org.activemq.service.MessageIdentity messageIdentity, org.activemq.message.MessageAck ack)
          Delete a message - if no
private  void dispatchToQueue(org.activemq.message.ActiveMQMessage message, java.util.List list)
           
 void empty()
          Deletes all the messages that a container holds.
private  TransientTopicSubscription findMatch(org.activemq.message.ConsumerInfo info)
           
 org.activemq.broker.BrokerClient getBrokerClient()
           
 java.lang.String getDestinationName()
           
 org.activemq.message.ActiveMQMessage getMessage(org.activemq.service.MessageIdentity messageIdentity)
          Return the ActiveMQMessage that matches the Id
 org.activemq.service.MessageContainerAdmin getMessageContainerAdmin()
           
 boolean hasConsumerFor(org.activemq.message.ActiveMQDestination destination)
           
 boolean isDeadLetterQueue()
          returns true if this container is a dead letter queue
 boolean isInactive()
           
 void registerMessageInterest(org.activemq.service.MessageIdentity messageIdentity)
          Register that a consumer will be interested in this message
 void removeConsumer(org.activemq.message.ConsumerInfo info)
          Remove a consumer
 void run()
          do some dispatching
 void start()
          start working
 void stop()
          stop working
 boolean targetAndDispatch(org.activemq.broker.BrokerClient sender, org.activemq.message.ActiveMQMessage message)
          See if this container should get this message and dispatch it
 void unregisterMessageInterest(org.activemq.service.MessageIdentity messageIdentity)
          A message consumer calls this when it's no longer interested in a message so that we know when we can delete (or archive) it
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

started

private SynchronizedBoolean started

manager

private TransientTopicBoundedMessageManager manager

client

private org.activemq.broker.BrokerClient client

queue

private org.activemq.io.util.MemoryBoundedQueue queue

worker

private java.lang.Thread worker

subscriptions

private CopyOnWriteArrayList subscriptions

accel

private org.activemq.filter.DestinationMap accel

subMap

private ConcurrentHashMap subMap

log

private org.apache.commons.logging.Log log
Constructor Detail

TransientTopicBoundedMessageContainer

public TransientTopicBoundedMessageContainer(TransientTopicBoundedMessageManager manager,
                                             org.activemq.broker.BrokerClient client,
                                             org.activemq.io.util.MemoryBoundedQueue queue)
Construct this beast

Method Detail

isInactive

public boolean isInactive()

getBrokerClient

public org.activemq.broker.BrokerClient getBrokerClient()

addConsumer

public TransientTopicSubscription addConsumer(org.activemq.filter.Filter filter,
                                              org.activemq.message.ConsumerInfo info)
Add a consumer to dispatch messages to


removeConsumer

public void removeConsumer(org.activemq.message.ConsumerInfo info)
Remove a consumer


start

public void start()
start working

Specified by:
start in interface org.activemq.service.Service

targetAndDispatch

public boolean targetAndDispatch(org.activemq.broker.BrokerClient sender,
                                 org.activemq.message.ActiveMQMessage message)
                          throws javax.jms.JMSException
See if this container should get this message and dispatch it


stop

public void stop()
stop working

Specified by:
stop in interface org.activemq.service.Service

close

public void close()
close down this container


run

public void run()
do some dispatching

Specified by:
run in interface java.lang.Runnable

dispatchToQueue

private void dispatchToQueue(org.activemq.message.ActiveMQMessage message,
                             java.util.List list)
                      throws javax.jms.JMSException

findMatch

private TransientTopicSubscription findMatch(org.activemq.message.ConsumerInfo info)

hasConsumerFor

public boolean hasConsumerFor(org.activemq.message.ActiveMQDestination destination)

getDestinationName

public java.lang.String getDestinationName()
Specified by:
getDestinationName in interface org.activemq.service.MessageContainer

addMessage

public void addMessage(org.activemq.message.ActiveMQMessage msg)
                throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
Add an ActiveMQMessage to the message container

Specified by:
addMessage in interface org.activemq.service.MessageContainer

delete

public void delete(org.activemq.service.MessageIdentity messageIdentity,
                   org.activemq.message.MessageAck ack)
            throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
Delete a message - if no

Specified by:
delete in interface org.activemq.service.MessageContainer

getMessage

public org.activemq.message.ActiveMQMessage getMessage(org.activemq.service.MessageIdentity messageIdentity)
                                                throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
Return the ActiveMQMessage that matches the Id

Specified by:
getMessage in interface org.activemq.service.MessageContainer

registerMessageInterest

public void registerMessageInterest(org.activemq.service.MessageIdentity messageIdentity)
                             throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
Register that a consumer will be interested in this message

Specified by:
registerMessageInterest in interface org.activemq.service.MessageContainer

unregisterMessageInterest

public void unregisterMessageInterest(org.activemq.service.MessageIdentity messageIdentity)
                               throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
A message consumer calls this when it's no longer interested in a message so that we know when we can delete (or archive) it

Specified by:
unregisterMessageInterest in interface org.activemq.service.MessageContainer

containsMessage

public boolean containsMessage(org.activemq.service.MessageIdentity messageIdentity)
                        throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainer
Returns whether or not this container contains the given message identity which provides an optimisation over getMessage() where the message does not need to be loaded.

Specified by:
containsMessage in interface org.activemq.service.MessageContainer

getMessageContainerAdmin

public org.activemq.service.MessageContainerAdmin getMessageContainerAdmin()
Specified by:
getMessageContainerAdmin in interface org.activemq.service.MessageContainer

empty

public void empty()
           throws javax.jms.JMSException
Description copied from interface: org.activemq.service.MessageContainerAdmin
Deletes all the messages that a container holds. This is usally used when the container is being destroyed.

Specified by:
empty in interface org.activemq.service.MessageContainerAdmin

isDeadLetterQueue

public boolean isDeadLetterQueue()
Description copied from interface: org.activemq.service.MessageContainer
returns true if this container is a dead letter queue

Specified by:
isDeadLetterQueue in interface org.activemq.service.MessageContainer