Loading src/common/net/proto/rpc_types.h +6 −0 Original line number Diff line number Diff line Loading @@ -251,6 +251,12 @@ MERCURY_GEN_STRUCT_PROC( // clang-format off MERCURY_GEN_PROC( ADM_ping_out_t, ((hg_uint64_t) (op_id)) ((int32_t) (retval)) ); /// ADM_register_job MERCURY_GEN_PROC( ADM_register_job_in_t, Loading src/lib/admire.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -71,7 +71,7 @@ init_logger() { void rpc_registration_cb(scord::network::rpc_client* client) { REGISTER_RPC(client, "ADM_ping", void, void, NULL, false); REGISTER_RPC(client, "ADM_ping", void, ADM_ping_out_t, NULL, true); REGISTER_RPC(client, "ADM_register_job", ADM_register_job_in_t, ADM_register_job_out_t, NULL, true); Loading src/lib/detail/impl.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ using namespace std::literals; void rpc_registration_cb(scord::network::rpc_client* client) { REGISTER_RPC(client, "ADM_ping", void, void, NULL, false); REGISTER_RPC(client, "ADM_ping", void, ADM_ping_out_t, NULL, true); REGISTER_RPC(client, "ADM_register_job", ADM_register_job_in_t, ADM_register_job_out_t, NULL, true); Loading Loading @@ -184,12 +184,15 @@ ping(const server& srv) { rpc_id, std::quoted("ADM_"s + __FUNCTION__), std::quoted(rpc_client.self_address())); const auto rpc = endp.call("ADM_ping"); ADM_ping_out_t out; const auto rpc = endp.call("ADM_ping", nullptr, &out); LOGGER_INFO("rpc id: {} name: {} from: {} <= " "body: {{retval: {}}} [op_id: {}]", rpc_id, std::quoted("ADM_"s + __FUNCTION__), std::quoted(rpc.origin()), ADM_SUCCESS, "n/a"); std::quoted(rpc.origin()), static_cast<admire::error_code>(out.retval), out.op_id); return ADM_SUCCESS; } Loading src/scord-ctl/rpc_handlers.cpp +28 −1 Original line number Diff line number Diff line Loading @@ -24,16 +24,43 @@ #include <logger/logger.hpp> #include <net/proto/rpc_types.h> #include <net/engine.hpp> #include "rpc_handlers.hpp" struct remote_procedure { static std::uint64_t new_id() { static std::atomic_uint64_t current_id; return current_id++; } }; static void ADM_ping(hg_handle_t h) { using scord::network::utils::get_address; [[maybe_unused]] hg_return_t ret; [[maybe_unused]] margo_instance_id mid = margo_hg_handle_get_instance(h); LOGGER_INFO("PING(noargs)"); const auto id = remote_procedure::new_id(); LOGGER_INFO("rpc id: {} name: {} from: {} => " "body: {{}}", id, std::quoted(__FUNCTION__), std::quoted(get_address(h))); ADM_ping_out_t out; out.op_id = id; out.retval = ADM_SUCCESS; LOGGER_INFO("rpc id: {} name: {} to: {} <= " "body: {{retval: {}}}", id, std::quoted(__FUNCTION__), std::quoted(get_address(h)), ADM_SUCCESS); ret = margo_respond(h, &out); assert(ret == HG_SUCCESS); ret = margo_destroy(h); assert(ret == HG_SUCCESS); Loading src/scord-ctl/scord-ctl.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -180,7 +180,7 @@ main(int argc, char* argv[]) { const auto rpc_registration_cb = [](auto&& ctx) { LOGGER_INFO(" * Registering RPCs handlers..."); REGISTER_RPC(ctx, "ADM_ping", void, void, ADM_ping, false); REGISTER_RPC(ctx, "ADM_ping", void, ADM_ping_out_t, ADM_ping, true); // TODO: add internal RPCs for communication with scord }; Loading Loading
src/common/net/proto/rpc_types.h +6 −0 Original line number Diff line number Diff line Loading @@ -251,6 +251,12 @@ MERCURY_GEN_STRUCT_PROC( // clang-format off MERCURY_GEN_PROC( ADM_ping_out_t, ((hg_uint64_t) (op_id)) ((int32_t) (retval)) ); /// ADM_register_job MERCURY_GEN_PROC( ADM_register_job_in_t, Loading
src/lib/admire.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -71,7 +71,7 @@ init_logger() { void rpc_registration_cb(scord::network::rpc_client* client) { REGISTER_RPC(client, "ADM_ping", void, void, NULL, false); REGISTER_RPC(client, "ADM_ping", void, ADM_ping_out_t, NULL, true); REGISTER_RPC(client, "ADM_register_job", ADM_register_job_in_t, ADM_register_job_out_t, NULL, true); Loading
src/lib/detail/impl.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ using namespace std::literals; void rpc_registration_cb(scord::network::rpc_client* client) { REGISTER_RPC(client, "ADM_ping", void, void, NULL, false); REGISTER_RPC(client, "ADM_ping", void, ADM_ping_out_t, NULL, true); REGISTER_RPC(client, "ADM_register_job", ADM_register_job_in_t, ADM_register_job_out_t, NULL, true); Loading Loading @@ -184,12 +184,15 @@ ping(const server& srv) { rpc_id, std::quoted("ADM_"s + __FUNCTION__), std::quoted(rpc_client.self_address())); const auto rpc = endp.call("ADM_ping"); ADM_ping_out_t out; const auto rpc = endp.call("ADM_ping", nullptr, &out); LOGGER_INFO("rpc id: {} name: {} from: {} <= " "body: {{retval: {}}} [op_id: {}]", rpc_id, std::quoted("ADM_"s + __FUNCTION__), std::quoted(rpc.origin()), ADM_SUCCESS, "n/a"); std::quoted(rpc.origin()), static_cast<admire::error_code>(out.retval), out.op_id); return ADM_SUCCESS; } Loading
src/scord-ctl/rpc_handlers.cpp +28 −1 Original line number Diff line number Diff line Loading @@ -24,16 +24,43 @@ #include <logger/logger.hpp> #include <net/proto/rpc_types.h> #include <net/engine.hpp> #include "rpc_handlers.hpp" struct remote_procedure { static std::uint64_t new_id() { static std::atomic_uint64_t current_id; return current_id++; } }; static void ADM_ping(hg_handle_t h) { using scord::network::utils::get_address; [[maybe_unused]] hg_return_t ret; [[maybe_unused]] margo_instance_id mid = margo_hg_handle_get_instance(h); LOGGER_INFO("PING(noargs)"); const auto id = remote_procedure::new_id(); LOGGER_INFO("rpc id: {} name: {} from: {} => " "body: {{}}", id, std::quoted(__FUNCTION__), std::quoted(get_address(h))); ADM_ping_out_t out; out.op_id = id; out.retval = ADM_SUCCESS; LOGGER_INFO("rpc id: {} name: {} to: {} <= " "body: {{retval: {}}}", id, std::quoted(__FUNCTION__), std::quoted(get_address(h)), ADM_SUCCESS); ret = margo_respond(h, &out); assert(ret == HG_SUCCESS); ret = margo_destroy(h); assert(ret == HG_SUCCESS); Loading
src/scord-ctl/scord-ctl.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -180,7 +180,7 @@ main(int argc, char* argv[]) { const auto rpc_registration_cb = [](auto&& ctx) { LOGGER_INFO(" * Registering RPCs handlers..."); REGISTER_RPC(ctx, "ADM_ping", void, void, ADM_ping, false); REGISTER_RPC(ctx, "ADM_ping", void, ADM_ping_out_t, ADM_ping, true); // TODO: add internal RPCs for communication with scord }; Loading