00001 #ifndef QPID_CLIENT_LOCALQUEUE_H
00002 #define QPID_CLIENT_LOCALQUEUE_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "qpid/client/Message.h"
00026 #include "qpid/client/Demux.h"
00027 #include "qpid/client/AckPolicy.h"
00028 #include "qpid/sys/Time.h"
00029
00030 namespace qpid {
00031 namespace client {
00032
00041 class LocalQueue
00042 {
00043 public:
00051 LocalQueue(AckPolicy ackPolicy=AckPolicy());
00052
00053 ~LocalQueue();
00054
00060 bool get(Message& result, sys::Duration timeout=0);
00061
00066 Message get();
00067
00069 Message pop();
00070
00072 bool empty() const;
00073
00075 size_t size() const;
00076
00078 void setAckPolicy(AckPolicy);
00079
00081 AckPolicy& getAckPolicy();
00082
00083 private:
00084 Session session;
00085 Demux::QueuePtr queue;
00086 AckPolicy autoAck;
00087
00088 friend class SubscriptionManager;
00089 };
00090
00091 }}
00092
00093 #endif