You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2007/09/28 11:27:03 UTC
svn commit: r580266 - in /incubator/qpid/trunk/qpid/cpp/src/qpid:
broker/SemanticHandler.cpp framing/AMQMethodBody.h framing/ModelMethod.h
Author: gsim
Date: Fri Sep 28 02:27:03 2007
New Revision: 580266
URL: http://svn.apache.org/viewvc?rev=580266&view=rev
Log:
Honour sync bit when processing L4 method
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticHandler.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.h
incubator/qpid/trunk/qpid/cpp/src/qpid/framing/ModelMethod.h
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticHandler.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticHandler.cpp?rev=580266&r1=580265&r2=580266&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticHandler.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/SemanticHandler.cpp Fri Sep 28 02:27:03 2007
@@ -132,7 +132,10 @@
} else if (v.hasResult()) {
session.getProxy().getExecution().result(id.getValue(), v.getResult());
}
- //TODO: if (method->isSync()) { incoming.synch(id); sendCompletion(); }
+ if (method->isSync()) {
+ incoming.sync(id);
+ sendCompletion();
+ }
//TODO: if window gets too large send unsolicited completion
}
@@ -156,7 +159,10 @@
state.handle(msg);
msgBuilder.end();
incoming.track(msg);
- //TODO: if (msg.getMethod().isSync()) { incoming.synch(msg.getCommandId()); sendCompletion(); }
+ if (msg->getFrames().getMethod()->isSync()) {
+ incoming.sync(msg->getCommandId());
+ sendCompletion();
+ }
}
}
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.h?rev=580266&r1=580265&r2=580266&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQMethodBody.h Fri Sep 28 02:27:03 2007
@@ -63,6 +63,8 @@
virtual uint32_t size() const = 0;
virtual uint8_t type() const { return METHOD_BODY; }
+ virtual bool isSync() const { return false; /*only ModelMethods can have the sync flag set*/ }
+
AMQMethodBody* getMethod() { return this; }
const AMQMethodBody* getMethod() const { return this; }
void accept(AMQBodyConstVisitor& v) const { v.visit(*this); }
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/framing/ModelMethod.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/framing/ModelMethod.h?rev=580266&r1=580265&r2=580266&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/framing/ModelMethod.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/framing/ModelMethod.h Fri Sep 28 02:27:03 2007
@@ -36,7 +36,7 @@
virtual void encode(Buffer& buffer) const { header.encode(buffer); }
virtual void decode(Buffer& buffer, uint32_t size=0) { header.decode(buffer, size); }
virtual uint32_t size() const { return header.size(); }
-
+ virtual bool isSync() const { return header.getSync(); }
ExecutionHeader& getHeader() { return header; }
const ExecutionHeader& getHeader() const { return header; }
};