KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > ubermq > jms > client > impl > QueueReceiver


1 package com.ubermq.jms.client.impl;
2
3 import EDU.oswego.cs.dl.util.concurrent.*;
4 import com.ubermq.jms.client.*;
5 import com.ubermq.jms.common.datagram.*;
6 import com.ubermq.kernel.*;
7 import com.ubermq.kernel.overflow.*;
8 import java.io.*;
9
10 final class QueueReceiver
11     extends AbstractConsumer
12     implements javax.jms.QueueReceiver JavaDoc
13 {
14     // the maximum number of messages we buffer for sync delivery
15
private static int BOUNDED_BUFFER_SIZE = Integer.valueOf(Configurator.getProperty(ClientConfig.SUB_BOUNDED_BUFFER_SIZE, "50")).intValue();
16
17     /**
18      * The queue we are receiving from.
19      */

20     private final javax.jms.Queue JavaDoc q;
21
22     public QueueReceiver(javax.jms.Queue JavaDoc q,
23                          String JavaDoc selector,
24                          Session qs)
25         throws javax.jms.JMSException JavaDoc
26     {
27         super(qs,
28               selector,
29               qs.conn.delivery,
30               new BoundedPriorityQueue(BOUNDED_BUFFER_SIZE));
31         this.q = q;
32
33         // start queue
34
qs.conn.getClientProcessor().startQueue(q.getQueueName(),
35                                                 selector,
36                                                 this);
37     }
38
39     public void close()
40         throws javax.jms.JMSException JavaDoc
41     {
42         super.close();
43
44         // stop the queue from the server-side.
45
getClientProcessor().stopQueue(q.getQueueName(), this);
46     }
47
48     public javax.jms.Queue JavaDoc getQueue()
49         throws javax.jms.JMSException JavaDoc
50     {
51         return q;
52     }
53 }
54
Popular Tags