diff options
Diffstat (limited to 'cpp/gentools')
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} } |
