Loading src/lib/admire_types.hpp +0 −3 Original line number Diff line number Diff line Loading @@ -71,9 +71,6 @@ struct job { job_id id() const; [[nodiscard]] ADM_job_t to_ctype() const; private: class impl; std::unique_ptr<impl> m_pimpl; Loading src/lib/c_wrapper.cpp +1 −7 Original line number Diff line number Diff line Loading @@ -54,13 +54,7 @@ ADM_register_job(ADM_server_t server, ADM_job_requirements_t reqs, return rv.error(); } const auto jh = ADM_job_create(rv->m_id); if(!jh) { return ADM_EOTHER; } *job = jh; *job = admire::unmanaged_rpc_type<admire::job>{*rv}.get(); return ADM_SUCCESS; } Loading src/lib/detail/impl.cpp +18 −17 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ #include <tl/expected.hpp> #include <net/engine.hpp> #include <net/proto/rpc_types.h> #include <utils/c_ptr.hpp> #include <admire_types.hpp> #include "impl.hpp" void Loading Loading @@ -150,9 +150,9 @@ namespace admire::detail { admire::error_code ping(const server& srv) { scord::network::rpc_client rpc_client{srv.m_protocol, rpc_registration_cb}; scord::network::rpc_client rpc_client{srv.protocol(), rpc_registration_cb}; auto endp = rpc_client.lookup(srv.m_address); auto endp = rpc_client.lookup(srv.address()); LOGGER_INFO("ADM_ping()"); endp.call("ADM_ping"); Loading @@ -161,33 +161,34 @@ ping(const server& srv) { return ADM_SUCCESS; } tl::expected<admire::job, admire::error_code> register_job(const admire::server& srv, const admire::job_requirements& reqs) { using scord::utils::c_ptr; using job_requirements_ptr = c_ptr<adm_job_requirements, ADM_job_requirements_destroy>; const auto preqs = job_requirements_ptr{reqs.to_rpc_type()}; scord::network::rpc_client rpc_client{srv.m_protocol, rpc_registration_cb}; scord::network::rpc_client rpc_client{srv.protocol(), rpc_registration_cb}; auto endp = rpc_client.lookup(srv.m_address); auto endp = rpc_client.lookup(srv.address()); LOGGER_INFO("RPC ({}): {{{}}}", "ADM_register_job", reqs); ADM_register_job_in_t in{*preqs}; auto rpc_reqs = managed_rpc_type<admire::job_requirements>{reqs}; ADM_register_job_in_t in{*rpc_reqs.get()}; ADM_register_job_out_t out; endp.call("ADM_register_job", &in, &out); if(out.ret < 0) { LOGGER_ERROR("ADM_register_job() = {}", out.ret); return tl::make_unexpected(static_cast<admire::error_code>(out.ret)); if(out.retval < 0) { LOGGER_ERROR("RPC ({}) = {}", "ADM_register_job", out.retval); return tl::make_unexpected(static_cast<admire::error_code>(out.retval)); } LOGGER_INFO("ADM_register_job() = {}", ADM_SUCCESS); return admire::job{42}; const auto rpc_job = managed_rpc_type<ADM_job_t>{out.job}; const admire::job job = rpc_job.get(); LOGGER_INFO("RPC ({}) = {{{}, job: {{{}}}}}", "ADM_register_job", ADM_SUCCESS, job.id()); return job; } } // namespace admire::detail src/scord/rpc_handlers.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -68,9 +68,15 @@ ADM_register_job(hg_handle_t h) { const auto id = remote_procedure::new_id(); LOGGER_INFO("RPC ID {} ({}): {{{}}}", id, __FUNCTION__, reqs); out.ret = ADM_SUCCESS; const auto job = admire::job{42}; LOGGER_INFO("RPC ID {} ({}) = {}", id, __FUNCTION__, out.ret); const auto rpc_job = admire::unmanaged_rpc_type<admire::job>{job}; out.retval = ADM_SUCCESS; out.job = rpc_job.get(); LOGGER_INFO("RPC ID {} ({}) = {{{}, job: {{{}}}}}", id, __FUNCTION__, out.retval, job); ret = margo_respond(h, &out); assert(ret == HG_SUCCESS); Loading Loading
src/lib/admire_types.hpp +0 −3 Original line number Diff line number Diff line Loading @@ -71,9 +71,6 @@ struct job { job_id id() const; [[nodiscard]] ADM_job_t to_ctype() const; private: class impl; std::unique_ptr<impl> m_pimpl; Loading
src/lib/c_wrapper.cpp +1 −7 Original line number Diff line number Diff line Loading @@ -54,13 +54,7 @@ ADM_register_job(ADM_server_t server, ADM_job_requirements_t reqs, return rv.error(); } const auto jh = ADM_job_create(rv->m_id); if(!jh) { return ADM_EOTHER; } *job = jh; *job = admire::unmanaged_rpc_type<admire::job>{*rv}.get(); return ADM_SUCCESS; } Loading
src/lib/detail/impl.cpp +18 −17 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ #include <tl/expected.hpp> #include <net/engine.hpp> #include <net/proto/rpc_types.h> #include <utils/c_ptr.hpp> #include <admire_types.hpp> #include "impl.hpp" void Loading Loading @@ -150,9 +150,9 @@ namespace admire::detail { admire::error_code ping(const server& srv) { scord::network::rpc_client rpc_client{srv.m_protocol, rpc_registration_cb}; scord::network::rpc_client rpc_client{srv.protocol(), rpc_registration_cb}; auto endp = rpc_client.lookup(srv.m_address); auto endp = rpc_client.lookup(srv.address()); LOGGER_INFO("ADM_ping()"); endp.call("ADM_ping"); Loading @@ -161,33 +161,34 @@ ping(const server& srv) { return ADM_SUCCESS; } tl::expected<admire::job, admire::error_code> register_job(const admire::server& srv, const admire::job_requirements& reqs) { using scord::utils::c_ptr; using job_requirements_ptr = c_ptr<adm_job_requirements, ADM_job_requirements_destroy>; const auto preqs = job_requirements_ptr{reqs.to_rpc_type()}; scord::network::rpc_client rpc_client{srv.m_protocol, rpc_registration_cb}; scord::network::rpc_client rpc_client{srv.protocol(), rpc_registration_cb}; auto endp = rpc_client.lookup(srv.m_address); auto endp = rpc_client.lookup(srv.address()); LOGGER_INFO("RPC ({}): {{{}}}", "ADM_register_job", reqs); ADM_register_job_in_t in{*preqs}; auto rpc_reqs = managed_rpc_type<admire::job_requirements>{reqs}; ADM_register_job_in_t in{*rpc_reqs.get()}; ADM_register_job_out_t out; endp.call("ADM_register_job", &in, &out); if(out.ret < 0) { LOGGER_ERROR("ADM_register_job() = {}", out.ret); return tl::make_unexpected(static_cast<admire::error_code>(out.ret)); if(out.retval < 0) { LOGGER_ERROR("RPC ({}) = {}", "ADM_register_job", out.retval); return tl::make_unexpected(static_cast<admire::error_code>(out.retval)); } LOGGER_INFO("ADM_register_job() = {}", ADM_SUCCESS); return admire::job{42}; const auto rpc_job = managed_rpc_type<ADM_job_t>{out.job}; const admire::job job = rpc_job.get(); LOGGER_INFO("RPC ({}) = {{{}, job: {{{}}}}}", "ADM_register_job", ADM_SUCCESS, job.id()); return job; } } // namespace admire::detail
src/scord/rpc_handlers.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -68,9 +68,15 @@ ADM_register_job(hg_handle_t h) { const auto id = remote_procedure::new_id(); LOGGER_INFO("RPC ID {} ({}): {{{}}}", id, __FUNCTION__, reqs); out.ret = ADM_SUCCESS; const auto job = admire::job{42}; LOGGER_INFO("RPC ID {} ({}) = {}", id, __FUNCTION__, out.ret); const auto rpc_job = admire::unmanaged_rpc_type<admire::job>{job}; out.retval = ADM_SUCCESS; out.job = rpc_job.get(); LOGGER_INFO("RPC ID {} ({}) = {{{}, job: {{{}}}}}", id, __FUNCTION__, out.retval, job); ret = margo_respond(h, &out); assert(ret == HG_SUCCESS); Loading