00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _Consumer_
00022 #define _Consumer_
00023
00024 #include "Message.h"
00025 #include "QueuedMessage.h"
00026 #include "OwnershipToken.h"
00027
00028 namespace qpid {
00029 namespace broker {
00030
00031 class Queue;
00032
00033 class Consumer {
00034 const bool acquires;
00035 public:
00036 typedef boost::shared_ptr<Consumer> shared_ptr;
00037
00038 framing::SequenceNumber position;
00039
00040 Consumer(bool preAcquires = true) : acquires(preAcquires) {}
00041 bool preAcquires() const { return acquires; }
00042 virtual bool deliver(QueuedMessage& msg) = 0;
00043 virtual void notify() = 0;
00044 virtual bool filter(boost::intrusive_ptr<Message>) { return true; }
00045 virtual bool accept(boost::intrusive_ptr<Message>) { return true; }
00046 virtual OwnershipToken* getSession() = 0;
00047 virtual ~Consumer(){}
00048 };
00049
00050 }}
00051
00052
00053 #endif