void writeHeaderFunctionDeclarations(Writer w, String className, CNode node, String indent) throws IOException {
        w.write(""
                + indent + "const std::string & defName() const override { return CONFIG_DEF_NAME; }\n"
                + indent + "const std::string & defMd5() const override { return CONFIG_DEF_MD5; }\n"
                + indent + "const std::string & defNamespace() const override { return CONFIG_DEF_NAMESPACE; }\n"
                + indent + "void serialize(::config::ConfigDataBuffer & __buffer) const override;\n");
        writeConfigClassFunctionDeclarations(w, "Internal" + className + "Type", node, indent);
    }
\n"
                + " * This class contains the config. DO NOT USE THIS CLASS DIRECTLY. Use the typedeffed\n"
                + " * versions after this class declaration.\n"
                + "
configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java