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/CppGenerator.java13
-rw-r--r--cpp/gentools/src/org/apache/qpid/gentools/Main.java4
-rw-r--r--cpp/gentools/templ.cpp/AMQP_MethodVersionMap.h.tmpl57
-rw-r--r--cpp/gentools/templ.cpp/MethodBodyClass.h.tmpl24
4 files changed, 21 insertions, 77 deletions
diff --git a/cpp/gentools/src/org/apache/qpid/gentools/CppGenerator.java b/cpp/gentools/src/org/apache/qpid/gentools/CppGenerator.java
index 80ce266f39..114e3308d3 100644
--- a/cpp/gentools/src/org/apache/qpid/gentools/CppGenerator.java
+++ b/cpp/gentools/src/org/apache/qpid/gentools/CppGenerator.java
@@ -1164,7 +1164,7 @@ public class CppGenerator extends Generator
{
String[] fieldDomainPair = ordinalFieldMap.get(thisOrdinal);
sb.append(indent + "" + setRef(fieldDomainPair[FIELD_CODE_TYPE]) + " get" +
- Utils.firstUpper(fieldDomainPair[FIELD_NAME]) + "() { return " +
+ Utils.firstUpper(fieldDomainPair[FIELD_NAME]) + "() const { return " +
fieldDomainPair[FIELD_NAME] + "; }" + cr);
}
return sb.toString();
@@ -1443,12 +1443,13 @@ public class CppGenerator extends Generator
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," + cr);
sb.append(generateFieldList(method.fieldMap, version, true, false, 8));
- sb.append(indent + tab + ") : " + baseClass(method, version) + "(version");
- sb.append(")");
- if (method.fieldMap.size() > 0)
- sb.append(", \n" + generateFieldList(method.fieldMap, version, false, true, 8));
+ sb.append(indent + tab + ")");
+ if (method.fieldMap.size() > 0) {
+ sb.append(" : ");
+ sb.append(generateFieldList(method.fieldMap, version, false, true, 8));
+ }
sb.append(indent + "{ }\n");
}
return sb.toString();
diff --git a/cpp/gentools/src/org/apache/qpid/gentools/Main.java b/cpp/gentools/src/org/apache/qpid/gentools/Main.java
index 74e1ce1ab9..a25ddd103c 100644
--- a/cpp/gentools/src/org/apache/qpid/gentools/Main.java
+++ b/cpp/gentools/src/org/apache/qpid/gentools/Main.java
@@ -234,9 +234,7 @@ public class Main
new File(tmplDir + Utils.fileSeparator + "AMQP_ServerOperations.h.tmpl"),
new File(tmplDir + Utils.fileSeparator + "AMQP_ClientOperations.h.tmpl"),
new File(tmplDir + Utils.fileSeparator + "AMQP_Constants.h.tmpl"),
- new File(tmplDir + Utils.fileSeparator + "AMQP_MethodVersionMap.h.tmpl"),
- new File(tmplDir + Utils.fileSeparator + "AMQP_MethodVersionMap.cpp.tmpl"),
- new File(tmplDir + Utils.fileSeparator + "AMQP_HighestVersion.h.tmpl")
+ new File(tmplDir + Utils.fileSeparator + "AMQP_HighestVersion.h.tmpl")
};
methodTemplateFiles = new File[]
{
diff --git a/cpp/gentools/templ.cpp/AMQP_MethodVersionMap.h.tmpl b/cpp/gentools/templ.cpp/AMQP_MethodVersionMap.h.tmpl
deleted file mode 100644
index 83c3065a68..0000000000
--- a/cpp/gentools/templ.cpp/AMQP_MethodVersionMap.h.tmpl
+++ /dev/null
@@ -1,57 +0,0 @@
-&{AMQP_MethodVersionMap.h}
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-/*
- * This file is auto-generated by ${GENERATOR} - do not modify.
- * Supported AMQP versions:
-%{VLIST} * ${major}-${minor}
- */
-
-#ifndef qpid_framing_AMQP_MethodVersionMap__
-#define qpid_framing_AMQP_MethodVersionMap__
-
-#include <map>
-#include "qpid/framing/AMQMethodBody.h"
-
-%{MLIST} ${mc_method_body_include}
-
-namespace qpid
-{
-namespace framing
-{
-
-template <class T> AMQMethodBody* createMethodBodyFn(u_int8_t major, u_int8_t minor) { return new T(ProtocolVersion(major, minor)); }
-typedef AMQMethodBody* (*fnPtr)(u_int8_t, u_int8_t);
-
-class AMQP_MethodVersionMap: public std::map<u_int64_t, fnPtr>
-{
-protected:
- u_int64_t createMapKey(u_int16_t classId, u_int16_t methodId, u_int8_t major, u_int8_t minor);
-public:
- AMQP_MethodVersionMap();
- AMQMethodBody* createMethodBody(u_int16_t classId, u_int16_t methodId, u_int8_t major, u_int8_t minor);
-};
-
-} /* namespace framing */
-} /* namespace qpid */
-
-#endif
diff --git a/cpp/gentools/templ.cpp/MethodBodyClass.h.tmpl b/cpp/gentools/templ.cpp/MethodBodyClass.h.tmpl
index 605b09ac94..5ffd2f2b4d 100644
--- a/cpp/gentools/templ.cpp/MethodBodyClass.h.tmpl
+++ b/cpp/gentools/templ.cpp/MethodBodyClass.h.tmpl
@@ -38,6 +38,9 @@
#include "qpid/framing/FieldTable.h"
#include "qpid/framing/FramingContent.h"
#include "qpid/framing/SequenceNumberSet.h"
+#include "qpid/framing/AMQP_ServerOperations.h"
+#include "qpid/framing/MethodBodyConstVisitor.h"
+
namespace qpid
{
@@ -45,7 +48,7 @@ namespace framing
{
${version_namespace_start}
-class ${CLASS}${METHOD}Body : public ${mb_base_class}
+class ${CLASS}${METHOD}Body : public AMQMethodBody
{
// Method field declarations
@@ -57,13 +60,11 @@ public:
static const ClassId CLASS_ID= ${CLASS_ID_INIT};
static const MethodId METHOD_ID = ${METHOD_ID_INIT};
- typedef boost::shared_ptr<${CLASS}${METHOD}Body> shared_ptr;
-
- // Constructors and destructors
+ // Constructors and destructors
${mb_constructor_with_initializers}
- ${CLASS}${METHOD}Body(ProtocolVersion version=ProtocolVersion() ): ${mb_base_class}(version) {}
+ ${CLASS}${METHOD}Body(ProtocolVersion=ProtocolVersion()) {}
virtual ~${CLASS}${METHOD}Body() {}
// Attribute get methods
@@ -71,10 +72,11 @@ ${mb_constructor_with_initializers}
%{FLIST} ${mb_field_get_method}
// Helper methods
-
- inline void print(std::ostream& out) const
+ using AMQMethodBody::accept;
+ void accept(MethodBodyConstVisitor& v) const { v.visit(*this); }
+
+ void print(std::ostream& out) const
{
- printPrefix(out);
out << "${CLASS}${METHOD}: ";
%{FLIST} ${mb_field_print}
}
@@ -84,17 +86,17 @@ ${mb_constructor_with_initializers}
u_int32_t size() const
{
- u_int32_t sz = baseSize();
+ u_int32_t sz = 0;
%{FLIST} ${mb_body_size}
return sz;
}
- void encodeContent(Buffer& ${mb_buffer_param}) const
+ void encode(Buffer& ${mb_buffer_param}) const
{
%{FLIST} ${mb_encode}
}
- inline void decodeContent(Buffer& ${mb_buffer_param})
+ inline void decode(Buffer& ${mb_buffer_param}, uint32_t=0)
{
%{FLIST} ${mb_decode}
}