Skip to content

Implement relay.hpp header (C++ reference, spec §18.2) #33

Description

@SoundMatt

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions