Skip to content

Commit 103a480

Browse files
Nikolay Amiantovabbradar
authored andcommitted
[C++] Add EncodingOffset and EncodingLength values
1 parent 0450bf3 commit 103a480

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

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

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1009,6 +1009,15 @@ private CharSequence generatePrimitiveFieldMetaData(final String propertyName, f
10091009
propertyName,
10101010
generateLiteral(primitiveType, token.encoding().applicableMaxValue().toString())));
10111011

1012+
sb.append(String.format(
1013+
"\n" +
1014+
indent + " static SBE_CONSTEXPR const std::size_t %1$sEncodingLength(void)\n" +
1015+
indent + " {\n" +
1016+
indent + " return %2$d;\n" +
1017+
indent + " }\n",
1018+
propertyName,
1019+
token.encoding().primitiveType().size()));
1020+
10121021
return sb;
10131022
}
10141023

@@ -1441,6 +1450,14 @@ private CharSequence generateFields(final String containingClassName, final List
14411450
propertyName,
14421451
(long)signalToken.version()));
14431452

1453+
sb.append(String.format(
1454+
indent + " static SBE_CONSTEXPR const std::size_t %1$sEncodingOffset(void)\n" +
1455+
indent + " {\n" +
1456+
indent + " return %2$d;\n" +
1457+
indent + " }\n\n",
1458+
propertyName,
1459+
encodingToken.offset()));
1460+
14441461
generateFieldMetaAttributeMethod(sb, signalToken, indent);
14451462

14461463
switch (encodingToken.signal())
@@ -1568,6 +1585,14 @@ private CharSequence generateEnumProperty(
15681585
typeName,
15691586
offset,
15701587
formatByteOrderEncoding(token.encoding().byteOrder(), token.encoding().primitiveType())));
1588+
1589+
sb.append(String.format(
1590+
indent + " static SBE_CONSTEXPR const std::size_t %1$sEncodingLength(void)\n" +
1591+
indent + " {\n" +
1592+
indent + " return %2$d;\n" +
1593+
indent + " }\n",
1594+
propertyName,
1595+
token.encoding().primitiveType().size()));
15711596
}
15721597

15731598
return sb;
@@ -1594,11 +1619,20 @@ private static Object generateBitsetProperty(final String propertyName, final To
15941619
indent + " {\n" +
15951620
indent + " m_%2$s.wrap(m_buffer, m_offset + %3$d, m_actingVersion, m_bufferLength);\n" +
15961621
indent + " return m_%2$s;\n" +
1597-
indent + " }\n",
1622+
indent + " }\n\n",
15981623
bitsetName,
15991624
propertyName,
16001625
offset));
16011626

1627+
sb.append(String.format(
1628+
"\n" +
1629+
indent + " static SBE_CONSTEXPR const std::size_t %1$sEncodingLength(void)\n" +
1630+
indent + " {\n" +
1631+
indent + " return %2$d;\n" +
1632+
indent + " }\n",
1633+
propertyName,
1634+
token.encoding().primitiveType().size()));
1635+
16021636
return sb;
16031637
}
16041638

0 commit comments

Comments
 (0)