summaryrefslogtreecommitdiff
path: root/cpp/gentools
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/gentools')
-rw-r--r--cpp/gentools/src/org/apache/qpid/gentools/AmqpMethod.java9
-rw-r--r--cpp/gentools/src/org/apache/qpid/gentools/CppGenerator.java37
-rw-r--r--cpp/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl2
-rw-r--r--cpp/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl2
4 files changed, 10 insertions, 40 deletions
diff --git a/cpp/gentools/src/org/apache/qpid/gentools/AmqpMethod.java b/cpp/gentools/src/org/apache/qpid/gentools/AmqpMethod.java
index 66c19532c6..f00bb5fef8 100644
--- a/cpp/gentools/src/org/apache/qpid/gentools/AmqpMethod.java
+++ b/cpp/gentools/src/org/apache/qpid/gentools/AmqpMethod.java
@@ -35,7 +35,6 @@ public class AmqpMethod implements Printable, NodeAware, VersionConsistencyCheck
public AmqpOrdinalVersionMap indexMap;
public AmqpFlagMap clientMethodFlagMap; // Method called on client (<chassis name="server"> in XML)
public AmqpFlagMap serverMethodFlagMap; // Method called on server (<chassis name="client"> in XML)
- public AmqpFlagMap isResponseFlagMap;
public boolean content;
public AmqpMethod(String name, LanguageConverter converter)
@@ -47,14 +46,8 @@ public class AmqpMethod implements Printable, NodeAware, VersionConsistencyCheck
indexMap = new AmqpOrdinalVersionMap();
clientMethodFlagMap = new AmqpFlagMap();
serverMethodFlagMap = new AmqpFlagMap();
- isResponseFlagMap = new AmqpFlagMap();
}
- public boolean isResponse(AmqpVersion version) {
- if (!CppGenerator.USE_RELIABLE_FRAMING) return false;
- return (version == null) ? isResponseFlagMap.isSet() : isResponseFlagMap.isSet(version);
- }
-
/** Check if this method is named as a response by any other method in the class. */
public void checkForResponse(Element methodElement, AmqpVersion version) {
Element clazz = (Element)methodElement.getParentNode();
@@ -66,7 +59,6 @@ public class AmqpMethod implements Printable, NodeAware, VersionConsistencyCheck
for (int j =0; j<responses.getLength(); ++j) {
Element response = (Element)responses.item(j);
if (methodName.equals(response.getAttribute("name"))) {
- isResponseFlagMap.setFlagForVersion(true, version);
}
}
}
@@ -139,7 +131,6 @@ public class AmqpMethod implements Printable, NodeAware, VersionConsistencyCheck
{
clientMethodFlagMap.removeVersion(version);
serverMethodFlagMap.removeVersion(version);
- isResponseFlagMap.removeVersion(version);
indexMap.removeVersion(version);
fieldMap.removeVersion(version);
versionSet.remove(version);
diff --git a/cpp/gentools/src/org/apache/qpid/gentools/CppGenerator.java b/cpp/gentools/src/org/apache/qpid/gentools/CppGenerator.java
index 4fbda4e0fb..80ce266f39 100644
--- a/cpp/gentools/src/org/apache/qpid/gentools/CppGenerator.java
+++ b/cpp/gentools/src/org/apache/qpid/gentools/CppGenerator.java
@@ -29,8 +29,6 @@ import java.util.TreeMap;
public class CppGenerator extends Generator
{
- protected static final boolean USE_RELIABLE_FRAMING = false;
-
protected static final String versionNamespaceStartToken = "${version_namespace_start}";
protected static final String versionNamespaceEndToken = "${version_namespace_end}";
@@ -379,9 +377,7 @@ public class CppGenerator extends Generator
}
private String baseClass(AmqpMethod method, AmqpVersion version) {
- if (!USE_RELIABLE_FRAMING) return "AMQMethodBody";
- String base = method.isResponse(version) ? "AMQResponseBody":"AMQRequestBody";
- return base;
+ return "AMQMethodBody";
}
@Override
@@ -769,7 +765,7 @@ public class CppGenerator extends Generator
for (String thisMethodName : thisClass.methodMap.keySet())
{
AmqpMethod method = thisClass.methodMap.get(thisMethodName);
- String returnType = (abstractMethodFlag || method.isResponse(null))? "void" : "RequestId";
+ String returnType = "void";
boolean clientChassisFlag = method.clientMethodFlagMap.isSet();
boolean serverChassisFlag = method.serverMethodFlagMap.isSet();
if ((serverFlag && serverChassisFlag) || (!serverFlag && clientChassisFlag))
@@ -784,7 +780,7 @@ public class CppGenerator extends Generator
sb.append(indent + "virtual "+returnType+" "+ methodName + "(");
if (abstractMethodFlag && isSpecialCase(thisClass.name, method.name)) {
- sb.append("const MethodContext& context");
+ sb.append("const AMQMethodBody& context");
} else {
sb.append(generateMethodParameterList(thisFieldMap, indentSize + (5*tabSize), false, true, true));
}
@@ -906,7 +902,6 @@ public class CppGenerator extends Generator
sb.append(indent + "{" + cr);
sb.append(indent + "private:" + cr);
sb.append(indent + tab + "ChannelAdapter& channel;" + cr);
- sb.append(indent + tab + "RequestId responseTo;" + cr);
sb.append(cr);
sb.append(indent + "public:" + cr);
sb.append(indent + tab + "// Constructors and destructors" + cr);
@@ -917,7 +912,6 @@ public class CppGenerator extends Generator
sb.append(cr);
sb.append(indent + tab + "static "+className+"& get(" + proxyOuterClassName(serverFlag)+"& proxy) { return proxy.get"+className+"();}\n\n");
sb.append(indent + tab + "// set for response correlation" + cr);
- sb.append(indent + tab + "void setResponseTo(RequestId r) { responseTo = r; }" + cr);
sb.append(cr);
sb.append(indent + tab + "// Protocol methods" + cr);
sb.append(cr);
@@ -1021,16 +1015,10 @@ public class CppGenerator extends Generator
AmqpVersionSet versionSet = overloadededParameterMap.get(thisFieldMap);
if (!first)
sb.append(cr);
- String returnType = method.isResponse(null) ? "void" : "RequestId";
+ String returnType = "void";
sb.append(indent + returnType + " " + outerclassName + "::" + thisClass.name + "::" +
methodName + "(");
sb.append(generateMethodParameterList(thisFieldMap, indentSize + (5*tabSize), false, true, true));
- if (method.isResponse(null)) {
- /*
- if (!thisFieldMap.isEmpty()) sb.append(", ");
- sb.append("RequestId responseTo");
- */
- }
sb.append(")");
if (versionSet.size() != globalVersionSet.size())
sb.append(" // AMQP Version(s) " + versionSet);
@@ -1094,9 +1082,8 @@ public class CppGenerator extends Generator
String tab = Utils.createSpaces(tabSize);
String namespace = version != null ? version.namespace() + "::" : "";
StringBuffer sb = new StringBuffer();
- sb.append(indent+tab+(method.isResponse(version) ? "" : "return ")+"channel.send(make_shared_ptr(new ");
+ sb.append(indent+tab+"channel.send(make_shared_ptr(new ");
sb.append(namespace + methodBodyClassName + "( channel.getVersion()");
- if (method.isResponse(version)) sb.append(", responseTo");
sb.append(generateMethodParameterList(fieldMap, indentSize + (5*tabSize), true, false, true));
sb.append(")));\n");
return sb.toString();
@@ -1454,18 +1441,11 @@ public class CppGenerator extends Generator
String indent = Utils.createSpaces(indentSize);
String tab = Utils.createSpaces(tabSize);
StringBuffer sb = new StringBuffer();
- if (method.fieldMap.size() > 0 || method.isResponse(version))
+ if (method.fieldMap.size() > 0)
{
sb.append(indent + thisClass.name + Utils.firstUpper(method.name) + "Body(ProtocolVersion version," + cr);
- if (method.isResponse(version)) {
- sb.append(indent+tab+"RequestId toRequest");
- if (method.fieldMap.size() >0)
- sb.append(",\n");
- }
sb.append(generateFieldList(method.fieldMap, version, true, false, 8));
sb.append(indent + tab + ") : " + baseClass(method, version) + "(version");
- if (method.isResponse(version))
- sb.append(", 0, toRequest");
sb.append(")");
if (method.fieldMap.size() > 0)
sb.append(", \n" + generateFieldList(method.fieldMap, version, false, true, 8));
@@ -1491,15 +1471,14 @@ public class CppGenerator extends Generator
if (bItr.next()) // This is a server operation
{
boolean fieldMapNotEmptyFlag = method.fieldMap.size() > 0;
- sb.append(indent + "void invoke(AMQP_ServerOperations& target, const MethodContext&"
- + (special ? " context)" : " )") + cr);
+ sb.append(indent + "void invoke(AMQP_ServerOperations& target)\n");
sb.append(indent + "{" + cr);
sb.append(indent + tab + "target.get" + thisClass.name + "Handler()->" +
parseForReservedWords(Utils.firstLower(method.name),
thisClass.name + Utils.firstUpper(method.name) + "Body.invoke()") + "(");
if (special)
{
- sb.append("context");
+ sb.append("*this");
}
else if (fieldMapNotEmptyFlag)
{
diff --git a/cpp/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl b/cpp/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl
index 137d66e90c..a61b2b762d 100644
--- a/cpp/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl
+++ b/cpp/gentools/templ.cpp/AMQP_ClientOperations.h.tmpl
@@ -36,7 +36,7 @@
namespace qpid {
namespace framing {
-class MethodContext;
+class AMQMethodBody;
class AMQP_ClientOperations
{
diff --git a/cpp/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl b/cpp/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl
index 06ef88c84e..09611c8d31 100644
--- a/cpp/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl
+++ b/cpp/gentools/templ.cpp/AMQP_ServerOperations.h.tmpl
@@ -34,7 +34,7 @@
namespace qpid {
namespace framing {
-class MethodContext;
+class AMQMethodBody;
class Invocable
{