Skip to content

Commit 283ab93

Browse files
authored
Merge pull request #630 from denizevrenci/simplify_cpp_generator
Simplify Cpp Generator & Modernize OTF Encoding constructors
2 parents 5e27967 + 02f808b commit 283ab93

File tree

3 files changed

+21
-60
lines changed

3 files changed

+21
-60
lines changed

sbe-tool/src/main/cpp/otf/Encoding.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -343,14 +343,14 @@ class Encoding
343343
m_presence(presence),
344344
m_primitiveType(type),
345345
m_byteOrder(byteOrder),
346-
m_minValue(minValue),
347-
m_maxValue(maxValue),
348-
m_nullValue(nullValue),
349-
m_constValue(constValue),
350-
m_characterEncoding(characterEncoding),
351-
m_epoch(epoch),
352-
m_timeUnit(timeUnit),
353-
m_semanticType(semanticType)
346+
m_minValue(std::move(minValue)),
347+
m_maxValue(std::move(maxValue)),
348+
m_nullValue(std::move(nullValue)),
349+
m_constValue(std::move(constValue)),
350+
m_characterEncoding(std::move(characterEncoding)),
351+
m_epoch(std::move(epoch)),
352+
m_timeUnit(std::move(timeUnit)),
353+
m_semanticType(std::move(semanticType))
354354
{
355355
}
356356

sbe-tool/src/main/cpp/otf/Token.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@ class Token
8686
m_encodedLength(encodedLength),
8787
m_componentTokenCount(componentTokenCount),
8888
m_signal(signal),
89-
m_name(name),
90-
m_description(description),
91-
m_encoding(encoding)
89+
m_name(std::move(name)),
90+
m_description(std::move(description)),
91+
m_encoding(std::move(encoding))
9292
{
9393
}
9494

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

Lines changed: 10 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1374,9 +1374,9 @@ private CharSequence generateFixedFlyweightCode(final String className, final in
13741374

13751375
return String.format(
13761376
"private:\n" +
1377-
" char *m_buffer;\n" +
1377+
" char *m_buffer = nullptr;\n" +
13781378
" std::uint64_t m_bufferLength;\n" +
1379-
" std::uint64_t m_offset;\n" +
1379+
" std::uint64_t m_offset = 0;\n" +
13801380
" std::uint64_t m_actingVersion;\n\n" +
13811381
" inline void reset(char *buffer, const std::uint64_t offset, const std::uint64_t bufferLength," +
13821382
" const std::uint64_t actingVersion)\n" +
@@ -1391,39 +1391,11 @@ private CharSequence generateFixedFlyweightCode(final String className, final in
13911391
" m_actingVersion = actingVersion;\n" +
13921392
" }\n\n" +
13931393
"public:\n" +
1394-
" %1$s() : m_buffer(nullptr), m_offset(0) {}\n\n" +
1394+
" %1$s() = default;\n\n" +
13951395
" %1$s(char *buffer, const std::uint64_t bufferLength, const std::uint64_t actingVersion)\n" +
13961396
" {\n" +
13971397
" reset(buffer, 0, bufferLength, actingVersion);\n" +
13981398
" }\n\n" +
1399-
" %1$s(const %1$s& codec) :\n" +
1400-
" m_buffer(codec.m_buffer),\n" +
1401-
" m_bufferLength(codec.m_bufferLength),\n" +
1402-
" m_offset(codec.m_offset),\n" +
1403-
" m_actingVersion(codec.m_actingVersion){}\n\n" +
1404-
"#if __cplusplus >= 201103L\n" +
1405-
" %1$s(%1$s&& codec) :\n" +
1406-
" m_buffer(codec.m_buffer),\n" +
1407-
" m_bufferLength(codec.m_bufferLength),\n" +
1408-
" m_offset(codec.m_offset),\n" +
1409-
" m_actingVersion(codec.m_actingVersion){}\n\n" +
1410-
" %1$s& operator=(%1$s&& codec) SBE_NOEXCEPT\n" +
1411-
" {\n" +
1412-
" m_buffer = codec.m_buffer;\n" +
1413-
" m_bufferLength = codec.m_bufferLength;\n" +
1414-
" m_offset = codec.m_offset;\n" +
1415-
" m_actingVersion = codec.m_actingVersion;\n" +
1416-
" return *this;\n" +
1417-
" }\n\n" +
1418-
"#endif\n\n" +
1419-
" %1$s& operator=(const %1$s& codec) SBE_NOEXCEPT\n" +
1420-
" {\n" +
1421-
" m_buffer = codec.m_buffer;\n" +
1422-
" m_bufferLength = codec.m_bufferLength;\n" +
1423-
" m_offset = codec.m_offset;\n" +
1424-
" m_actingVersion = codec.m_actingVersion;\n" +
1425-
" return *this;\n" +
1426-
" }\n\n" +
14271399
" %1$s &wrap(char *buffer, const std::uint64_t offset, const std::uint64_t actingVersion," +
14281400
" const std::uint64_t bufferLength)\n" +
14291401
" {\n" +
@@ -1469,7 +1441,7 @@ private CharSequence generateFixedFlyweightCode(final String className, final in
14691441
private static CharSequence generateConstructorsAndOperators(final String className)
14701442
{
14711443
return String.format(
1472-
" %1$s() : m_buffer(nullptr), m_bufferLength(0), m_offset(0) {}\n\n" +
1444+
" %1$s() = default;\n\n" +
14731445
" %1$s(char *buffer, const std::uint64_t bufferLength)\n" +
14741446
" {\n" +
14751447
" reset(buffer, 0, bufferLength, sbeBlockLength(), sbeSchemaVersion());\n" +
@@ -1479,22 +1451,11 @@ private static CharSequence generateConstructorsAndOperators(final String classN
14791451
" {\n" +
14801452
" reset(buffer, 0, bufferLength, actingBlockLength, actingVersion);\n" +
14811453
" }\n\n" +
1482-
" %1$s(const %1$s& codec)\n" +
1483-
" {\n" +
1484-
" reset(codec);\n" +
1485-
" }\n\n" +
1486-
"#if __cplusplus >= 201103L\n" +
1487-
" %1$s(%1$s&& codec)\n" +
1488-
" {\n" +
1489-
" reset(codec);\n" +
1490-
" }\n\n" +
1491-
" %1$s& operator=(%1$s&& codec)\n" +
1454+
" %1$s(const %1$s& codec) SBE_NOEXCEPT\n" +
14921455
" {\n" +
14931456
" reset(codec);\n" +
1494-
" return *this;\n" +
14951457
" }\n\n" +
1496-
"#endif\n\n" +
1497-
" %1$s& operator=(const %1$s& codec)\n" +
1458+
" %1$s& operator=(const %1$s& codec) SBE_NOEXCEPT\n" +
14981459
" {\n" +
14991460
" reset(codec);\n" +
15001461
" return *this;\n" +
@@ -1512,10 +1473,10 @@ private CharSequence generateMessageFlyweightCode(final String className, final
15121473

15131474
return String.format(
15141475
"private:\n" +
1515-
" char *m_buffer;\n" +
1516-
" std::uint64_t m_bufferLength;\n" +
1476+
" char *m_buffer = nullptr;\n" +
1477+
" std::uint64_t m_bufferLength = 0;\n" +
15171478
" std::uint64_t *m_positionPtr;\n" +
1518-
" std::uint64_t m_offset;\n" +
1479+
" std::uint64_t m_offset = 0;\n" +
15191480
" std::uint64_t m_position;\n" +
15201481
" std::uint64_t m_actingBlockLength;\n" +
15211482
" std::uint64_t m_actingVersion;\n\n" +
@@ -1531,7 +1492,7 @@ private CharSequence generateMessageFlyweightCode(final String className, final
15311492
" m_positionPtr = &m_position;\n" +
15321493
" sbePosition(offset + m_actingBlockLength);\n" +
15331494
" }\n\n" +
1534-
" inline void reset(const %10$s& codec)\n" +
1495+
" inline void reset(const %10$s& codec) SBE_NOEXCEPT\n" +
15351496
" {\n" +
15361497
" m_buffer = codec.m_buffer;\n" +
15371498
" m_offset = codec.m_offset;\n" +

0 commit comments

Comments
 (0)