diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java index ac20820693..858335be61 100755 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java @@ -1901,6 +1901,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final final String schemaIdType = cppTypeName(ir.headerStructure().schemaIdType()); final String schemaVersionType = cppTypeName(ir.headerStructure().schemaVersionType()); final String semanticType = token.encoding().semanticType() == null ? "" : token.encoding().semanticType(); + final String headerType = ir.headerStructure().tokens().get(0).name(); return String.format( "private:\n" + @@ -1933,6 +1934,8 @@ private CharSequence generateMessageFlyweightCode(final String className, final " std::uint64_t uint_value;\n" + " };\n\n" + + " using messageHeader = %12$s;\n\n" + + "%11$s" + " SBE_NODISCARD static SBE_CONSTEXPR %1$s sbeBlockLength() SBE_NOEXCEPT\n" + " {\n" + @@ -1941,7 +1944,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final " SBE_NODISCARD static SBE_CONSTEXPR %1$s sbeBlockAndHeaderLength() SBE_NOEXCEPT\n" + " {\n" + - " return MessageHeader::encodedLength() + sbeBlockLength();\n" + + " return messageHeader::encodedLength() + sbeBlockLength();\n" + " }\n\n" + " SBE_NODISCARD static SBE_CONSTEXPR %3$s sbeTemplateId() SBE_NOEXCEPT\n" + @@ -1977,7 +1980,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final " %10$s &wrapAndApplyHeader(" + "char *buffer, const std::uint64_t offset, const std::uint64_t bufferLength)\n" + " {\n" + - " MessageHeader hdr(buffer, offset, bufferLength, sbeSchemaVersion());\n\n" + + " messageHeader hdr(buffer, offset, bufferLength, sbeSchemaVersion());\n\n" + " hdr\n" + " .blockLength(sbeBlockLength())\n" + @@ -1987,7 +1990,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final " return *this = %10$s(\n" + " buffer,\n" + - " offset + MessageHeader::encodedLength(),\n" + + " offset + messageHeader::encodedLength(),\n" + " bufferLength,\n" + " sbeBlockLength(),\n" + " sbeSchemaVersion());\n" + @@ -2065,7 +2068,8 @@ private CharSequence generateMessageFlyweightCode(final String className, final generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())), semanticType, className, - generateConstructorsAndOperators(className)); + generateConstructorsAndOperators(className), + formatClassName(headerType)); } private void generateFields(