From 2c49ef57bbd4d762831d98265f6a76e40009eb0a Mon Sep 17 00:00:00 2001 From: be0hhh Date: Thu, 30 Jul 2026 23:17:11 +0300 Subject: [PATCH] [C++] expose schema version from IrDecoder --- sbe-tool/src/main/cpp/otf/IrDecoder.h | 6 ++++++ sbe-tool/src/test/cpp/VersionedMessageTest.cpp | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/sbe-tool/src/main/cpp/otf/IrDecoder.h b/sbe-tool/src/main/cpp/otf/IrDecoder.h index fb077cb30c..289f5b985e 100644 --- a/sbe-tool/src/main/cpp/otf/IrDecoder.h +++ b/sbe-tool/src/main/cpp/otf/IrDecoder.h @@ -141,6 +141,10 @@ class IrDecoder return m_id; } + int schemaVersion() const { + return m_version; + } + protected: // OS specifics static long long getFileSize(const char *filename) @@ -188,6 +192,7 @@ class IrDecoder std::unique_ptr m_buffer; std::uint64_t m_length = 0; int m_id = 0; + int m_version = 0; int decodeIr() { @@ -221,6 +226,7 @@ class IrDecoder std::uint64_t headerLength = readHeader(offset); m_id = frame.irId(); + m_version = frame.schemaVersion(); offset += headerLength; diff --git a/sbe-tool/src/test/cpp/VersionedMessageTest.cpp b/sbe-tool/src/test/cpp/VersionedMessageTest.cpp index af4a90c442..ceed72059c 100644 --- a/sbe-tool/src/test/cpp/VersionedMessageTest.cpp +++ b/sbe-tool/src/test/cpp/VersionedMessageTest.cpp @@ -16,6 +16,7 @@ #include +#include "otf/IrDecoder.h" #include "versmsg/VersionedMessageV1.h" #include "versmsg/VersionedMessageV2.h" @@ -55,3 +56,12 @@ TEST_F(VersionedMessageTest, shouldV1DecodeV2Message) EXPECT_EQ(m_versionedMessageV1Decoder.decodeLength(), (uint64_t)26); } + +TEST_F(VersionedMessageTest, shouldExposeSchemaVersionFromIr) +{ + IrDecoder irDecoder = {}; + + ASSERT_GE(irDecoder.decode("versioned-message-v2.sbeir"), 0); + EXPECT_EQ(irDecoder.schemaId(), 1); + EXPECT_EQ(irDecoder.schemaVersion(), 2); +}