Skip to content

Commit 6cd1a11

Browse files
authored
[C#] Add Offsets and WrapForEncodeAndApplyHeader (#777)
* add field offset * added WrapForEncodeAndApplyHeader method * undo whitespaces * fixed long line checkstyle violation
1 parent 1958f9e commit 6cd1a11

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,17 @@ private CharSequence generateMessageFlyweightCode(final String className, final
10351035
indent + INDENT + INDENT + "_actingVersion = SchemaVersion;\n" +
10361036
indent + INDENT + INDENT + "Limit = offset + _actingBlockLength;\n" +
10371037
indent + INDENT + "}\n\n" +
1038+
indent + INDENT + "public void WrapForEncodeAndApplyHeader(DirectBuffer buffer, int offset, " +
1039+
" MessageHeader headerEncoder)\n" +
1040+
indent + INDENT + "{\n" +
1041+
indent + INDENT + INDENT + "headerEncoder.Wrap(buffer, offset, SchemaVersion);\n" +
1042+
indent + INDENT + INDENT + "headerEncoder.BlockLength = BlockLength;\n" +
1043+
indent + INDENT + INDENT + "headerEncoder.TemplateId = TemplateId;\n" +
1044+
indent + INDENT + INDENT + "headerEncoder.SchemaId = SchemaId;\n" +
1045+
indent + INDENT + INDENT + "headerEncoder.Version = SchemaVersion;\n" +
1046+
indent + INDENT + INDENT + "\n" +
1047+
indent + INDENT + INDENT + "WrapForEncode(buffer, offset + MessageHeader.Size);\n" +
1048+
indent + INDENT + "}\n\n" +
10381049
indent + INDENT + "public void WrapForDecode(DirectBuffer buffer, int offset, " +
10391050
"int actingBlockLength, int actingVersion)\n" +
10401051
indent + INDENT + "{\n" +
@@ -1122,6 +1133,11 @@ private void generateFieldIdMethod(final StringBuilder sb, final Token token, fi
11221133
token.id()));
11231134

11241135
generateSinceActingDeprecated(sb, indent, CSharpUtil.formatPropertyName(token.name()), token);
1136+
1137+
sb.append(String.format("\n" +
1138+
indent + "public const int %sOffset = %d;\n",
1139+
CSharpUtil.formatPropertyName(token.name()),
1140+
token.offset()));
11251141
}
11261142

11271143
private void generateFieldMetaAttributeMethod(final StringBuilder sb, final Token token, final String indent)

0 commit comments

Comments
 (0)