summaryrefslogtreecommitdiffstats
path: root/configgen
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-03-01 13:42:02 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-03-03 15:33:09 +0100
commit2260c609d1cf61c5dc125a8b90534079a6c27f66 (patch)
treed3d15ffba8a51648ff28320b1278f902609f8d08 /configgen
parent4aba3f28bba5b92697ddc8a5dd59bca4f40e63e8 (diff)
Generate destructors.
Diffstat (limited to 'configgen')
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java b/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java
index c415b8732a9..c2bfb24a71e 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java
@@ -346,7 +346,7 @@ public class CppClassBuilder implements ClassBuilder {
);
}
- void writeClassCopyConstructorDefinition(Writer w, String parent, String className, CNode node) throws IOException {
+ void writeClassCopyConstructorDefinition(Writer w, String parent, CNode node) throws IOException {
String typeName = getTypeName(node, false);
// Write empty constructor
w.write(parent + typeName + "(const " + typeName + " & __rhs)\n");
@@ -359,12 +359,15 @@ public class CppClassBuilder implements ClassBuilder {
);
}
+ void writeDestructor(Writer w, String parent, String className) throws IOException {
+ w.write(parent + "~" + className + "() { } \n");
+ }
+
void writeCommonFunctionDeclarations(Writer w, String className, CNode node, String indent) throws IOException {
- w.write(""
- + indent + className + "();\n");
+ w.write("" + indent + className + "();\n");
writeClassCopyConstructorDeclaration(w, className, node, indent);
- w.write(""
- + "\n"
+ w.write("" + indent + "~" + className + "();\n");
+ w.write("\n"
+ indent + "bool operator==(const " + className + "& __rhs) const;\n"
+ indent + "bool operator!=(const " + className + "& __rhs) const;\n"
+ "\n"
@@ -711,7 +714,8 @@ public class CppClassBuilder implements ClassBuilder {
if (root)
writeConfigClassCopyConstructorDefinition(w, parent, typeName, node);
else
- writeClassCopyConstructorDefinition(w, parent, typeName, node);
+ writeClassCopyConstructorDefinition(w, parent, node);
+ writeDestructor(w, parent, typeName);
// Write parsing constructor
String indent = " ";