in activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/CppMarshallingClassesGenerator.java [206:318]
protected void generateFile(PrintWriter out) throws Exception {
generateLicence(out);
out.println("#include \"marshal/" + className + ".hpp\"");
out.println("");
out.println("using namespace apache::activemq::client::marshal;");
out.println("");
out.println("/*");
out.println(" * Marshalling code for Open Wire Format for " + jclass.getSimpleName() + "");
out.println(" *");
out.println(" * NOTE!: This file is autogenerated - do not modify!");
out.println(" * if you need to make a change, please see the Groovy scripts in the");
out.println(" * activemq-core module");
out.println(" */");
out.println("");
out.println("" + className + "::" + className + "()");
out.println("{");
out.println(" // no-op");
out.println("}");
out.println("");
out.println("" + className + "::~" + className + "()");
out.println("{");
out.println(" // no-op");
out.println("}");
out.println("");
if (!isAbstractClass()) {
out.println("");
out.println("");
out.println("IDataStructure* " + className + "::createObject() ");
out.println("{");
out.println(" return new " + jclass.getSimpleName() + "();");
out.println("}");
out.println("");
out.println("char " + className + "::getDataStructureType() ");
out.println("{");
out.println(" return " + jclass.getSimpleName() + ".ID_" + jclass.getSimpleName() + ";");
out.println("}");
}
out.println("");
out.println(" /* ");
out.println(" * Un-marshal an object instance from the data input stream");
out.println(" */ ");
out.println("void " + className + "::unmarshal(ProtocolFormat& wireFormat, Object o, BinaryReader& dataIn, BooleanStream& bs) ");
out.println("{");
out.println(" base.unmarshal(wireFormat, o, dataIn, bs);");
List properties = getProperties();
boolean marshallerAware = isMarshallerAware();
if (!properties.isEmpty() || marshallerAware) {
out.println("");
out.println(" " + jclass.getSimpleName() + "& info = (" + jclass.getSimpleName() + "&) o;");
}
if (marshallerAware) {
out.println("");
out.println(" info.beforeUnmarshall(wireFormat);");
out.println(" ");
}
generateTightUnmarshalBody(out);
if (marshallerAware) {
out.println("");
out.println(" info.afterUnmarshall(wireFormat);");
}
out.println("");
out.println("}");
out.println("");
out.println("");
out.println("/*");
out.println(" * Write the booleans that this object uses to a BooleanStream");
out.println(" */");
out.println("int " + className + "::marshal1(ProtocolFormat& wireFormat, Object& o, BooleanStream& bs) {");
out.println(" " + jclass.getSimpleName() + "& info = (" + jclass.getSimpleName() + "&) o;");
if (marshallerAware) {
out.println("");
out.println(" info.beforeMarshall(wireFormat);");
}
out.println("");
out.println(" int rc = base.marshal1(wireFormat, info, bs);");
int baseSize = generateMarshal1Body(out);
out.println("");
out.println(" return rc + " + baseSize + ";");
out.println("}");
out.println("");
out.println("/* ");
out.println(" * Write a object instance to data output stream");
out.println(" */");
out.println("void " + className + "::marshal2(ProtocolFormat& wireFormat, Object& o, BinaryWriter& dataOut, BooleanStream& bs) {");
out.println(" base.marshal2(wireFormat, o, dataOut, bs);");
if (!properties.isEmpty() || marshallerAware) {
out.println("");
out.println(" " + jclass.getSimpleName() + "& info = (" + jclass.getSimpleName() + "&) o;");
}
generateMarshal2Body(out);
if (marshallerAware) {
out.println("");
out.println(" info.afterMarshall(wireFormat);");
}
out.println("");
out.println("}");
}