You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by cc...@apache.org on 2006/12/20 23:36:19 UTC

svn commit: r489214 - in /incubator/qpid/trunk/qpid/gentools: ./ src/org/apache/qpid/gentools/ templ.cpp/

Author: cctrieloff
Date: Wed Dec 20 14:36:18 2006
New Revision: 489214

URL: http://svn.apache.org/viewvc?view=rev&rev=489214
Log:

Multi version support part 2.


Modified:
    incubator/qpid/trunk/qpid/gentools/build
    incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java
    incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl
    incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.cpp.tmpl
    incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.h.tmpl
    incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl
    incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerProxy.h.tmpl
    incubator/qpid/trunk/qpid/gentools/templ.cpp/MethodBodyClass.h.tmpl

Modified: incubator/qpid/trunk/qpid/gentools/build
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/build?view=diff&rev=489214&r1=489213&r2=489214
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/build (original)
+++ incubator/qpid/trunk/qpid/gentools/build Wed Dec 20 14:36:18 2006
@@ -10,6 +10,6 @@
 echo "Compiling..."
 javac org/apache/qpid/gentools/*.java
 echo "Done. Try it out..."
-java org/apache/qpid/gentools/Main
+java org.apache.qpid.gentools.Main
 echo "--------- Building gentools completed ----------"
 cd ..

Modified: incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java?view=diff&rev=489214&r1=489213&r2=489214
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java (original)
+++ incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java Wed Dec 20 14:36:18 2006
@@ -712,6 +712,8 @@
 	protected String generateOpsInnerClasses(AmqpModel model, boolean serverFlag, int indentSize, int tabSize)
 		throws AmqpTypeMappingException
 	{
+		
+		String proxyClassName = "AMQP_" + (serverFlag ? "Server" : "Client") + "Proxy";
 		String indent = Utils.createSpaces(indentSize);
 		String tab = Utils.createSpaces(tabSize);
 		StringBuffer sb = new StringBuffer();
@@ -731,7 +733,7 @@
 				sb.append(cr);
 			sb.append(indent + "{" + cr);
 			sb.append(indent + "private:" + cr);
-			sb.append(indent + tab + "ProtocolVersion version;" + cr);
+			sb.append(indent + tab + proxyClassName+ "* parent;" + cr);
             sb.append(cr);
             sb.append(indent + tab + "// Constructors and destructors" + cr);
             sb.append(cr);
@@ -739,9 +741,7 @@
             sb.append(indent + tab + handlerClassName + "() {}" + cr);
 			sb.append(indent + "public:" + cr);
 			sb.append(indent + tab + handlerClassName +
-				"(u_int8_t major, u_int8_t minor) : version(major, minor) {}" + cr);
-			sb.append(indent + tab + handlerClassName +
-					"(ProtocolVersion version) : version(version) {}" + cr);
+				"(" + proxyClassName + "* _parent) {parent = _parent;}" + cr);
 			sb.append(indent + tab + "virtual ~" + handlerClassName + "() {}" + cr);
 			sb.append(cr);
 			sb.append(indent + tab + "// Protocol methods" + cr);
@@ -867,6 +867,7 @@
 		int indentSize, int tabSize)
 		throws AmqpTypeMappingException
 	{
+		String proxyClassName = "AMQP_" + (serverFlag ? "Server" : "Client") + "Proxy";
 		String indent = Utils.createSpaces(indentSize);
 		String tab = Utils.createSpaces(tabSize);
 		StringBuffer sb = new StringBuffer();
@@ -889,15 +890,13 @@
 			sb.append(indent + "{" + cr);
 			sb.append(indent + "private:" + cr);
             sb.append(indent + tab + "OutputHandler* out;" + cr);
-			sb.append(indent + tab + "ProtocolVersion version;" + cr);
+			sb.append(indent + tab + proxyClassName + "* parent;" + cr);
 			sb.append(cr);
 			sb.append(indent + "public:" + cr);
 			sb.append(indent + tab + "// Constructors and destructors" + cr);
 			sb.append(cr);
-			sb.append(indent + tab + className + "(OutputHandler* out, u_int8_t major, u_int8_t minor) : " + cr);
-			sb.append(indent + tab + tab + "out(out), version(major, minor) {}" + cr);
-			sb.append(indent + tab + className + "(OutputHandler* out, ProtocolVersion version) : " + cr);
-			sb.append(indent + tab + tab + "out(out), version(version) {}" + cr);
+			sb.append(indent + tab + className + "(OutputHandler* out, " + proxyClassName + "* _parent) : " + cr);
+			sb.append(indent + tab + tab + "out(out) {parent = _parent;}" + cr);
 			sb.append(indent + tab + "virtual ~" + className + "() {}" + cr);
 			sb.append(cr);
 			sb.append(indent + tab + "// Protocol methods" + cr);
@@ -916,6 +915,7 @@
         String superclassName = "AMQP_" + (serverFlag ? "Server" : "Client") + "Operations";
 		String indent = Utils.createSpaces(indentSize);
 		StringBuffer sb = new StringBuffer(indent + superclassName + "(major, minor)," + cr);
+		sb.append(indent + "version(major, minor)," + cr);
         sb.append(indent + "out(out)");
 		Iterator<String> cItr = model.classMap.keySet().iterator();
 		while (cItr.hasNext())
@@ -923,7 +923,7 @@
 			AmqpClass thisClass = model.classMap.get(cItr.next());
 			String instanceName = parseForReservedWords(Utils.firstLower(thisClass.name), outerClassName);
 			sb.append("," + cr);
-			sb.append(indent + instanceName + "(out, major, minor)");
+			sb.append(indent + instanceName + "(out, this)");
 			if (!cItr.hasNext())
 				sb.append(cr);
 		}
@@ -1072,7 +1072,7 @@
 		String tab = Utils.createSpaces(tabSize);
 		String namespace = version != null ? version.namespace() + "::" : "";
 		StringBuffer sb = new StringBuffer(indent + "out->send( new AMQFrame( channel," + cr);
-		sb.append(indent + tab + "new " + namespace + methodBodyClassName + "( version");
+		sb.append(indent + tab + "new " + namespace + methodBodyClassName + "( parent->getProtocolVersion()");
 		sb.append(generateMethodParameterList(fieldMap, indentSize + (5*tabSize), true, false, true));
 		sb.append(" )));" + cr);	
 		return sb.toString();		
@@ -1432,7 +1432,7 @@
         StringBuffer sb = new StringBuffer();
         if (method.fieldMap.size() > 0)
         {
-            sb.append(indent + thisClass.name + Utils.firstUpper(method.name) + "Body(ProtocolVersion version," + cr);
+            sb.append(indent + thisClass.name + Utils.firstUpper(method.name) + "Body(ProtocolVersion& version," + cr);
             sb.append(generateFieldList(method.fieldMap, version, true, false, 8));
             sb.append(indent + tab + ") :" + cr);
             sb.append(indent + tab + "AMQMethodBody(version)," + cr);

Modified: incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl?view=diff&rev=489214&r1=489213&r2=489214
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl (original)
+++ incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl Wed Dec 20 14:36:18 2006
@@ -38,6 +38,8 @@
 namespace qpid {
 namespace framing {
 
+class AMQP_ClientProxy;
+
 class AMQP_ClientOperations
 {
 protected:
@@ -46,7 +48,7 @@
 
 public:
     AMQP_ClientOperations(u_int8_t major, u_int8_t minor) : version(major, minor) {}
-    AMQP_ClientOperations(ProtocolVersion version) : version(version) {}
+    AMQP_ClientOperations(ProtocolVersion& version) : version(version) {}
     virtual ~AMQP_ClientOperations() {}
 
     inline u_int8_t getMajor() const { return version.getMajor(); }

Modified: incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.cpp.tmpl
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.cpp.tmpl?view=diff&rev=489214&r1=489213&r2=489214
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.cpp.tmpl (original)
+++ incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.cpp.tmpl Wed Dec 20 14:36:18 2006
@@ -37,6 +37,7 @@
 
 AMQP_ClientProxy::AMQP_ClientProxy(OutputHandler* out, u_int8_t major, u_int8_t minor) :
 %{CLIST} ${cpc_constructor_initializer}
+        
 {}
 
 	// Inner class instance get methods

Modified: incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.h.tmpl
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.h.tmpl?view=diff&rev=489214&r1=489213&r2=489214
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.h.tmpl (original)
+++ incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ClientProxy.h.tmpl Wed Dec 20 14:36:18 2006
@@ -39,11 +39,14 @@
 class AMQP_ClientProxy : public AMQP_ClientOperations
 {
 private:
+    
+    ProtocolVersion version;
     OutputHandler* out;
 %{CLIST} ${cph_handler_pointer_defn}
 
 public:
     AMQP_ClientProxy(OutputHandler* out, u_int8_t major, u_int8_t minor);
+    ProtocolVersion& getProtocolVersion() {return version;}
     virtual ~AMQP_ClientProxy() {}
 
 	// Get methods for handlers

Modified: incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl?view=diff&rev=489214&r1=489213&r2=489214
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl (original)
+++ incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl Wed Dec 20 14:36:18 2006
@@ -38,6 +38,9 @@
 namespace qpid {
 namespace framing {
 
+class AMQP_ServerProxy;
+class AMQP_ClientProxy;
+
 class AMQP_ServerOperations
 {
 protected:
@@ -46,7 +49,7 @@
 
 public:
     AMQP_ServerOperations(u_int8_t major, u_int8_t minor) : version(major, minor) {}
-    AMQP_ServerOperations(ProtocolVersion version) : version(version) {}
+    AMQP_ServerOperations(ProtocolVersion& version) : version(version) {}
     virtual ~AMQP_ServerOperations() {}
 
     inline u_int8_t getMajor() const { return version.getMajor(); }

Modified: incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerProxy.h.tmpl
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerProxy.h.tmpl?view=diff&rev=489214&r1=489213&r2=489214
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerProxy.h.tmpl (original)
+++ incubator/qpid/trunk/qpid/gentools/templ.cpp/AMQP_ServerProxy.h.tmpl Wed Dec 20 14:36:18 2006
@@ -39,11 +39,13 @@
 class AMQP_ServerProxy : public AMQP_ServerOperations
 {
 private:
+    ProtocolVersion version;
     OutputHandler* out;
 %{CLIST} ${sph_handler_pointer_defn}
 
 public:
     AMQP_ServerProxy(OutputHandler* out, u_int8_t major, u_int8_t minor);
+    ProtocolVersion& getProtocolVersion() {return version;}
     virtual ~AMQP_ServerProxy() {}
 
 	// Get methods for handlers

Modified: incubator/qpid/trunk/qpid/gentools/templ.cpp/MethodBodyClass.h.tmpl
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/templ.cpp/MethodBodyClass.h.tmpl?view=diff&rev=489214&r1=489213&r2=489214
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/templ.cpp/MethodBodyClass.h.tmpl (original)
+++ incubator/qpid/trunk/qpid/gentools/templ.cpp/MethodBodyClass.h.tmpl Wed Dec 20 14:36:18 2006
@@ -58,7 +58,7 @@
 ${mb_constructor_with_initializers}
 
     inline ${CLASS}${METHOD}Body(u_int8_t major, u_int8_t minor): AMQMethodBody(major, minor) {}
-    inline ${CLASS}${METHOD}Body(ProtocolVersion version): AMQMethodBody(version) {}
+    inline ${CLASS}${METHOD}Body(ProtocolVersion& version): AMQMethodBody(version) {}
     virtual ~${CLASS}${METHOD}Body() {}
     
     // Attribute get methods