eclipse-score / eclipse-score/communication
Question: generic non-shared-memory ("copying") path for Transport's consumer-side receive?
- Dominant language
- C++
- Stars
- 62
- Forks
- 97
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 72
Description
## Context
`score::mw::com::gateway::Transport` (`score/mw/com/gateway/transport_layer/transport.h`) exposes `IsMemorySharingSupported()`, which implies bindings without shared-memory support are anticipated. However, the current abstract interface is entirely producer/registration-oriented: `ProvideService`, `OfferService`, `StopOfferService`, `NotifyUpdate`, `Register/UnregisterUpdateNotification`. There is no generic, binding-independent method for the consumer side to actually read back forwarded sample/event payload data.
Concretely: if a binding can't rely on shared memory to hand off the actual bytes (e.g. transports where the two gateway sides don't share an address space at all), there doesn't seem to be a way to both (a) forward payload bytes through the generic `Transport` interface, and (b) have the other side read them back, without dropping down to a binding-specific concrete class.
## Question
Is a "copying" (non-shared-memory) gateway path currently planned, in progress, or considered out of scope for `Transport`? If a binding needs to forward and receive actual payload bytes generically, would an extension along the lines of a `ForwardSampleData`/receive-side pair on `Transport` itself (rather than a binding-specific extension) be a direction you'd want, or is there a different intended pattern for this case we're missing from the existing docs (`score/mw/com/dependability/software_architectural_design/generalized_gateway/transport_layer/`)?
We've been prototyping a transport binding against exactly this gap and would be happy to share findings or propose something concrete if there's interest.
Contributor guide
Research direction
Start with score/mw/com/gateway/transport_layer/transport.h and the documentation under score/mw/com/dependability/software_architectural_design/generalized_gateway/transport_layer/. Compare the existing Transport operations with the proposed consumer-side copying path and review the prototype findings. Done means the intended scope or pattern for non-shared-memory payload forwarding is clearly decided and documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend-api-design, distributed-systems, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100