Repository navigation
feat: v2.15.0 — Application-Layer Protocol Bridge Rebind (§Phase 15 milestone 59) - #54
Merged
Merged
Conversation
…ilestone 59) Rebinds mqttbr.hpp, ddsbr.hpp, someipbr.hpp, restbridge.hpp, grpcbridge.hpp, udsbr.hpp, and doipbr.hpp per ROADMAP.md milestone 59 and the Satellite Package Disposition table's ADAPT entry for each file. Each pre-replacement `<Name>Controller : public rcp::Controller` wrapper (keyed by the removed Zone type) becomes a standalone `<Name>Bridge` class, the same "primitives, not a wrapped chokepoint" choice rcp/authz.hpp (v2.11.0) and rcp/tsn.hpp/rcp/record.hpp/rcp/observe.hpp (v2.14.0) already made. Addressing moves from Zone to the opaque per-connection stream_key plus avtp::ByteBusId endpoint pair every other Phase 14/15 header keys on since v2.10.0. Each bridge's send() becomes request(), shaped to match rcp/record.hpp's/rcp/observe.hpp's RequestFn — the same client-side send-equivalent call shape as rcp/udp.hpp's Client::request core signature. The old subscribe()/StatusChannel method is dropped with no replacement, since it belonged to rcp::Controller's status-telemetry push model with no analog in the target specification. Every method still returns errc::function_not_supported (close() still succeeds) — no real MQTT/DDS/SOME-IP/REST/gRPC/UDS/DoIP behavior is implemented, exactly as this milestone's scope calls for; each protocol's Config struct is unchanged. canbr.hpp/linbr.hpp are untouched (separate DEPRECATE item at v2.17.0). Grepping the tree for consumers of each file's pre-v2.15.0 API beyond its own test found none, so no legacy-shim split file was needed, same as the v2.13.0/v2.14.0 rebuilds. Tests entirely rewritten under the same file/prefix identity as the discarded pre-replacement coverage, traced in .fusa-reqs.json. version.hpp/CMakeLists.txt bumped to 2.15.0; ROADMAP.md gets a Done note. Verified locally: full build/test (60/60 ctest passing), RELAY conformance gate (relay conform --strict, PASS), and the cpp-FuSa safety suite (check/lint/cyber/trace --req-coverage 100, all 0 errors). Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements ROADMAP.md milestone 59, "Application-Layer Protocol Bridge Rebind (v2.15.0)" — the first unchecked/undone milestone in the roadmap's own stated order (milestones 44–58, v2.0.0–v2.14.0, all carry a "Done" note; milestone 59 did not).
mqttbr.hpp,ddsbr.hpp,someipbr.hpp,restbridge.hpp,grpcbridge.hpp,udsbr.hpp,doipbr.hppper the Satellite Package Disposition table's ADAPT entry for each file.<Name>Controller : public rcp::Controllerwrapper (keyed by the removedZonetype) becomes a standalone<Name>Bridgeclass — the same "primitives, not a wrapped chokepoint" choicercp/authz.hpp(v2.11.0) andrcp/tsn.hpp/rcp/record.hpp/rcp/observe.hpp(v2.14.0) already made, since there is no unified client-sidesend()chokepoint left to wrap.Zoneto the opaque per-connectionstream_keyplusavtp::ByteBusIdendpoint pair every other Phase 14/15 header keys on since v2.10.0.send()becomesrequest(), shaped to matchrcp/record.hpp's/rcp/observe.hpp'sRequestFn— the same "new client-side send-equivalent call" shape asrcp/udp.hpp'sClient::requestcore signature.subscribe()/StatusChannelmethod is dropped with no replacement (belonged torcp::Controller's status-telemetry push model, no analog in the target spec).errc::function_not_supported(close()still succeeds) — no real MQTT/DDS/SOME-IP/REST/gRPC/UDS/DoIP behavior is implemented, exactly as this milestone's scope calls for; each protocol'sConfigstruct is unchanged.canbr.hpp/linbr.hppare untouched — out of scope for this milestone, separate DEPRECATE item at v2.17.0.version.hpp/CMakeLists.txtbumped to 2.15.0;ROADMAP.mdgets a "Done (v2.15.0)" note.Grepping the tree for consumers of each file's pre-v2.15.0 API beyond its own test found none, so no legacy-shim split file was needed, matching the v2.13.0/v2.14.0 rebuild convention. Tests entirely rewritten under the same file/prefix identity as the discarded pre-replacement coverage, traced in
.fusa-reqs.json.Test plan
cmake -B build && cmake --build build --parallel— clean buildctest --test-dir build --output-on-failure -j1— 60/60 tests passingrelay conform --strict build/cpp-rcp(RELAY §12 conformance gate) — PASScpfusa check— 0 errorscpfusa lint— 0 errors (from a clean checkout, nobuild/dir noise)cpfusa cyber— 0 errorscpfusa trace --req-coverage 100— passes at 100% requirement coverage