uk.ac.soton.itinnovation.grid.utils.messaging
Class PollingConsumerImpl<T>

java.lang.Object
  extended by uk.ac.soton.itinnovation.grid.utils.messaging.PollingConsumerImpl<T>
All Implemented Interfaces:
PollingConsumer<T>

public class PollingConsumerImpl<T>
extends Object
implements PollingConsumer<T>

The default implementation of PollingConsumer. A single thread is used for retrieving messages from all registered Producers. After all messages have been retrieved and processsed, the thread pauses for pollingInterval milliseconds before retrieving messages again.

Messages are retrieved from Producers in the order in which they were registered with addProducer().

After all messages have been retrieved, they are handled in a single batch by the registered MessageHandler.


Constructor Summary
PollingConsumerImpl()
           
 
Method Summary
 void addProducer(Producer<T> p)
          Add a Producer to monitor
 List<Producer<T>> getallProducers()
          Get a copy of the list of producers.
 int getFetchSize()
           
 MessageHandler<T> getHandler()
           
protected  List<T> getMessages()
           
 long getPollingInterval()
           
 void pollNow()
          Poll immediately.
 void removeAllProducers()
          Remove all Producers
 void removeProducer(Producer<T> p)
          Remove a Producer
 void setFetchSize(int fetchSize)
          Set the batch size for retrieving messages.
 void setHandler(MessageHandler<T> handler)
          Set the object (message handler) that will process usage reports
 void setPollingInterval(long intervalMillis)
           
 void start()
          Start retrieving mesages.
 void stop()
          Stop retrieving messages.
 void stopAndWait()
          Stop retrieving messages and wait for complete stop (ongoing message retrieval has completed)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PollingConsumerImpl

public PollingConsumerImpl()
Method Detail

addProducer

public void addProducer(Producer<T> p)
Description copied from interface: PollingConsumer
Add a Producer to monitor

Specified by:
addProducer in interface PollingConsumer<T>

removeProducer

public void removeProducer(Producer<T> p)
Description copied from interface: PollingConsumer
Remove a Producer

Specified by:
removeProducer in interface PollingConsumer<T>

removeAllProducers

public void removeAllProducers()
Description copied from interface: PollingConsumer
Remove all Producers

Specified by:
removeAllProducers in interface PollingConsumer<T>

getallProducers

public List<Producer<T>> getallProducers()
Description copied from interface: PollingConsumer
Get a copy of the list of producers.

Specified by:
getallProducers in interface PollingConsumer<T>

setPollingInterval

public void setPollingInterval(long intervalMillis)
Specified by:
setPollingInterval in interface PollingConsumer<T>

getPollingInterval

public long getPollingInterval()
Specified by:
getPollingInterval in interface PollingConsumer<T>

setFetchSize

public void setFetchSize(int fetchSize)
Description copied from interface: PollingConsumer
Set the batch size for retrieving messages. No more than fetchSize number of messages will be retrieved at one time. A fetchSize value of -1 indicates no maximum fetch size.

Specified by:
setFetchSize in interface PollingConsumer<T>

getFetchSize

public int getFetchSize()
Specified by:
getFetchSize in interface PollingConsumer<T>

setHandler

public void setHandler(MessageHandler<T> handler)
Description copied from interface: PollingConsumer
Set the object (message handler) that will process usage reports

Specified by:
setHandler in interface PollingConsumer<T>

getHandler

public MessageHandler<T> getHandler()
Specified by:
getHandler in interface PollingConsumer<T>

start

public void start()
Description copied from interface: PollingConsumer
Start retrieving mesages.

Specified by:
start in interface PollingConsumer<T>

stop

public void stop()
Description copied from interface: PollingConsumer
Stop retrieving messages. This is non-blocking. After calling this method message retrieval will stop at the next opportunity, but this method returns immediately and possibly before the final round of message retrieval.

Specified by:
stop in interface PollingConsumer<T>

stopAndWait

public void stopAndWait()
Description copied from interface: PollingConsumer
Stop retrieving messages and wait for complete stop (ongoing message retrieval has completed)

Specified by:
stopAndWait in interface PollingConsumer<T>

pollNow

public void pollNow()
Description copied from interface: PollingConsumer
Poll immediately. This terminates the pause between polling for the next immediate polling session only.

Specified by:
pollNow in interface PollingConsumer<T>

getMessages

protected List<T> getMessages()
                       throws Exception
Throws:
Exception


Copyright © 2001-2008 University of Southampton IT Innovation Centre. All Rights Reserved.