User: norbert
Date: 00/05/23 19:52:16
Added: src/java/org/spyderMQ SpyQueueReceiver.java
Log:
adding SpyQueueReciever
Revision Changes Path
1.1 spyderMQ/src/java/org/spyderMQ/SpyQueueReceiver.java
Index: SpyQueueReceiver.java
===================================================================
/*
* spyderMQ, the OpenSource JMS implementation
*
* Distributable under GPL license.
* See terms of license at gnu.org.
*/
package org.spydermq;
import javax.jms.QueueReceiver;
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.Message;
import javax.jms.MessageListener;
/**
* This class implements javax.jms.QueueReceiver
*
* @author Norbert Lataille ([EMAIL PROTECTED])
*
* @version $Revision: 1.1 $
*/
public class SpyQueueReceiver
extends SpyMessageConsumer
implements QueueReceiver
{
// Attributes ----------------------------------------------------
//The queue I registered
private Queue queue;
//Mode of this QueueReceiver
boolean modeStop;
// Constructor ---------------------------------------------------
SpyQueueReceiver(SpyQueueSession s,SessionQueue sq,Queue q,boolean stop)
{
super(s,sq);
queue=q;
modeStop=stop;
}
// Public --------------------------------------------------------
public Queue getQueue() throws JMSException
{
if (closed) throw new IllegalStateException("The MessageConsumer is
closed");
return queue;
}
void setModeStop(boolean mode)
{
if (modeStop==mode) return;
modeStop=mode;
((SpyQueueSession)session).notifyReceiverStopped(this,mode);
}
public void close() throws JMSException
{
if (closed) return;
closed=true;
setModeStop(true);
}
//Overrides MessageConsumer
public Message receive() throws JMSException
{
if (closed) throw new IllegalStateException("The MessageConsumer is
closed");
//Not implemented yet
return null;
}
public Message receive(long timeOut) throws JMSException
{
if (closed) throw new IllegalStateException("The MessageConsumer is
closed");
//Not implemented yet
return null;
}
public Message receiveNoWait() throws JMSException
{
if (closed) throw new IllegalStateException("The MessageConsumer is
closed");
if (session.modeStop) return null;
return session.connection.queueReceiveNoWait(queue);
}
public void setMessageListener(MessageListener listener) throws JMSException
{
if (closed) throw new IllegalStateException("The MessageConsumer is
closed");
if (listener==null) {
mySessionQueue.notifyReceiverStopped(false);
} else {
mySessionQueue.notifyReceiverStopped(true);
}
messageListener=listener;
}
}