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/Subscription.h"
00027 #include "qpid/client/Demux.h"
00028 #include "qpid/sys/Time.h"
00029
00030 namespace qpid {
00031 namespace client {
00032
00071 class LocalQueue {
00072 public:
00078 LocalQueue();
00079
00080 ~LocalQueue();
00081
00087 bool get(Message& result, sys::Duration timeout=0);
00088
00095 Message get(sys::Duration timeout=sys::TIME_INFINITE);
00096
00098 Message pop(sys::Duration timeout=sys::TIME_INFINITE);
00099
00101 bool empty() const;
00102
00104 size_t size() const;
00105
00106 private:
00107 Demux::QueuePtr queue;
00108 Subscription subscription;
00109
00110 friend class SubscriptionManager;
00111 };
00112
00113 }}
00114
00115 #endif