Redesign Health Monitor C++ API with abstract interfaces#341
Draft
eduard-moskalchuk wants to merge 1 commit into
Draft
Redesign Health Monitor C++ API with abstract interfaces#341eduard-moskalchuk wants to merge 1 commit into
eduard-moskalchuk wants to merge 1 commit into
Conversation
Replace concrete class hierarchy with abstract interface design to decouple user code from the Rust FFI implementation: - Extract pure virtual interfaces: HealthMonitor, HealthMonitorBuilder, DeadlineMonitor, Deadline, HeartbeatMonitor, LogicMonitor - Move FFI-backed implementations into details/ namespace (*Impl classes) - Introduce HealthMonitorBuilder::Create() factory method returning std::unique_ptr<HealthMonitorBuilder> for polymorphic construction - Add GMock-based mock classes (health_monitor_mocks.h) enabling unit testing without the Rust FFI library - Flatten per-monitor subdirectories (deadline/, heartbeat/, logic/) into top-level headers with details/ impl split - Remove obsolete tag.h, thread.h/cpp in favor of common.h Tag class and ThreadParameters struct in builder header - Update example app and integration tests to new API
eduard-moskalchuk
requested a deployment
to
workflow-approval
July 21, 2026 16:29 — with
GitHub Actions
Waiting
eduard-moskalchuk
requested a deployment
to
workflow-approval
July 21, 2026 16:29 — with
GitHub Actions
Waiting
License Check Results🚀 The license check job ran with the Bazel command: bazel run --lockfile_mode=error //:license-checkStatus: Click to expand output |
|
The created documentation from the pull request is available at: docu-html |
pawelrutkaq
requested changes
Jul 22, 2026
Contributor
|
@eduard-moskalchuk this is what i meant (no skip need of allocations and virtual calls in production code) -> https://github.com/qorix-group/inc_lifecycle/pull/12/changes#diff-f3c426bacc8936a54221d843f347b0e592ce56aad4df991e1e514c0caf78cabe You can find me on slack as Pawel Rutka and we can dicuss if this would also fill your needs (i directly used your example, now kind of fast & maybe dirty but shows the idea) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace concrete class hierarchy with abstract interface design to decouple user code from the Rust FFI implementation: