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; } 
 };