Skip to content

Commit 7a253c4

Browse files
authored
Merge pull request #775 from agmt/headername
[C++] add correct message header type as encoder's member type
2 parents 47226c4 + c458763 commit 7a253c4

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1901,6 +1901,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final
19011901
final String schemaIdType = cppTypeName(ir.headerStructure().schemaIdType());
19021902
final String schemaVersionType = cppTypeName(ir.headerStructure().schemaVersionType());
19031903
final String semanticType = token.encoding().semanticType() == null ? "" : token.encoding().semanticType();
1904+
final String headerType = ir.headerStructure().tokens().get(0).name();
19041905

19051906
return String.format(
19061907
"private:\n" +
@@ -1933,6 +1934,8 @@ private CharSequence generateMessageFlyweightCode(final String className, final
19331934
" std::uint64_t uint_value;\n" +
19341935
" };\n\n" +
19351936

1937+
" using messageHeader = %12$s;\n\n" +
1938+
19361939
"%11$s" +
19371940
" SBE_NODISCARD static SBE_CONSTEXPR %1$s sbeBlockLength() SBE_NOEXCEPT\n" +
19381941
" {\n" +
@@ -1941,7 +1944,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final
19411944

19421945
" SBE_NODISCARD static SBE_CONSTEXPR %1$s sbeBlockAndHeaderLength() SBE_NOEXCEPT\n" +
19431946
" {\n" +
1944-
" return MessageHeader::encodedLength() + sbeBlockLength();\n" +
1947+
" return messageHeader::encodedLength() + sbeBlockLength();\n" +
19451948
" }\n\n" +
19461949

19471950
" SBE_NODISCARD static SBE_CONSTEXPR %3$s sbeTemplateId() SBE_NOEXCEPT\n" +
@@ -1977,7 +1980,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final
19771980
" %10$s &wrapAndApplyHeader(" +
19781981
"char *buffer, const std::uint64_t offset, const std::uint64_t bufferLength)\n" +
19791982
" {\n" +
1980-
" MessageHeader hdr(buffer, offset, bufferLength, sbeSchemaVersion());\n\n" +
1983+
" messageHeader hdr(buffer, offset, bufferLength, sbeSchemaVersion());\n\n" +
19811984

19821985
" hdr\n" +
19831986
" .blockLength(sbeBlockLength())\n" +
@@ -1987,7 +1990,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final
19871990

19881991
" return *this = %10$s(\n" +
19891992
" buffer,\n" +
1990-
" offset + MessageHeader::encodedLength(),\n" +
1993+
" offset + messageHeader::encodedLength(),\n" +
19911994
" bufferLength,\n" +
19921995
" sbeBlockLength(),\n" +
19931996
" sbeSchemaVersion());\n" +
@@ -2065,7 +2068,8 @@ private CharSequence generateMessageFlyweightCode(final String className, final
20652068
generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())),
20662069
semanticType,
20672070
className,
2068-
generateConstructorsAndOperators(className));
2071+
generateConstructorsAndOperators(className),
2072+
formatClassName(headerType));
20692073
}
20702074

20712075
private void generateFields(

0 commit comments

Comments
 (0)