Skip to content

Commit

Permalink
[C++] Code tidy up and address Issue #970.
Browse files Browse the repository at this point in the history
  • Loading branch information
mjpt777 committed Feb 16, 2024
1 parent a4430f2 commit 3e22c2e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 22 deletions.
29 changes: 19 additions & 10 deletions sbe-tool/src/main/cpp/otf/IrDecoder.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,7 @@ namespace sbe { namespace otf {
class IrDecoder
{
public:
IrDecoder()
{
}
IrDecoder() = default;

int decode(char *irBuffer, std::uint64_t length)
{
Expand Down Expand Up @@ -106,11 +104,13 @@ class IrDecoder
std::shared_ptr<std::vector<Token>> result;

std::for_each(m_messages.begin(), m_messages.end(),
[&](std::shared_ptr<std::vector<Token>> tokens)
[&](const std::shared_ptr<std::vector<Token>> &tokens)
{
Token &token = tokens->at(0);

if (token.signal() == Signal::BEGIN_MESSAGE && token.fieldId() == id && token.tokenVersion() == version)
if (token.signal() == Signal::BEGIN_MESSAGE &&
token.fieldId() == id &&
token.tokenVersion() <= version)
{
result = tokens;
}
Expand All @@ -124,7 +124,7 @@ class IrDecoder
std::shared_ptr<std::vector<Token>> result;

std::for_each(m_messages.begin(), m_messages.end(),
[&](std::shared_ptr<std::vector<Token>> tokens)
[&](const std::shared_ptr<std::vector<Token>> &tokens)
{
Token &token = tokens->at(0);

Expand Down Expand Up @@ -191,9 +191,14 @@ class IrDecoder

FrameCodec frame;
std::uint64_t offset = 0;
char tmp[256];
char tmp[256] = {};

frame.wrapForDecode(m_buffer.get(), offset, frame.sbeBlockLength(), frame.sbeSchemaVersion(), m_length);
frame.wrapForDecode(
m_buffer.get(),
offset,
FrameCodec::sbeBlockLength(),
FrameCodec::sbeSchemaVersion(),
m_length);

frame.getPackageName(tmp, sizeof(tmp));

Expand Down Expand Up @@ -229,7 +234,11 @@ class IrDecoder

TokenCodec tokenCodec;
tokenCodec.wrapForDecode(
m_buffer.get(), offset, tokenCodec.sbeBlockLength(), tokenCodec.sbeSchemaVersion(), m_length);
m_buffer.get(),
offset,
TokenCodec::sbeBlockLength(),
TokenCodec::sbeSchemaVersion(),
m_length);

auto signal = static_cast<Signal>(tokenCodec.signal());
auto type = static_cast<PrimitiveType>(tokenCodec.primitiveType());
Expand All @@ -240,7 +249,7 @@ class IrDecoder
std::int32_t id = tokenCodec.fieldId();
std::int32_t version = tokenCodec.tokenVersion();
std::int32_t componentTokenCount = tokenCodec.componentTokenCount();
char tmpBuffer[256];
char tmpBuffer[256] = {};
std::uint64_t tmpLen = 0;

tmpLen = tokenCodec.getName(tmpBuffer, sizeof(tmpBuffer));
Expand Down
21 changes: 9 additions & 12 deletions sbe-tool/src/main/cpp/otf/OtfMessageDecoder.h
Original file line number Diff line number Diff line change
Expand Up @@ -157,14 +157,13 @@ static void decodeComposite(
std::uint64_t actingVersion,
TokenListener &listener)
{
listener.onBeginComposite(fieldToken, *tokens.get(), tokenIndex, toIndex);
listener.onBeginComposite(fieldToken, *tokens, tokenIndex, toIndex);

for (size_t i = tokenIndex + 1; i < toIndex;)
{
Token &token = tokens->at(i);
const size_t nextFieldIndex = i + token.componentTokenCount();

const std::size_t offset = static_cast<std::size_t>(token.offset());
const auto offset = static_cast<std::size_t>(token.offset());

switch (token.signal())
{
Expand All @@ -183,12 +182,12 @@ static void decodeComposite(

case Signal::BEGIN_ENUM:
listener.onEnum(
fieldToken, buffer + bufferIndex + offset, *tokens.get(), i, nextFieldIndex - 1, actingVersion);
fieldToken, buffer + bufferIndex + offset, *tokens, i, nextFieldIndex - 1, actingVersion);
break;

case Signal::BEGIN_SET:
listener.onBitSet(
fieldToken, buffer + bufferIndex + offset, *tokens.get(), i, nextFieldIndex - 1, actingVersion);
fieldToken, buffer + bufferIndex + offset, *tokens, i, nextFieldIndex - 1, actingVersion);
break;

case Signal::ENCODING:
Expand All @@ -202,7 +201,7 @@ static void decodeComposite(
i += token.componentTokenCount();
}

listener.onEndComposite(fieldToken, *tokens.get(), tokenIndex, toIndex);
listener.onEndComposite(fieldToken, *tokens, tokenIndex, toIndex);
}

template<typename TokenListener>
Expand Down Expand Up @@ -246,13 +245,11 @@ static size_t decodeFields(
break;

case Signal::BEGIN_ENUM:
listener.onEnum(
fieldToken, buffer + offset, *tokens.get(), tokenIndex, nextFieldIndex - 2, actingVersion);
listener.onEnum(fieldToken, buffer + offset, *tokens, tokenIndex, nextFieldIndex - 2, actingVersion);
break;

case Signal::BEGIN_SET:
listener.onBitSet(
fieldToken, buffer + offset, *tokens.get(), tokenIndex, nextFieldIndex - 2, actingVersion);
listener.onBitSet(fieldToken, buffer + offset, *tokens, tokenIndex, nextFieldIndex - 2, actingVersion);
break;

case Signal::ENCODING:
Expand Down Expand Up @@ -342,7 +339,7 @@ std::pair<size_t, size_t> decodeGroups(
const bool isPresent = token.tokenVersion() <= static_cast<std::int32_t>(actingVersion);

Token &dimensionsTypeComposite = tokens->at(tokenIndex + 1);
std::size_t dimensionsLength = static_cast<std::size_t>(dimensionsTypeComposite.encodedLength());
auto dimensionsLength = static_cast<std::size_t>(dimensionsTypeComposite.encodedLength());

if ((bufferIndex + dimensionsLength) > length)
{
Expand Down Expand Up @@ -391,7 +388,7 @@ std::pair<size_t, size_t> decodeGroups(
tokenIndex += token.componentTokenCount();
}

return std::pair<size_t, size_t>(bufferIndex, tokenIndex);
return { bufferIndex, tokenIndex };
}

/**
Expand Down

0 comments on commit 3e22c2e

Please sign in to comment.