Skip to content
Snippets Groups Projects
Verified Commit 4ed3938c authored by Alberto Miranda's avatar Alberto Miranda :hotsprings:
Browse files

Add admire::transfer type to CXX API

parent 23c76d4a
No related branches found
No related tags found
1 merge request!30Resolve "Refactor library RPC implementation of `admire::transfer_dataset`"
......@@ -38,6 +38,7 @@ namespace admire {
using error_code = ADM_return_t;
using job_id = std::uint64_t;
using transfer_id = std::uint64_t;
struct server {
......@@ -78,6 +79,35 @@ private:
std::unique_ptr<impl> m_pimpl;
};
struct transfer {
enum class mapping : std::underlying_type<ADM_transfer_mapping_t>::type {
one_to_one = ADM_MAPPING_ONE_TO_ONE,
one_to_n = ADM_MAPPING_ONE_TO_N,
n_to_n = ADM_MAPPING_N_TO_N
};
explicit transfer(transfer_id id);
explicit transfer(ADM_transfer_t transfer);
transfer(const transfer&) noexcept;
transfer(transfer&&) noexcept;
transfer&
operator=(const transfer&) noexcept;
transfer&
operator=(transfer&&) noexcept;
~transfer();
transfer_id
id() const;
private:
class impl;
std::unique_ptr<impl> m_pimpl;
};
struct dataset {
explicit dataset(std::string id);
explicit dataset(ADM_dataset_t dataset);
......
......@@ -793,6 +793,54 @@ job::id() const {
return m_pimpl->id();
}
class transfer::impl {
public:
explicit impl(transfer_id id) : m_id(id) {}
impl(const impl& rhs) = default;
impl(impl&& rhs) = default;
impl&
operator=(const impl& other) noexcept = default;
impl&
operator=(impl&&) noexcept = default;
transfer_id
id() const {
return m_id;
}
private:
transfer_id m_id;
};
transfer::transfer(transfer_id id)
: m_pimpl(std::make_unique<transfer::impl>(id)) {}
transfer::transfer(ADM_transfer_t transfer)
: transfer::transfer(transfer->t_id) {}
transfer::transfer(transfer&&) noexcept = default;
transfer&
transfer::operator=(transfer&&) noexcept = default;
transfer::transfer(const transfer& other) noexcept
: m_pimpl(std::make_unique<impl>(*other.m_pimpl)) {}
transfer&
transfer::operator=(const transfer& other) noexcept {
this->m_pimpl = std::make_unique<impl>(*other.m_pimpl);
return *this;
}
transfer::~transfer() = default;
transfer_id
transfer::id() const {
return m_pimpl->id();
}
class dataset::impl {
public:
explicit impl(std::string id) : m_id(std::move(id)) {}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment