Allow editing values_ in status_item and small refactor#441
Allow editing values_ in status_item and small refactor#441MahmoudAlmasri wants to merge 4 commits into
Conversation
e506d27 to
75f2ed2
Compare
75f2ed2 to
654cdba
Compare
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.
… missing headers Signed-off-by: Mahmoud Almasri <mahm.al.masri@gmail.com>
ct2034
left a comment
There was a problem hiding this comment.
Just some small refinements
| EXPECT_EQ(item.getValue("a"), "1"); | ||
| EXPECT_EQ(item.getValue("b"), "2"); |
There was a problem hiding this comment.
| EXPECT_EQ(item.getValue("a"), "1"); | |
| EXPECT_EQ(item.getValue("b"), "2"); | |
| EXPECT_EQ(item.getValue("a"), "1"); | |
| EXPECT_EQ(item.getValue("b"), "2"); | |
| EXPECT_TRUE(item.hasKey("a")); | |
| EXPECT_TRUE(item.hasKey("b")); | |
| EXPECT_FALSE(item.hasKey("c")); |
|
|
||
| item.addValue("k", "new"); | ||
|
|
||
| EXPECT_EQ(item.getValue("k"), "new"); |
There was a problem hiding this comment.
| item.addValue("k", "new"); | |
| EXPECT_EQ(item.getValue("k"), "new"); | |
| EXPECT_EQ(item.getValue("k"), "old"); | |
| item.addValue("k", "new"); | |
| EXPECT_EQ(item.getValue("k"), "new"); |
| */ | ||
| std::size_t findKey(const std::string & key) const; | ||
|
|
||
| rclcpp::Time update_time_; |
There was a problem hiding this comment.
just a though: I think a size() method would also be helpful
|
@MahmoudAlmasri Could you please explain the rationale for this feature? |
|
@ct2034 Conceptually, a |
Signed-off-by: Mahmoud Almasri <mahm.al.masri@gmail.com>
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.