eclipse-score / eclipse-score/communication

Question: generic non-shared-memory ("copying") path for Transport's consumer-side receive?

Open
#1,055 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.