Skip to content

Feature ROS2 services and actions#9

Merged
juanlofer-eprosima merged 87 commits into
mainfrom
feature/services_actions
Nov 6, 2025
Merged

Feature ROS2 services and actions#9
juanlofer-eprosima merged 87 commits into
mainfrom
feature/services_actions

Conversation

@EugenioCollado

@EugenioCollado EugenioCollado commented Jun 2, 2025

Copy link
Copy Markdown
Contributor

This PR is the rebase of all commits from here squashed on top of this branch.

@EugenioCollado
EugenioCollado changed the base branch from main to feature/publish-data June 3, 2025 05:43
@juanlofer-eprosima
juanlofer-eprosima force-pushed the feature/publish-data branch 2 times, most recently from 43290e5 to a757991 Compare June 4, 2025 10:03
@EugenioCollado
EugenioCollado force-pushed the feature/services_actions branch 2 times, most recently from 3d52ff1 to 4859367 Compare June 4, 2025 11:45
@juanlofer-eprosima
juanlofer-eprosima force-pushed the feature/publish-data branch 3 times, most recently from f465d47 to 4588279 Compare June 4, 2025 13:01
@EugenioCollado
EugenioCollado force-pushed the feature/services_actions branch 4 times, most recently from 005e3ff to 5378d3d Compare June 6, 2025 08:29
@EugenioCollado

EugenioCollado commented Jun 9, 2025

Copy link
Copy Markdown
Contributor Author

Review notes:

  • Rebase once the publish branch is merged
  • Make sure the notified types match the expected format during publish
  • Without unit tests, ASAN & TSAN aren't covering the new features
  • Refactor RpcUtils and merge it with utils
  • Update the example to reflect the new features
  • Replace ROS 2 RPC prefix/suffix literal strings with macros in constants.hpp
  • Update docs/context_broker_interface.rst
  • Fix windows build by exporting the necessary DDS Pipe methods

Base automatically changed from feature/publish-data to main June 17, 2025 14:31
@EugenioCollado
EugenioCollado force-pushed the feature/services_actions branch from 5378d3d to 252c4b7 Compare June 23, 2025 08:29
@EugenioCollado
EugenioCollado force-pushed the feature/services_actions branch from aa359c5 to 5444cfc Compare July 3, 2025 10:03
@EugenioCollado
EugenioCollado requested review from richiprosima and removed request for richiprosima July 4, 2025 07:32
@EugenioCollado
EugenioCollado force-pushed the feature/services_actions branch 3 times, most recently from 866da48 to 3327f12 Compare July 4, 2025 11:46

@juanlofer-eprosima juanlofer-eprosima left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the great work! New API and logic look sound to me, most of things I'm not happy about require first refactoring the RPC module in DDS-Pipe.

Comment thread ddsenabler/examples/action/Readme.md Outdated
Comment thread ddsenabler_participants/src/cpp/Utils.cpp Outdated
Comment thread ddsenabler_participants/src/cpp/Utils.cpp
Comment thread .github/docker/ddsenabler/README.md Outdated
Comment thread ddsenabler/examples/persistence/actions/fibonacci__action_
Comment thread ddsenabler_participants/src/cpp/EnablerParticipant.cpp Outdated

//! Mutex synchronizing access to object's data structures
std::mutex mtx_;
std::recursive_mutex mtx_;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try to refactor the code so recursiveness is not required.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will double check if have the time.

Comment thread ddsenabler_participants/src/cpp/Writer.cpp
Comment thread ddsenabler_participants/src/cpp/Writer.cpp Outdated
Comment thread ddsenabler_participants/src/cpp/Writer.cpp Outdated
@EugenioCollado
EugenioCollado force-pushed the feature/services_actions branch from f58fa96 to 63ba9fe Compare July 22, 2025 07:21
@EugenioCollado
EugenioCollado requested review from richiprosima and removed request for richiprosima August 26, 2025 11:37
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Comment thread ddsenabler/examples/action/CLIParser.hpp Outdated
Comment thread ddsenabler/examples/service/main.cpp Outdated
Comment thread ddsenabler_test/compose/test_cases/services/run_service_server_timeout.sh Outdated
Comment thread ddsenabler_test/compose/test_cases/services/service_client/compose.yml Outdated
volumes:
- ./config.yml:/config/config.yml
- ../persistence:/persistence
command: ./build/ddsenabler/examples/service/ddsenabler_example_service server --persistence-path /persistence --requests-path /persistence/requests --config /config/config.yml --expected-requests 3

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Open suggestion to review when refactoring the DDS-Pipe: it should be possible to announce a service even if types are not present in the persistence database, since they are received from the discovered client.

Comment thread ddsenabler_test/compose/test_cases/services/service_server/compose.yml Outdated
Comment thread ddsenabler_test/compose/test_cases/services/service_server/compose.yml Outdated
Comment thread ddsenabler_test/compose/test_cases/services/service_server/compose.yml Outdated
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Comment thread ddsenabler/examples/action/main.cpp Outdated
Comment thread ddsenabler/examples/action/main.cpp
Comment on lines +109 to +112
try
{
rpc_info = std::make_shared<RpcInfo>(dds_topic.m_topic_name);
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving this open for reference in case RPC structs is refactored in the future.

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

@juanlofer-eprosima juanlofer-eprosima left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, pending suggestions to be tackled in a future PR.

@juanlofer-eprosima
juanlofer-eprosima removed the request for review from richiprosima November 6, 2025 14:17
@juanlofer-eprosima
juanlofer-eprosima merged commit 2e7b312 into main Nov 6, 2025
14 checks passed
@juanlofer-eprosima
juanlofer-eprosima deleted the feature/services_actions branch November 6, 2025 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants