20#ifndef ORES_DQ_MESSAGING_DATASET_PROTOCOL_HPP
21#define ORES_DQ_MESSAGING_DATASET_PROTOCOL_HPP
28#include <boost/uuid/uuid.hpp>
29#include "ores.comms/messaging/message_types.hpp"
30#include "ores.comms/messaging/message_traits.hpp"
31#include "ores.dq/domain/dataset.hpp"
32#include "ores.dq/domain/methodology.hpp"
33#include "ores.utility/serialization/error_code.hpp"
35namespace ores::dq::messaging {
47void write_dataset(std::vector<std::byte>& buffer,
const domain::dataset& d);
52std::expected<domain::dataset, ores::utility::serialization::error_code>
53read_dataset(std::span<const std::byte>& data);
63 std::vector<std::byte> serialize()
const;
65 ores::utility::serialization::error_code>
66 deserialize(std::span<const std::byte> data);
75 std::vector<domain::dataset> datasets;
77 std::vector<std::byte> serialize()
const;
79 ores::utility::serialization::error_code>
80 deserialize(std::span<const std::byte> data);
91 std::vector<std::byte> serialize()
const;
93 ores::utility::serialization::error_code>
94 deserialize(std::span<const std::byte> data);
106 std::vector<std::byte> serialize()
const;
108 ores::utility::serialization::error_code>
109 deserialize(std::span<const std::byte> data);
118 boost::uuids::uuid id;
129 std::vector<boost::uuids::uuid> ids;
131 std::vector<std::byte> serialize()
const;
133 ores::utility::serialization::error_code>
134 deserialize(std::span<const std::byte> data);
143 std::vector<delete_dataset_result> results;
145 std::vector<std::byte> serialize()
const;
147 ores::utility::serialization::error_code>
148 deserialize(std::span<const std::byte> data);
157 boost::uuids::uuid id;
159 std::vector<std::byte> serialize()
const;
161 ores::utility::serialization::error_code>
162 deserialize(std::span<const std::byte> data);
173 std::vector<domain::dataset> versions;
175 std::vector<std::byte> serialize()
const;
177 ores::utility::serialization::error_code>
178 deserialize(std::span<const std::byte> data);
191 std::vector<std::byte> serialize()
const;
193 ores::utility::serialization::error_code>
194 deserialize(std::span<const std::byte> data);
203 std::vector<domain::methodology> methodologies;
205 std::vector<std::byte> serialize()
const;
207 ores::utility::serialization::error_code>
208 deserialize(std::span<const std::byte> data);
219 std::vector<std::byte> serialize()
const;
221 ores::utility::serialization::error_code>
222 deserialize(std::span<const std::byte> data);
234 std::vector<std::byte> serialize()
const;
236 ores::utility::serialization::error_code>
237 deserialize(std::span<const std::byte> data);
246 boost::uuids::uuid id;
257 std::vector<boost::uuids::uuid> ids;
259 std::vector<std::byte> serialize()
const;
261 ores::utility::serialization::error_code>
262 deserialize(std::span<const std::byte> data);
271 std::vector<delete_methodology_result> results;
273 std::vector<std::byte> serialize()
const;
275 ores::utility::serialization::error_code>
276 deserialize(std::span<const std::byte> data);
285 boost::uuids::uuid id;
287 std::vector<std::byte> serialize()
const;
289 ores::utility::serialization::error_code>
290 deserialize(std::span<const std::byte> data);
301 std::vector<domain::methodology> versions;
303 std::vector<std::byte> serialize()
const;
305 ores::utility::serialization::error_code>
306 deserialize(std::span<const std::byte> data);
320 static constexpr message_type request_message_type =
321 message_type::get_datasets_request;
325struct message_traits<dq::messaging::save_dataset_request> {
328 static constexpr message_type request_message_type =
329 message_type::save_dataset_request;
333struct message_traits<dq::messaging::delete_dataset_request> {
334 using request_type = dq::messaging::delete_dataset_request;
335 using response_type = dq::messaging::delete_dataset_response;
336 static constexpr message_type request_message_type =
337 message_type::delete_dataset_request;
341struct message_traits<dq::messaging::get_dataset_history_request> {
342 using request_type = dq::messaging::get_dataset_history_request;
343 using response_type = dq::messaging::get_dataset_history_response;
344 static constexpr message_type request_message_type =
345 message_type::get_dataset_history_request;
350struct message_traits<dq::messaging::get_methodologies_request> {
351 using request_type = dq::messaging::get_methodologies_request;
352 using response_type = dq::messaging::get_methodologies_response;
353 static constexpr message_type request_message_type =
354 message_type::get_methodologies_request;
358struct message_traits<dq::messaging::save_methodology_request> {
359 using request_type = dq::messaging::save_methodology_request;
360 using response_type = dq::messaging::save_methodology_response;
361 static constexpr message_type request_message_type =
362 message_type::save_methodology_request;
366struct message_traits<dq::messaging::delete_methodology_request> {
367 using request_type = dq::messaging::delete_methodology_request;
368 using response_type = dq::messaging::delete_methodology_response;
369 static constexpr message_type request_message_type =
370 message_type::delete_methodology_request;
374struct message_traits<dq::messaging::get_methodology_history_request> {
375 using request_type = dq::messaging::get_methodology_history_request;
376 using response_type = dq::messaging::get_methodology_history_response;
377 static constexpr message_type request_message_type =
378 message_type::get_methodology_history_request;
Contains messaging related infrastructure in the comms library.
Definition assets_protocol.hpp:122
Represents a data quality dataset with lineage tracking.
Definition dataset.hpp:36
Describes a methodology for data processing or transformation.
Definition methodology.hpp:33
Request to retrieve all datasets.
Definition dataset_protocol.hpp:62
Response containing all datasets.
Definition dataset_protocol.hpp:74
Request to save a dataset (create or update).
Definition dataset_protocol.hpp:88
Response confirming dataset save operation.
Definition dataset_protocol.hpp:102
Result for a single dataset deletion.
Definition dataset_protocol.hpp:117
Request to delete one or more datasets.
Definition dataset_protocol.hpp:128
Response confirming dataset deletion(s).
Definition dataset_protocol.hpp:142
Request to retrieve version history for a dataset.
Definition dataset_protocol.hpp:156
Response containing dataset version history.
Definition dataset_protocol.hpp:170
Request to retrieve all methodologies.
Definition dataset_protocol.hpp:190
Response containing all methodologies.
Definition dataset_protocol.hpp:202
Request to save a methodology (create or update).
Definition dataset_protocol.hpp:216
Response confirming methodology save operation.
Definition dataset_protocol.hpp:230
Result for a single methodology deletion.
Definition dataset_protocol.hpp:245
Request to delete one or more methodologies.
Definition dataset_protocol.hpp:256
Response confirming methodology deletion(s).
Definition dataset_protocol.hpp:270
Request to retrieve version history for a methodology.
Definition dataset_protocol.hpp:284
Response containing methodology version history.
Definition dataset_protocol.hpp:298