From ed258b734ee601413fa78d1be114365198c71394 Mon Sep 17 00:00:00 2001 From: glank Date: Wed, 1 Jul 2026 11:34:09 +0200 Subject: [PATCH 1/2] Add file load callback --- simplecpp.cpp | 3 +++ simplecpp.h | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/simplecpp.cpp b/simplecpp.cpp index 4898800f..3e572fc0 100644 --- a/simplecpp.cpp +++ b/simplecpp.cpp @@ -3155,6 +3155,9 @@ std::pair simplecpp::FileDataCache::tryload(FileDat mImpl->mIdMap.emplace(fileId, data); mData.emplace_back(data); + if (mLoadCallback) + mLoadCallback(*data); + return {data, true}; } diff --git a/simplecpp.h b/simplecpp.h index de20ae2e..659bccf9 100644 --- a/simplecpp.h +++ b/simplecpp.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -498,6 +499,8 @@ namespace simplecpp { return mData.cend(); } + using load_callback_type = std::function; + private: struct Impl; std::unique_ptr mImpl; @@ -508,6 +511,7 @@ namespace simplecpp { container_type mData; name_map_type mNameMap; + load_callback_type mLoadCallback; }; /** Converts character literal (including prefix, but not ud-suffix) to long long value. From e3aabd15a7ae38ec9fa0829c6320f84e5aae5a52 Mon Sep 17 00:00:00 2001 From: glank Date: Wed, 1 Jul 2026 11:46:40 +0200 Subject: [PATCH 2/2] Add set_load_callback function --- simplecpp.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/simplecpp.h b/simplecpp.h index 659bccf9..3d6fc526 100644 --- a/simplecpp.h +++ b/simplecpp.h @@ -501,6 +501,10 @@ namespace simplecpp { using load_callback_type = std::function; + void set_load_callback(load_callback_type cb) { + mLoadCallback = std::move(cb); + } + private: struct Impl; std::unique_ptr mImpl;