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

Add admire::node type to CXX API

parent 4ed3938c
No related branches found
No related tags found
1 merge request!30Resolve "Refactor library RPC implementation of `admire::transfer_dataset`"
......@@ -59,6 +59,26 @@ private:
std::unique_ptr<impl> m_pimpl;
};
struct node {
explicit node(std::string hostname);
explicit node(const ADM_node_t& srv);
node(const node&) noexcept;
node(node&&) noexcept;
node&
operator=(const node&) noexcept;
node&
operator=(node&&) noexcept;
~node();
std::string
hostname() const;
private:
class impl;
std::unique_ptr<impl> m_pimpl;
};
struct job {
explicit job(job_id id);
......
......@@ -746,6 +746,45 @@ server::address() const {
return m_pimpl->address();
}
class node::impl {
public:
explicit impl(std::string hostname) : m_hostname(std::move(hostname)) {}
std::string
hostname() const {
return m_hostname;
}
private:
std::string m_hostname;
};
node::node(std::string hostname)
: m_pimpl(std::make_unique<node::impl>(std::move(hostname))) {}
node::node(const ADM_node_t& node) : node::node(node->n_hostname) {}
node::node(const node& other) noexcept
: m_pimpl(std::make_unique<impl>(*other.m_pimpl)) {}
node::node(node&&) noexcept = default;
node&
node::operator=(const node& other) noexcept {
this->m_pimpl = std::make_unique<impl>(*other.m_pimpl);
return *this;
}
node&
node::operator=(node&&) noexcept = default;
node::~node() = default;
std::string
node::hostname() const {
return m_pimpl->hostname();
}
class job::impl {
......
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