RELAY spec v1.3 (release) completes the C++ binding in §18.2. This issue tracks building the header-only relay.hpp against that binding.
Scope
A header-only relay.hpp exposing the relay namespace (and nested relay::{can,dds,lin,mqtt,rcp,someip}):
- Core:
Protocol, Version, Message, Errc (the four sentinels, registered as std::error_category "relay"), Context, Channel<T>, SubscriberOptions, Node/Caller, kRelaySpecVersion.
- Canonical types per §18.2 with fixed-width
<cstdint> fields and §15 JSON field names; CAN XL fields included.
to_message() member / from_message() free function (C++17 std::pair form; C++23 std::expected form guarded by __cpp_lib_expected).
- Validators (
can::validate_frame, lin::validate_frame, someip::validate, …).
- Round-trip tests against
spec/vectors/ and schema checks against spec/schemas/.
Notes
- Where cpp-RCP already provides
relay::Context/relay::Channel aliases, reuse them (§18.2).
- Out of scope: per-protocol wire/transport implementations (those live in the respective x-Net C++ projects).
RELAY spec v1.3 (release) completes the C++ binding in §18.2. This issue tracks building the header-only
relay.hppagainst that binding.Scope
A header-only
relay.hppexposing therelaynamespace (and nestedrelay::{can,dds,lin,mqtt,rcp,someip}):Protocol,Version,Message,Errc(the four sentinels, registered asstd::error_category "relay"),Context,Channel<T>,SubscriberOptions,Node/Caller,kRelaySpecVersion.<cstdint>fields and §15 JSON field names; CAN XL fields included.to_message()member /from_message()free function (C++17std::pairform; C++23std::expectedform guarded by__cpp_lib_expected).can::validate_frame,lin::validate_frame,someip::validate, …).spec/vectors/and schema checks againstspec/schemas/.Notes
relay::Context/relay::Channelaliases, reuse them (§18.2).