ORE Studio 0.0.4
Loading...
Searching...
No Matches
message_traits< Request > Struct Template Reference

Traits template for mapping request types to their response types and message type enum values. More...

#include <message_traits.hpp>

Collaboration diagram for message_traits< Request >:
Collaboration graph

Detailed Description

template<typename Request>
struct ores::comms::messaging::message_traits< Request >

Traits template for mapping request types to their response types and message type enum values.

Each request/response message pair should specialize this template to provide compile-time type information. This enables simplified API usage where only the request type needs to be specified.

Example specialization:

template<>
using request_type = subscribe_request;
using response_type = subscribe_response;
static constexpr message_type request_message_type =
message_type::subscribe_request;
};
Traits template for mapping request types to their response types and message type enum values.
Definition message_traits.hpp:66
Request to subscribe to entity change notifications.
Definition subscription_protocol.hpp:41
Response confirming subscription request.
Definition subscription_protocol.hpp:70

Usage with process_request:

// Old API (verbose):
auto result = client_->process_request<
message_type::subscribe_request>(std::move(req));
// New API (using traits):
auto result = client_->process_request(std::move(req));
Simple result type for C++20 (std::expected replacement).
Definition result.hpp:34
Note
This is complementary to event_traits in ores.eventing, which maps domain events to string names for the pub/sub notification system. message_traits maps request types to response types for RPC-style messaging.
Template Parameters
RequestThe request type.