-
Notifications
You must be signed in to change notification settings - Fork 559
Implement fan out request in the new mail API #2100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2100 +/- ##
==========================================
+ Coverage 72.72% 72.82% +0.09%
==========================================
Files 634 635 +1
Lines 30365 30477 +112
Branches 3279 3285 +6
==========================================
+ Hits 22084 22194 +110
- Misses 6380 6385 +5
+ Partials 1901 1898 -3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements a fan-out request feature for the CAF (C++ Actor Framework) mail API, allowing actors to send concurrent requests to multiple destinations and collect their responses according to different selection policies (select_all or select_any).
- Adds
event_based_fan_out_response_handle
class to manage responses from multiple actors - Implements
fan_out_request()
method in the mail API with configurable selection policies - Provides comprehensive test coverage for both result-returning and void functions with different policies
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
libcaf_core/caf/fwd.hpp | Adds forward declaration for the new fan-out response handle template |
libcaf_core/caf/event_based_response_handle.hpp | Removes unused helper structs that were likely moved elsewhere |
libcaf_core/caf/event_based_mail.test.cpp | Adds extensive test cases for fan-out requests with different policies and scenarios |
libcaf_core/caf/event_based_mail.hpp | Implements the fan_out_request() method with policy-based response aggregation |
libcaf_core/caf/event_based_fan_out_response_handle.hpp | Complete implementation of the fan-out response handle with policy support |
libcaf_core/caf/abstract_scheduled_actor.hpp | Adds friend declaration for the new fan-out response handle class |
Comments suppressed due to low confidence (5)
libcaf_core/caf/event_based_fan_out_response_handle.hpp:27
- The namespace 'detail1' is unclear and inconsistent with the existing 'detail' namespace used elsewhere in the codebase. Consider using 'detail::fan_out' or merging with the existing 'detail' namespace.
namespace caf::detail1 {
libcaf_core/caf/event_based_fan_out_response_handle.hpp:108
- The struct name 'select_select_all_helper' has a redundant 'select' prefix. Consider renaming to 'select_all_helper_selector' or similar.
struct select_select_all_helper;
libcaf_core/caf/event_based_mail.test.cpp:689
- Large block of commented-out test code (lines 689-772) should either be implemented, removed, or converted to a proper TODO with explanation of why it's disabled.
// TEST("send fan_out_request messages that return a composite result") {
97b8acb
to
a5af0ea
Compare
WIP