20#ifndef ORES_VARIABILITY_MESSAGING_FEATURE_FLAGS_PROTOCOL_HPP
21#define ORES_VARIABILITY_MESSAGING_FEATURE_FLAGS_PROTOCOL_HPP
27#include "ores.comms/messaging/message_types.hpp"
28#include "ores.comms/messaging/message_traits.hpp"
29#include "ores.variability/domain/feature_flags.hpp"
37 std::vector<std::byte> serialize()
const;
38 static std::expected<get_feature_flags_request, ores::utility::serialization::error_code>
39 deserialize(std::span<const std::byte> data);
48 std::vector<domain::feature_flags> feature_flags;
50 std::vector<std::byte> serialize()
const;
51 static std::expected<get_feature_flags_response, ores::utility::serialization::error_code>
52 deserialize(std::span<const std::byte> data);
65 std::vector<std::byte> serialize()
const;
66 static std::expected<save_feature_flag_request, ores::utility::serialization::error_code>
67 deserialize(std::span<const std::byte> data);
77 std::string error_message;
79 std::vector<std::byte> serialize()
const;
80 static std::expected<save_feature_flag_response, ores::utility::serialization::error_code>
81 deserialize(std::span<const std::byte> data);
92 std::vector<std::byte> serialize()
const;
93 static std::expected<delete_feature_flag_request, ores::utility::serialization::error_code>
94 deserialize(std::span<const std::byte> data);
103 bool success =
false;
104 std::string error_message;
106 std::vector<std::byte> serialize()
const;
107 static std::expected<delete_feature_flag_response, ores::utility::serialization::error_code>
108 deserialize(std::span<const std::byte> data);
119 std::vector<std::byte> serialize()
const;
120 static std::expected<get_feature_flag_history_request, ores::utility::serialization::error_code>
121 deserialize(std::span<const std::byte> data);
130 bool success =
false;
132 std::vector<domain::feature_flags> history;
134 std::vector<std::byte> serialize()
const;
135 static std::expected<get_feature_flag_history_response, ores::utility::serialization::error_code>
136 deserialize(std::span<const std::byte> data);
152 static constexpr message_type request_message_type =
153 message_type::get_feature_flags_request;
163 static constexpr message_type request_message_type =
164 message_type::save_feature_flag_request;
174 static constexpr message_type request_message_type =
175 message_type::delete_feature_flag_request;
185 static constexpr message_type request_message_type =
186 message_type::get_feature_flag_history_request;
Contains messaging related infrastructure in the comms library.
Definition assets_protocol.hpp:122
std::basic_ostream< CharT, TraitsT > & operator<<(std::basic_ostream< CharT, TraitsT > &stream, boost_severity level)
Inserter for boost_severity enum.
Definition boost_severity.hpp:80
Network messaging infrastructure for the variability module.
Definition feature_flags_protocol.hpp:31
Traits template for mapping request types to their response types and message type enum values.
Definition message_traits.hpp:66
Represents a feature flag in the domain layer.
Definition feature_flags.hpp:31
Request to retrieve all feature flags.
Definition feature_flags_protocol.hpp:36
Response containing all feature flags.
Definition feature_flags_protocol.hpp:47
Request to save (create or update) a feature flag.
Definition feature_flags_protocol.hpp:62
Response to save feature flag request.
Definition feature_flags_protocol.hpp:75
Request to delete a feature flag by name.
Definition feature_flags_protocol.hpp:89
Response to delete feature flag request.
Definition feature_flags_protocol.hpp:102
Request to retrieve feature flag history by name.
Definition feature_flags_protocol.hpp:116
Response containing feature flag history.
Definition feature_flags_protocol.hpp:129