Allow editing values_ in status_item and small refactor#441
Open
MahmoudAlmasri wants to merge 3 commits into
Open
Allow editing values_ in status_item and small refactor#441MahmoudAlmasri wants to merge 3 commits into
MahmoudAlmasri wants to merge 3 commits into
Conversation
e506d27 to
75f2ed2
Compare
75f2ed2 to
654cdba
Compare
ct2034
requested changes
May 20, 2026
Collaborator
ct2034
left a comment
There was a problem hiding this comment.
Thanks for your contribution. Could you please add a unit test for these functions.
* Add new constructor that takes an extra vector of KeyValue * Introduce the addValue() method to StatusItem. * Refactor addValue and hasKey and move them to the cpp Signed-off-by: Mahmoud Almasri <mahm.al.masri@gmail.com>
Signed-off-by: Mahmoud Almasri <mahm.al.masri@gmail.com>
654cdba to
3f98d9e
Compare
There was a problem hiding this comment.
Pull request overview
Adds a small extension to diagnostic_aggregator::StatusItem so callers can initialize and edit the internal values_ (KeyValue pairs) more conveniently, and introduces a focused unit test for this behavior.
Changes:
- Added a new
StatusItemconstructor that accepts an initialstd::vector<diagnostic_msgs::msg::KeyValue>. - Added
StatusItem::addValue()(insert-or-update) and refactoredhasKey()to reuse shared lookup logic. - Added a new gtest target to validate constructor/value-editing behavior.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| diagnostic_aggregator/test/test_status_item.cpp | New gtest coverage for the values-initializing constructor, addValue(), and hasKey(). |
| diagnostic_aggregator/src/status_item.cpp | Implements the new constructor, addValue(), hasKey(), and internal findKey(). |
| diagnostic_aggregator/include/diagnostic_aggregator/status_item.hpp | Declares the new constructor and methods; moves hasKey() out-of-line and adds findKey() declaration. |
| diagnostic_aggregator/CMakeLists.txt | Registers the new gtest target and links it against the library. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+154
to
+160
| std::size_t StatusItem::findKey(const std::string & key) const | ||
| { | ||
| auto it = std::find_if( | ||
| values_.begin(), values_.end(), | ||
| [&key = std::as_const(key)](const diagnostic_msgs::msg::KeyValue & kv) { | ||
| return kv.key == key; | ||
| }); |
… missing headers Signed-off-by: Mahmoud Almasri <mahm.al.masri@gmail.com>
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.
This PR allows editing
values-withinstatus_itemin a convenient way:* Add new constructor that takes an extra vector of KeyValue
* Introduce the addValue() method to StatusItem.
Finally, a small refactor is performed to reuse some code.