Skip to content
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

Remove CallOptions from uattributes.proto #132

Closed
gregmedd opened this issue May 4, 2024 · 8 comments
Closed

Remove CallOptions from uattributes.proto #132

gregmedd opened this issue May 4, 2024 · 8 comments
Labels
enhancement New feature or request
Milestone

Comments

@gregmedd
Copy link
Contributor

gregmedd commented May 4, 2024

The CallOptions message does not get included in any message or sent on the wire. It appears to be intended as a data wrapper for uE code interacting with the Layer 2 client API.

Since it is not a part of the actual message data model ("Layer 0"), it should be removed in favor of allowing language-specific APIs to implement the best fit for their language.

gregmedd added a commit to gregmedd/up-spec that referenced this issue May 4, 2024
CallOptions is never sent as a uProtocol message. Instead of being a
layer-0 message, it was used as a layer-2 client API.

It is being removed in favor of allowing language-specific API libraries
to define the most appropriate function signatures for the language.

Addresses issue eclipse-uprotocol#132
@stevenhartley
Copy link
Contributor

Although your statement is true, I want to know why we couldn't define it here?

@gregmedd
Copy link
Contributor Author

gregmedd commented May 6, 2024

Because interacting with protobuf objects is really unpleasant in situations where it is not required. It is simpler to provide a context-specific interface that takes the appropriate parameters for that situation. See UMessageBuilder in up-rust. We are mirroring that API in the up-cpp updates.

Protobuf messages intended for use as purely internal APIs are only a hindrance to defining idiomatic language APIs. This goes back to the L2 update where the required methods are listed, but their signatures are left to the language-specific APIs to define.

stevenhartley pushed a commit that referenced this issue May 8, 2024
CallOptions is never sent as a uProtocol message. Instead of being a
layer-0 message, it was used as a layer-2 client API.

It is being removed in favor of allowing language-specific API libraries
to define the most appropriate function signatures for the language.

Addresses issue #132
@sophokles73 sophokles73 added the enhancement New feature or request label May 14, 2024
@sophokles73 sophokles73 added this to the alpha.1 milestone May 14, 2024
@sophokles73
Copy link
Contributor

merged in #133

@sophokles73
Copy link
Contributor

Need to reopen because the spec has not been updated yet ...

@sophokles73 sophokles73 reopened this May 14, 2024
@stevenhartley
Copy link
Contributor

@sophokles73 you taking this or you want me to make the spec change?

@sophokles73
Copy link
Contributor

be my guest 😁

@stevenhartley
Copy link
Contributor

@sophokles73 we are rewriting rpcclient.adoc anyways for the new high level L2 API specifications, shouldn't we do it at that point? The only reference to CallOptions are in that file.

@stevenhartley
Copy link
Contributor

Closing, we will resolve reference in the L2 PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants