-
Notifications
You must be signed in to change notification settings - Fork 173
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
feat(util): Add builder class for "chain" delegates #3696
Merged
kodiakhq
merged 12 commits into
acts-project:main
from
paulgessinger:feat/delegate-chain
Oct 9, 2024
Merged
feat(util): Add builder class for "chain" delegates #3696
kodiakhq
merged 12 commits into
acts-project:main
from
paulgessinger:feat/delegate-chain
Oct 9, 2024
Conversation
This file contains 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
Open
andiwand
reviewed
Oct 9, 2024
andiwand
previously approved these changes
Oct 9, 2024
andiwand
approved these changes
Oct 9, 2024
Quality Gate passedIssues Measures |
acts-project-service
added
Fails Athena tests
This PR causes a failure in the Athena tests
Breaks Athena build
This PR breaks the Athena build
labels
Oct 10, 2024
Rosie-Hasan
pushed a commit
to Rosie-Hasan/acts
that referenced
this pull request
Nov 13, 2024
Related to acts-project#3502 --- This pull request introduces several enhancements and new features to the `Delegate` class and related utilities, focusing on improving functionality and adding new capabilities. The most important changes include the addition of `requires` clauses for better compile-time checks, new methods for connecting delegates, and the introduction of the `DelegateChainBuilder` class for building delegate chains. ### Enhancements to `Delegate` Class: * Added `requires` clauses to various methods in the `Delegate` class to ensure compile-time checks for function signatures and ownership types. (`Core/include/Acts/Utilities/Delegate.hpp`) [[1]](diffhunk://#diff-62fc5c04840c99ddd78a514b3b33be9001a8b2b2fdb53e5db7e481b115295ca4L160-R165) [[2]](diffhunk://#diff-62fc5c04840c99ddd78a514b3b33be9001a8b2b2fdb53e5db7e481b115295ca4L213-R230) [[3]](diffhunk://#diff-62fc5c04840c99ddd78a514b3b33be9001a8b2b2fdb53e5db7e481b115295ca4L237-L243) [[4]](diffhunk://#diff-62fc5c04840c99ddd78a514b3b33be9001a8b2b2fdb53e5db7e481b115295ca4L262-R272) * Moved the `kOwnership` static member to the public section and added new type aliases for better readability. (`Core/include/Acts/Utilities/Delegate.hpp`) ### New Features: * Introduced the `DelegateChainBuilder` class for constructing chains of delegates, allowing for more flexible and powerful delegate management. (`Core/include/Acts/Utilities/DelegateChainBuilder.hpp`) * Added unit tests for `DelegateChainBuilder` to ensure its functionality and correctness. (`Tests/UnitTests/Core/Utilities/DelegateChainBuilderTests.cpp`) * Updated CMakeLists to include the new unit tests for `DelegateChainBuilder`. (`Tests/UnitTests/Core/Utilities/CMakeLists.txt`) ### Enhancements to `OwningDelegate` Class: * Added constructors to the `OwningDelegate` class to support default initialization and move construction from a `Delegate`. (`Core/include/Acts/Utilities/Delegate.hpp`)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Breaks Athena build
This PR breaks the Athena build
Component - Core
Affects the Core module
Fails Athena tests
This PR causes a failure in the Athena tests
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.
Related to #3502
This pull request introduces several enhancements and new features to the
Delegate
class and related utilities, focusing on improving functionality and adding new capabilities. The most important changes include the addition ofrequires
clauses for better compile-time checks, new methods for connecting delegates, and the introduction of theDelegateChainBuilder
class for building delegate chains.Enhancements to
Delegate
Class:requires
clauses to various methods in theDelegate
class to ensure compile-time checks for function signatures and ownership types. (Core/include/Acts/Utilities/Delegate.hpp
) [1] [2] [3] [4]kOwnership
static member to the public section and added new type aliases for better readability. (Core/include/Acts/Utilities/Delegate.hpp
)New Features:
DelegateChainBuilder
class for constructing chains of delegates, allowing for more flexible and powerful delegate management. (Core/include/Acts/Utilities/DelegateChainBuilder.hpp
)DelegateChainBuilder
to ensure its functionality and correctness. (Tests/UnitTests/Core/Utilities/DelegateChainBuilderTests.cpp
)DelegateChainBuilder
. (Tests/UnitTests/Core/Utilities/CMakeLists.txt
)Enhancements to
OwningDelegate
Class:OwningDelegate
class to support default initialization and move construction from aDelegate
. (Core/include/Acts/Utilities/Delegate.hpp
)