Skip to content

[22722] Support interfaces for RPC generated code #5622

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 18 commits into from
Feb 10, 2025

Conversation

MiguelCompany
Copy link
Member

Description

This adds the generic interfaces that the code generated by Fast DDS Gen for RPC interfaces will use.

Contributor Checklist

  • Commit messages follow the project guidelines.
  • The code follows the style guidelines of this project.
  • N/A: 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 changed the title [22722] Support interfaces for generated code [22722] Support interfaces for RPC generated code Jan 31, 2025
@MiguelCompany MiguelCompany added this to the v3.2.0 milestone Feb 4, 2025
Copy link

@mcheiva mcheiva left a comment

Choose a reason for hiding this comment

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

Initial EIVA review

@MiguelCompany
Copy link
Member Author

Initial EIVA review

@mcheiva I think I addressed all your comments. Could you re-review?

Copy link

@mcheiva mcheiva left a comment

Choose a reason for hiding this comment

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

We reviewed your answers to our comments, and it looks good! :)

@MiguelCompany MiguelCompany added the no-test Skip CI tests if PR marked with this label label Feb 10, 2025
@github-actions github-actions bot added the ci-pending PR which CI is running label Feb 10, 2025
@MiguelCompany MiguelCompany requested review from Carlosespicur and removed request for Carlosespicur February 10, 2025 09:22
@MiguelCompany MiguelCompany merged commit 56b9b72 into feature/rpc/main Feb 10, 2025
14 checks passed
@MiguelCompany MiguelCompany deleted the feature/22722 branch February 10, 2025 14:54
MiguelCompany added a commit that referenced this pull request Feb 12, 2025
* 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]>
MiguelCompany added a commit that referenced this pull request Mar 5, 2025
* 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]>
MiguelCompany added a commit that referenced this pull request Mar 18, 2025
* 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]>
MiguelCompany added a commit that referenced this pull request Mar 19, 2025
* Support interfaces for RPC generated code (#5622)

* 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]>

* Add RPCDDS internal API (#5638)

* 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]>

* Rename constant to `RPC_STATUS_CODE_OK`

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

* Add definitions for remote exceptions (#5698)

* 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]>

* Remove unnecessary validations in Requester and Replier QoS (#5710)

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

* Remove const in DDS endpoints getters

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

* Refs #22682: Apply suggested changes

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

* Refs #22682. Apply suggestions from review.

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

* Refs #22682. Properly apply suggestion.

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

---------

Signed-off-by: Miguel Company <[email protected]>
Signed-off-by: Carlosespicur <[email protected]>
Co-authored-by: Carlos Espinoza Curto <[email protected]>
Co-authored-by: Carlosespicur <[email protected]>
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 no-test Skip CI tests if PR marked with this label
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants