Verified Commit 1a8d1d0e authored by Alberto Miranda's avatar Alberto Miranda ♨️
Browse files

Add conversion function for admire::transfer

parent 905ce57f
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -29,6 +29,9 @@
ADM_job_t
ADM_job_create(uint64_t id);

ADM_transfer_t
ADM_transfer_create(uint64_t id);

namespace admire::api {

managed_ctype<ADM_adhoc_context_t>
@@ -110,4 +113,9 @@ convert(ADM_job_t j) {
    return admire::job{j};
}

managed_ctype<ADM_transfer_t>
convert(const transfer& tx) {
    return managed_ctype<ADM_transfer_t>(ADM_transfer_create(tx.id()));
}

} // namespace admire::api
+25 −0
Original line number Diff line number Diff line
@@ -60,6 +60,9 @@ convert(const job& j);
job
convert(ADM_job_t j);

managed_ctype<ADM_transfer_t>
convert(const transfer& t);


} // namespace admire::api

@@ -175,6 +178,9 @@ struct admire::api::managed_ctype<ADM_job_requirements_t> {
ADM_return_t
ADM_job_destroy(ADM_job_t job);

ADM_return_t
ADM_transfer_destroy(ADM_transfer_t tx);

template <>
struct admire::api::managed_ctype<ADM_job_t> {

@@ -193,4 +199,23 @@ struct admire::api::managed_ctype<ADM_job_t> {
    scord::utils::ctype_ptr<ADM_job_t, ADM_job_destroy> m_job;
};

template <>
struct admire::api::managed_ctype<ADM_transfer_t> {

    explicit managed_ctype(ADM_transfer_t tx) : m_transfer(tx) {}

    ADM_transfer_t
    get() const {
        return m_transfer.get();
    }

    ADM_transfer_t
    release() {
        return m_transfer.release();
    }

    scord::utils::ctype_ptr<ADM_transfer_t, ADM_transfer_destroy> m_transfer;
};


#endif // SCORD_CONVERT_HPP