diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java index c4268cf912..85c6c71280 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java @@ -1035,6 +1035,17 @@ private CharSequence generateMessageFlyweightCode(final String className, final indent + INDENT + INDENT + "_actingVersion = SchemaVersion;\n" + indent + INDENT + INDENT + "Limit = offset + _actingBlockLength;\n" + indent + INDENT + "}\n\n" + + indent + INDENT + "public void WrapForEncodeAndApplyHeader(DirectBuffer buffer, int offset, " + + " MessageHeader headerEncoder)\n" + + indent + INDENT + "{\n" + + indent + INDENT + INDENT + "headerEncoder.Wrap(buffer, offset, SchemaVersion);\n" + + indent + INDENT + INDENT + "headerEncoder.BlockLength = BlockLength;\n" + + indent + INDENT + INDENT + "headerEncoder.TemplateId = TemplateId;\n" + + indent + INDENT + INDENT + "headerEncoder.SchemaId = SchemaId;\n" + + indent + INDENT + INDENT + "headerEncoder.Version = SchemaVersion;\n" + + indent + INDENT + INDENT + "\n" + + indent + INDENT + INDENT + "WrapForEncode(buffer, offset + MessageHeader.Size);\n" + + indent + INDENT + "}\n\n" + indent + INDENT + "public void WrapForDecode(DirectBuffer buffer, int offset, " + "int actingBlockLength, int actingVersion)\n" + indent + INDENT + "{\n" + @@ -1122,6 +1133,11 @@ private void generateFieldIdMethod(final StringBuilder sb, final Token token, fi token.id())); generateSinceActingDeprecated(sb, indent, CSharpUtil.formatPropertyName(token.name()), token); + + sb.append(String.format("\n" + + indent + "public const int %sOffset = %d;\n", + CSharpUtil.formatPropertyName(token.name()), + token.offset())); } private void generateFieldMetaAttributeMethod(final StringBuilder sb, final Token token, final String indent)