summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/SemanticHandler.h
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2007-07-27 15:44:52 +0000
committerGordon Sim <gsim@apache.org>2007-07-27 15:44:52 +0000
commit80406d0fb680239a0141b81fb0b9f20d20c9b1e1 (patch)
tree13677bf773bf25db03144aa72c97a49d2810240d /cpp/src/qpid/broker/SemanticHandler.h
parenta9232d5a02a19f093f212cb0b76772a20b45cb1b (diff)
downloadqpid-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.h15
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();
};