00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _IncomingExecutionContext_
00022 #define _IncomingExecutionContext_
00023
00024 #include "Message.h"
00025
00026 #include "qpid/framing/AccumulatedAck.h"
00027 #include "qpid/framing/SequenceNumber.h"
00028
00029 #include <boost/intrusive_ptr.hpp>
00030
00031 namespace qpid {
00032 namespace broker {
00033
00034 class IncomingExecutionContext
00035 {
00036 typedef std::list<boost::intrusive_ptr<Message> > Messages;
00037 framing::Window window;
00038 framing::AccumulatedAck completed;
00039 Messages incomplete;
00040
00041 bool isComplete(const framing::SequenceNumber& command);
00042 void check();
00043 void wait();
00044 public:
00045 void noop();
00046 void flush();
00047 void sync();
00048 void sync(const framing::SequenceNumber& point);
00049 framing::SequenceNumber next();
00050 void complete(const framing::SequenceNumber& command);
00051 void track(boost::intrusive_ptr<Message>);
00052
00053 const framing::SequenceNumber& getMark();
00054 framing::SequenceNumberSet getRange();
00055
00056 };
00057
00058
00059 }}
00060
00061 #endif