org.apache.activemq.broker.region.cursors
Class StoreDurableSubscriberCursor

java.lang.Object
  extended by org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
      extended by org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor
All Implemented Interfaces:
PendingMessageCursor, Service

public class StoreDurableSubscriberCursor
extends AbstractPendingMessageCursor

perist pending messages pending message (messages awaiting disptach to a consumer) cursor

Version:
$Revision: 474986 $

Field Summary
 
Fields inherited from class org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
maxBatchSize
 
Constructor Summary
StoreDurableSubscriberCursor(java.lang.String clientId, java.lang.String subscriberName, Store store, int maxBatchSize)
           
 
Method Summary
 void add(ConnectionContext context, Destination destination)
          Add a destination
 void addMessageLast(MessageReference node)
          add message to await dispatch
 void clear()
          clear all pending messages
protected  PendingMessageCursor getNextCursor()
           
 boolean hasNext()
           
 boolean isEmpty()
           
 boolean isRecoveryRequired()
          Informs the Broker if the subscription needs to intervention to recover it's state e.g.
 MessageReference next()
           
 void remove()
          remove the message at the cursor position
 void remove(ConnectionContext context, Destination destination)
          remove a destination
 void reset()
          reset the cursor
 int size()
           
 void start()
           
 void stop()
           
 
Methods inherited from class org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
addMessageFirst, fillBatch, getMaxBatchSize, resetForGC, setMaxBatchSize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StoreDurableSubscriberCursor

public StoreDurableSubscriberCursor(java.lang.String clientId,
                                    java.lang.String subscriberName,
                                    Store store,
                                    int maxBatchSize)
Parameters:
topic -
clientId -
subscriberName -
Throws:
java.io.IOException
Method Detail

start

public void start()
           throws java.lang.Exception
Specified by:
start in interface Service
Overrides:
start in class AbstractPendingMessageCursor
Throws:
java.lang.Exception

stop

public void stop()
          throws java.lang.Exception
Specified by:
stop in interface Service
Overrides:
stop in class AbstractPendingMessageCursor
Throws:
java.lang.Exception

add

public void add(ConnectionContext context,
                Destination destination)
         throws java.lang.Exception
Add a destination

Specified by:
add in interface PendingMessageCursor
Overrides:
add in class AbstractPendingMessageCursor
Parameters:
context -
destination -
Throws:
java.lang.Exception

remove

public void remove(ConnectionContext context,
                   Destination destination)
            throws java.lang.Exception
remove a destination

Specified by:
remove in interface PendingMessageCursor
Overrides:
remove in class AbstractPendingMessageCursor
Parameters:
context -
destination -
Throws:
java.lang.Exception

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface PendingMessageCursor
Overrides:
isEmpty in class AbstractPendingMessageCursor
Returns:
true if there are no pending messages

isRecoveryRequired

public boolean isRecoveryRequired()
Informs the Broker if the subscription needs to intervention to recover it's state e.g. DurableTopicSubscriber may do

Specified by:
isRecoveryRequired in interface PendingMessageCursor
Overrides:
isRecoveryRequired in class AbstractPendingMessageCursor
Returns:
true if recovery required
See Also:
org.apache.activemq.region.cursors.PendingMessageCursor

addMessageLast

public void addMessageLast(MessageReference node)
                    throws java.lang.Exception
Description copied from interface: PendingMessageCursor
add message to await dispatch

Specified by:
addMessageLast in interface PendingMessageCursor
Overrides:
addMessageLast in class AbstractPendingMessageCursor
Throws:
java.io.IOException
java.lang.Exception

clear

public void clear()
Description copied from interface: PendingMessageCursor
clear all pending messages

Specified by:
clear in interface PendingMessageCursor
Overrides:
clear in class AbstractPendingMessageCursor

hasNext

public boolean hasNext()
Specified by:
hasNext in interface PendingMessageCursor
Overrides:
hasNext in class AbstractPendingMessageCursor
Returns:
true if there pending messages to dispatch

next

public MessageReference next()
Specified by:
next in interface PendingMessageCursor
Overrides:
next in class AbstractPendingMessageCursor
Returns:
the next pending message

remove

public void remove()
Description copied from interface: PendingMessageCursor
remove the message at the cursor position

Specified by:
remove in interface PendingMessageCursor
Overrides:
remove in class AbstractPendingMessageCursor

reset

public void reset()
Description copied from interface: PendingMessageCursor
reset the cursor

Specified by:
reset in interface PendingMessageCursor
Overrides:
reset in class AbstractPendingMessageCursor

size

public int size()
Specified by:
size in interface PendingMessageCursor
Overrides:
size in class AbstractPendingMessageCursor
Returns:
the number of pending messages

getNextCursor

protected PendingMessageCursor getNextCursor()
                                      throws java.lang.Exception
Throws:
java.lang.Exception


Copyright © 2011 Apache Software Foundation. All Rights Reserved.