Skip to content

[22682] Add RPC related interfaces #5687

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

Merged
merged 9 commits into from
Mar 19, 2025
Merged

[22682] Add RPC related interfaces #5687

merged 9 commits into from
Mar 19, 2025

Conversation

MiguelCompany
Copy link
Member

@MiguelCompany MiguelCompany commented Mar 5, 2025

Description

This PR adds supporting interfaces for the automatic generation of RPC code in Fast DDS Gen

Contributor Checklist

  • Commit messages follow the project guidelines.
  • The code follows the style guidelines of this project.
  • Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added; the added tests pass locally
  • Any new/modified methods have been properly documented using Doxygen.
  • N/A: Any new configuration API has an equivalent XML API (with the corresponding XSD extension)
  • NO: Changes are backport compatible: they do NOT break ABI nor change library core behavior.
  • Changes are API compatible.
  • New feature has been added to the versions.md file (if applicable).
  • New feature has been documented/Current behavior is correctly described in the documentation.
  • N/A: Applicable backports have been included in the description.

Reviewer Checklist

  • The PR has a milestone assigned.
  • The title and description correctly express the PR's purpose.
  • Check contributor checklist is correct.
  • If this is a critical bug fix, backports to the critical-only supported branches have been requested.
  • Check CI results: changes do not issue any warning.
  • Check CI results: failing tests are unrelated with the changes.

@MiguelCompany MiguelCompany added this to the v3.2.0 milestone Mar 5, 2025
@MiguelCompany MiguelCompany requested a review from richiware March 6, 2025 09:52
@github-actions github-actions bot added the ci-pending PR which CI is running label Mar 6, 2025
@MiguelCompany MiguelCompany requested review from richiprosima and removed request for richiprosima March 17, 2025 10:46
Copy link
Member Author

@MiguelCompany MiguelCompany left a comment

Choose a reason for hiding this comment

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

We should make the following changes. Apply similar ones on other ReqRep helpers

@MiguelCompany MiguelCompany requested review from richiprosima and removed request for richiprosima March 17, 2025 14:37
@MiguelCompany MiguelCompany requested review from richiware and removed request for richiware March 18, 2025 10:34
richiware
richiware previously approved these changes Mar 18, 2025
MiguelCompany and others added 9 commits March 18, 2025 16:36
* Refs #22722. Add RpcException class.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add RpcTimeoutException class.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add RpcBrokenPipeException class.

* Refs #22722. Add RpcOperationError class.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add utility include for exceptions.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add RpcServerReader template interface.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add RpcClientReader template interface.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add RpcServerWriter template interface.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add RpcClientWriter template interface.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add RpcInputFeedCancelledException.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add RpcFuture template.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Rename `RpcInputFeedCancelledException` -> `RpcFeedCancelledException`

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. `RpcServerWriter` operations can throw `RpcFeedCancelledException`

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Improve documentation of `RpcClientReader`

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Improve documentation of `RpcClientWriter`

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Avoid DSO export warning on Windows

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add utility include for interfaces.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22722. Add missing argument on doxygen documentation.

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>
* Refs #22682: Add public interfaces of RPC Entities

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Add RequestInfo class

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Add ServiceTypeSupport interface

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Add Requester/Replier parameter classes

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Add private headers and implement RPC methods

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Expose Requester/Replier endpoint getters to public API

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Add public methods for deleting requester/replier entities

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Allow calling get_statuscondition method on constant entities

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Refactor blackbox tests

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Avoid sample filtering on request topic

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Fix segFault error due to deleting endpoints manually

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Fix TCPRequester params

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Enable type() method for const DataReader objects

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Add unit tests for Requester/Replier parameters validation

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Add unit tests for DomainParticipant public API methods

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Fix test errors. Add service/participant checks and avoid inconsistent statuses when unregister types methods fail

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Update versions.md

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Apply suggested changes. Remove RequesterParams/ReplierParams classes

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Apply suggested changes. Unify parameters in Requester/Replier take/send methods

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Fix RequesterImpl::send_request related_sample_identity assignment

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Fix typos

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Apply suggested changes

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Apply suggested changes

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Uncrustify

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Avoid creating unnecesary RequestReplyContentFilter instances

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Add suggested changes

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Apply suggested changes. Add return_load method to Requester/Replier public API

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Apply suggested changes

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Apply suggested changes. Blackbox tests classes

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Apply suggested changes. Update send_reply signature.

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Fix blackbox tests

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Fix notation errors in Requester/Replier

Signed-off-by: Carlosespicur <[email protected]>

* Refs #22682: Fix memory leaks in RequestReplyContentFilterFactory

Signed-off-by: Carlosespicur <[email protected]>

---------

Signed-off-by: Carlosespicur <[email protected]>
* Refs #22917. Add `RemoteExceptionCode_t` enumeration.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Add `RpcRemomteException`.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Add remote exceptions.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Uncrustify.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Add new exceptions to convenience header.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Document where the enumeration comes from.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Add blackbox test.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Remove Dll API from exceptions.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Add test that captures exceptions.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Apply review suggestions.

Signed-off-by: Miguel Company <[email protected]>

* Refs #22917. Fix typo.

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>
@MiguelCompany
Copy link
Member Author

@richiware I had to rebase due to a conflict in versions.md

@MiguelCompany MiguelCompany merged commit 16fedc8 into master Mar 19, 2025
15 of 17 checks passed
@MiguelCompany MiguelCompany deleted the feature/rpc/main branch March 19, 2025 07:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci-pending PR which CI is running
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants