diff options
| author | Gordon Sim <gsim@apache.org> | 2007-07-27 15:44:52 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2007-07-27 15:44:52 +0000 |
| commit | 80406d0fb680239a0141b81fb0b9f20d20c9b1e1 (patch) | |
| tree | 13677bf773bf25db03144aa72c97a49d2810240d /cpp/src/qpid/broker/SemanticHandler.h | |
| parent | a9232d5a02a19f093f212cb0b76772a20b45cb1b (diff) | |
| download | qpid-python-80406d0fb680239a0141b81fb0b9f20d20c9b1e1.tar.gz | |
Use execution layer to acknowledge messages.
Turn off 0-9 framing of requests and responses.
Some refactoring around message delivery.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@560285 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/SemanticHandler.h')
| -rw-r--r-- | cpp/src/qpid/broker/SemanticHandler.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/SemanticHandler.h b/cpp/src/qpid/broker/SemanticHandler.h index a57559d043..b863b3486e 100644 --- a/cpp/src/qpid/broker/SemanticHandler.h +++ b/cpp/src/qpid/broker/SemanticHandler.h @@ -24,6 +24,7 @@ #include <memory> #include "BrokerChannel.h" #include "Connection.h" +#include "DeliveryAdapter.h" #include "qpid/framing/amqp_types.h" #include "qpid/framing/AMQP_ServerOperations.h" #include "qpid/framing/FrameHandler.h" @@ -36,6 +37,7 @@ class BrokerAdapter; class framing::ChannelAdapter; class SemanticHandler : private framing::ChannelAdapter, + private DeliveryAdapter, public framing::FrameHandler, public framing::AMQP_ServerOperations::ExecutionHandler { @@ -44,6 +46,7 @@ class SemanticHandler : private framing::ChannelAdapter, std::auto_ptr<BrokerAdapter> adapter; framing::Window incoming; framing::Window outgoing; + sys::Mutex outLock; void handleL4(boost::shared_ptr<qpid::framing::AMQMethodBody> method, const qpid::framing::MethodContext& context); @@ -55,12 +58,22 @@ class SemanticHandler : private framing::ChannelAdapter, void handleHeader(boost::shared_ptr<qpid::framing::AMQHeaderBody>); void handleContent(boost::shared_ptr<qpid::framing::AMQContentBody>); void handleHeartbeat(boost::shared_ptr<qpid::framing::AMQHeartbeatBody>); + + framing::RequestId send(shared_ptr<framing::AMQBody> body, framing::Correlator::Action action=framing::Correlator::Action()); + + + //delivery adapter methods: + DeliveryId deliver(Message::shared_ptr& msg, DeliveryToken::shared_ptr token); + void redeliver(Message::shared_ptr& msg, DeliveryToken::shared_ptr token, DeliveryId tag); + public: SemanticHandler(framing::ChannelId id, Connection& c); + + //frame handler: void handle(framing::AMQFrame& frame); //execution class method handlers: - void complete(uint32_t cumulativeExecutionMark, uint16_t); + void complete(uint32_t cumulativeExecutionMark, framing::SequenceNumberSet range); void flush(); }; |
