20#ifndef ORES_DQ_MESSAGING_DIMENSION_PROTOCOL_HPP
21#define ORES_DQ_MESSAGING_DIMENSION_PROTOCOL_HPP
27#include "ores.comms/messaging/message_types.hpp"
28#include "ores.comms/messaging/message_traits.hpp"
29#include "ores.dq/domain/nature_dimension.hpp"
30#include "ores.dq/domain/origin_dimension.hpp"
31#include "ores.dq/domain/treatment_dimension.hpp"
33namespace ores::dq::messaging {
43 std::vector<std::byte> serialize()
const;
45 ores::utility::serialization::error_code>
46 deserialize(std::span<const std::byte> data);
55 std::vector<domain::nature_dimension> dimensions;
57 std::vector<std::byte> serialize()
const;
59 ores::utility::serialization::error_code>
60 deserialize(std::span<const std::byte> data);
71 std::vector<std::byte> serialize()
const;
73 ores::utility::serialization::error_code>
74 deserialize(std::span<const std::byte> data);
86 std::vector<std::byte> serialize()
const;
88 ores::utility::serialization::error_code>
89 deserialize(std::span<const std::byte> data);
109 std::vector<std::string> codes;
111 std::vector<std::byte> serialize()
const;
113 ores::utility::serialization::error_code>
114 deserialize(std::span<const std::byte> data);
123 std::vector<delete_nature_dimension_result> results;
125 std::vector<std::byte> serialize()
const;
127 ores::utility::serialization::error_code>
128 deserialize(std::span<const std::byte> data);
139 std::vector<std::byte> serialize()
const;
141 ores::utility::serialization::error_code>
142 deserialize(std::span<const std::byte> data);
153 std::vector<domain::nature_dimension> versions;
155 std::vector<std::byte> serialize()
const;
157 ores::utility::serialization::error_code>
158 deserialize(std::span<const std::byte> data);
171 std::vector<std::byte> serialize()
const;
173 ores::utility::serialization::error_code>
174 deserialize(std::span<const std::byte> data);
183 std::vector<domain::origin_dimension> dimensions;
185 std::vector<std::byte> serialize()
const;
187 ores::utility::serialization::error_code>
188 deserialize(std::span<const std::byte> data);
199 std::vector<std::byte> serialize()
const;
201 ores::utility::serialization::error_code>
202 deserialize(std::span<const std::byte> data);
214 std::vector<std::byte> serialize()
const;
216 ores::utility::serialization::error_code>
217 deserialize(std::span<const std::byte> data);
237 std::vector<std::string> codes;
239 std::vector<std::byte> serialize()
const;
241 ores::utility::serialization::error_code>
242 deserialize(std::span<const std::byte> data);
251 std::vector<delete_origin_dimension_result> results;
253 std::vector<std::byte> serialize()
const;
255 ores::utility::serialization::error_code>
256 deserialize(std::span<const std::byte> data);
267 std::vector<std::byte> serialize()
const;
269 ores::utility::serialization::error_code>
270 deserialize(std::span<const std::byte> data);
281 std::vector<domain::origin_dimension> versions;
283 std::vector<std::byte> serialize()
const;
285 ores::utility::serialization::error_code>
286 deserialize(std::span<const std::byte> data);
299 std::vector<std::byte> serialize()
const;
301 ores::utility::serialization::error_code>
302 deserialize(std::span<const std::byte> data);
311 std::vector<domain::treatment_dimension> dimensions;
313 std::vector<std::byte> serialize()
const;
315 ores::utility::serialization::error_code>
316 deserialize(std::span<const std::byte> data);
327 std::vector<std::byte> serialize()
const;
329 ores::utility::serialization::error_code>
330 deserialize(std::span<const std::byte> data);
342 std::vector<std::byte> serialize()
const;
344 ores::utility::serialization::error_code>
345 deserialize(std::span<const std::byte> data);
365 std::vector<std::string> codes;
367 std::vector<std::byte> serialize()
const;
369 ores::utility::serialization::error_code>
370 deserialize(std::span<const std::byte> data);
379 std::vector<delete_treatment_dimension_result> results;
381 std::vector<std::byte> serialize()
const;
383 ores::utility::serialization::error_code>
384 deserialize(std::span<const std::byte> data);
395 std::vector<std::byte> serialize()
const;
397 ores::utility::serialization::error_code>
398 deserialize(std::span<const std::byte> data);
409 std::vector<domain::treatment_dimension> versions;
411 std::vector<std::byte> serialize()
const;
413 ores::utility::serialization::error_code>
414 deserialize(std::span<const std::byte> data);
428 static constexpr message_type request_message_type =
429 message_type::get_nature_dimensions_request;
433struct message_traits<dq::messaging::save_nature_dimension_request> {
436 static constexpr message_type request_message_type =
437 message_type::save_nature_dimension_request;
441struct message_traits<dq::messaging::delete_nature_dimension_request> {
442 using request_type = dq::messaging::delete_nature_dimension_request;
443 using response_type = dq::messaging::delete_nature_dimension_response;
444 static constexpr message_type request_message_type =
445 message_type::delete_nature_dimension_request;
449struct message_traits<dq::messaging::get_nature_dimension_history_request> {
450 using request_type = dq::messaging::get_nature_dimension_history_request;
451 using response_type = dq::messaging::get_nature_dimension_history_response;
452 static constexpr message_type request_message_type =
453 message_type::get_nature_dimension_history_request;
458struct message_traits<dq::messaging::get_origin_dimensions_request> {
459 using request_type = dq::messaging::get_origin_dimensions_request;
460 using response_type = dq::messaging::get_origin_dimensions_response;
461 static constexpr message_type request_message_type =
462 message_type::get_origin_dimensions_request;
466struct message_traits<dq::messaging::save_origin_dimension_request> {
467 using request_type = dq::messaging::save_origin_dimension_request;
468 using response_type = dq::messaging::save_origin_dimension_response;
469 static constexpr message_type request_message_type =
470 message_type::save_origin_dimension_request;
474struct message_traits<dq::messaging::delete_origin_dimension_request> {
475 using request_type = dq::messaging::delete_origin_dimension_request;
476 using response_type = dq::messaging::delete_origin_dimension_response;
477 static constexpr message_type request_message_type =
478 message_type::delete_origin_dimension_request;
482struct message_traits<dq::messaging::get_origin_dimension_history_request> {
483 using request_type = dq::messaging::get_origin_dimension_history_request;
484 using response_type = dq::messaging::get_origin_dimension_history_response;
485 static constexpr message_type request_message_type =
486 message_type::get_origin_dimension_history_request;
491struct message_traits<dq::messaging::get_treatment_dimensions_request> {
492 using request_type = dq::messaging::get_treatment_dimensions_request;
493 using response_type = dq::messaging::get_treatment_dimensions_response;
494 static constexpr message_type request_message_type =
495 message_type::get_treatment_dimensions_request;
499struct message_traits<dq::messaging::save_treatment_dimension_request> {
500 using request_type = dq::messaging::save_treatment_dimension_request;
501 using response_type = dq::messaging::save_treatment_dimension_response;
502 static constexpr message_type request_message_type =
503 message_type::save_treatment_dimension_request;
507struct message_traits<dq::messaging::delete_treatment_dimension_request> {
508 using request_type = dq::messaging::delete_treatment_dimension_request;
509 using response_type = dq::messaging::delete_treatment_dimension_response;
510 static constexpr message_type request_message_type =
511 message_type::delete_treatment_dimension_request;
515struct message_traits<dq::messaging::get_treatment_dimension_history_request> {
516 using request_type = dq::messaging::get_treatment_dimension_history_request;
517 using response_type = dq::messaging::get_treatment_dimension_history_response;
518 static constexpr message_type request_message_type =
519 message_type::get_treatment_dimension_history_request;
Contains messaging related infrastructure in the comms library.
Definition assets_protocol.hpp:122
Classifies datasets by their data nature (actual vs. synthetic).
Definition nature_dimension.hpp:39
Classifies datasets by their origin or source type.
Definition origin_dimension.hpp:39
Classifies datasets by their processing treatment level.
Definition treatment_dimension.hpp:40
Request to retrieve all nature dimensions.
Definition dimension_protocol.hpp:42
Response containing all nature dimensions.
Definition dimension_protocol.hpp:54
Request to save a nature dimension (create or update).
Definition dimension_protocol.hpp:68
Response confirming nature dimension save operation.
Definition dimension_protocol.hpp:82
Result for a single nature dimension deletion.
Definition dimension_protocol.hpp:97
Request to delete one or more nature dimensions.
Definition dimension_protocol.hpp:108
Response confirming nature dimension deletion(s).
Definition dimension_protocol.hpp:122
Request to retrieve version history for a nature dimension.
Definition dimension_protocol.hpp:136
Response containing nature dimension version history.
Definition dimension_protocol.hpp:150
Request to retrieve all origin dimensions.
Definition dimension_protocol.hpp:170
Response containing all origin dimensions.
Definition dimension_protocol.hpp:182
Request to save an origin dimension (create or update).
Definition dimension_protocol.hpp:196
Response confirming origin dimension save operation.
Definition dimension_protocol.hpp:210
Result for a single origin dimension deletion.
Definition dimension_protocol.hpp:225
Request to delete one or more origin dimensions.
Definition dimension_protocol.hpp:236
Response confirming origin dimension deletion(s).
Definition dimension_protocol.hpp:250
Request to retrieve version history for an origin dimension.
Definition dimension_protocol.hpp:264
Response containing origin dimension version history.
Definition dimension_protocol.hpp:278
Request to retrieve all treatment dimensions.
Definition dimension_protocol.hpp:298
Response containing all treatment dimensions.
Definition dimension_protocol.hpp:310
Request to save a treatment dimension (create or update).
Definition dimension_protocol.hpp:324
Response confirming treatment dimension save operation.
Definition dimension_protocol.hpp:338
Result for a single treatment dimension deletion.
Definition dimension_protocol.hpp:353
Request to delete one or more treatment dimensions.
Definition dimension_protocol.hpp:364
Response confirming treatment dimension deletion(s).
Definition dimension_protocol.hpp:378
Request to retrieve version history for a treatment dimension.
Definition dimension_protocol.hpp:392
Response containing treatment dimension version history.
Definition dimension_protocol.hpp:406