Loading examples/c/ADM_update_adhoc_storage.c +5 −1 Original line number Diff line number Diff line Loading @@ -78,7 +78,11 @@ main(int argc, char* argv[]) { fprintf(stdout, "ADM_register_adhoc_storage() remote procedure completed " "successfully\n"); ret = ADM_update_adhoc_storage(server, ctx, adhoc_storage); ADM_adhoc_context_t ctx_updated = ADM_adhoc_context_create( ADM_ADHOC_MODE_SEPARATE_NEW, ADM_ADHOC_ACCESS_RDWR, 42, 200, false); assert(ctx_updated); ret = ADM_update_adhoc_storage(server, ctx_updated, adhoc_storage); if(ret != ADM_SUCCESS) { fprintf(stderr, Loading examples/cxx/ADM_update_adhoc_storage.cpp +28 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ #include <fmt/format.h> #include <admire.hpp> #define NINPUTS 10 #define NOUTPUTS 5 int main(int argc, char* argv[]) { Loading @@ -38,12 +40,35 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; ADM_adhoc_context_t ctx{}; ADM_storage_t adhoc_storage{}; const auto inputs = prepare_datasets("input-dataset-{}", NINPUTS); const auto outputs = prepare_datasets("output-dataset-{}", NOUTPUTS); auto p = std::make_unique<admire::adhoc_storage>( admire::storage::type::gekkofs, "foobar", admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, 42, 100, false); admire::job_requirements reqs(inputs, outputs, std::move(p)); std::string user_id = "adhoc_storage_42"; const auto adhoc_storage_ctx = admire::adhoc_storage::ctx{ admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, 42, 100, false}; const auto adhoc_storage_ctx_updated = admire::adhoc_storage::ctx{ admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, 42, 200, false}; ADM_return_t ret = ADM_SUCCESS; try { ret = admire::update_adhoc_storage(server, ctx, adhoc_storage); const auto job = admire::register_job(server, reqs); const auto adhoc_storage = admire::register_adhoc_storage( server, job, user_id, adhoc_storage_ctx); const auto adhoc_storage_updated = admire::update_adhoc_storage( server, adhoc_storage_ctx_updated, adhoc_storage); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_update_adhoc_storage() failed: {}\n", e.what()); Loading src/common/net/proto/rpc_types.h +11 −2 Original line number Diff line number Diff line Loading @@ -346,9 +346,18 @@ MERCURY_GEN_PROC( ); /// ADM_update_adhoc_storage MERCURY_GEN_PROC(ADM_update_adhoc_storage_in_t, ((int32_t) (reqs))) MERCURY_GEN_PROC( ADM_update_adhoc_storage_in_t, ((ADM_adhoc_context_t)(adhoc_storage_ctx)) ((ADM_storage_t)(adhoc_storage)) ); MERCURY_GEN_PROC(ADM_update_adhoc_storage_out_t, ((int32_t) (ret))) MERCURY_GEN_PROC( ADM_update_adhoc_storage_out_t, ((hg_uint64_t) (op_id)) ((int32_t) (retval)) ((uint64_t)(server_id)) ); /// ADM_remove_adhoc_storage MERCURY_GEN_PROC(ADM_remove_adhoc_storage_in_t, ((int32_t) (reqs))) Loading src/lib/admire.cpp +11 −22 Original line number Diff line number Diff line Loading @@ -248,32 +248,21 @@ register_adhoc_storage(const server& srv, const std::string& name, return rv.value(); } ADM_return_t update_adhoc_storage(const server& srv, ADM_adhoc_context_t ctx, ADM_storage_t adhoc_storage) { (void) srv; (void) ctx; (void) adhoc_storage; scord::network::rpc_client rpc_client{srv.protocol(), rpc_registration_cb}; auto endp = rpc_client.lookup(srv.address()); LOGGER_INFO("ADM_update_adhoc_storage(...)"); ADM_update_adhoc_storage_in_t in{}; ADM_update_adhoc_storage_out_t out; admire::adhoc_storage update_adhoc_storage(const server& srv, const adhoc_storage::ctx& adhoc_storage_ctx, const adhoc_storage& adhoc_storage) { const auto rpc = endp.call("ADM_update_adhoc_storage", &in, &out); const auto rv = detail::update_adhoc_storage(srv, adhoc_storage_ctx, adhoc_storage); if(out.ret < 0) { LOGGER_ERROR("ADM_update_adhoc_storage() = {}", out.ret); return static_cast<ADM_return_t>(out.ret); if(!rv) { throw std::runtime_error( fmt::format("ADM_update_adhoc_storage() error: {}", ADM_strerror(rv.error()))); } LOGGER_INFO("ADM_update_adhoc_storage() = {}", ADM_SUCCESS); return ADM_SUCCESS; return rv.value(); } ADM_return_t Loading src/lib/admire.hpp +4 −3 Original line number Diff line number Diff line Loading @@ -62,9 +62,10 @@ register_adhoc_storage(const server& srv, const std::string& name, enum adhoc_storage::type type, const adhoc_storage::ctx& ctx); ADM_return_t update_adhoc_storage(const server& srv, ADM_adhoc_context_t ctx, ADM_storage_t adhoc_storage); admire::adhoc_storage update_adhoc_storage(const server& srv, const adhoc_storage::ctx& adhoc_storage_ctx, const adhoc_storage& adhoc_storage); ADM_return_t remove_adhoc_storage(const server& srv, ADM_storage_t adhoc_storage); Loading Loading
examples/c/ADM_update_adhoc_storage.c +5 −1 Original line number Diff line number Diff line Loading @@ -78,7 +78,11 @@ main(int argc, char* argv[]) { fprintf(stdout, "ADM_register_adhoc_storage() remote procedure completed " "successfully\n"); ret = ADM_update_adhoc_storage(server, ctx, adhoc_storage); ADM_adhoc_context_t ctx_updated = ADM_adhoc_context_create( ADM_ADHOC_MODE_SEPARATE_NEW, ADM_ADHOC_ACCESS_RDWR, 42, 200, false); assert(ctx_updated); ret = ADM_update_adhoc_storage(server, ctx_updated, adhoc_storage); if(ret != ADM_SUCCESS) { fprintf(stderr, Loading
examples/cxx/ADM_update_adhoc_storage.cpp +28 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ #include <fmt/format.h> #include <admire.hpp> #define NINPUTS 10 #define NOUTPUTS 5 int main(int argc, char* argv[]) { Loading @@ -38,12 +40,35 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; ADM_adhoc_context_t ctx{}; ADM_storage_t adhoc_storage{}; const auto inputs = prepare_datasets("input-dataset-{}", NINPUTS); const auto outputs = prepare_datasets("output-dataset-{}", NOUTPUTS); auto p = std::make_unique<admire::adhoc_storage>( admire::storage::type::gekkofs, "foobar", admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, 42, 100, false); admire::job_requirements reqs(inputs, outputs, std::move(p)); std::string user_id = "adhoc_storage_42"; const auto adhoc_storage_ctx = admire::adhoc_storage::ctx{ admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, 42, 100, false}; const auto adhoc_storage_ctx_updated = admire::adhoc_storage::ctx{ admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, 42, 200, false}; ADM_return_t ret = ADM_SUCCESS; try { ret = admire::update_adhoc_storage(server, ctx, adhoc_storage); const auto job = admire::register_job(server, reqs); const auto adhoc_storage = admire::register_adhoc_storage( server, job, user_id, adhoc_storage_ctx); const auto adhoc_storage_updated = admire::update_adhoc_storage( server, adhoc_storage_ctx_updated, adhoc_storage); } catch(const std::exception& e) { fmt::print(stderr, "FATAL: ADM_update_adhoc_storage() failed: {}\n", e.what()); Loading
src/common/net/proto/rpc_types.h +11 −2 Original line number Diff line number Diff line Loading @@ -346,9 +346,18 @@ MERCURY_GEN_PROC( ); /// ADM_update_adhoc_storage MERCURY_GEN_PROC(ADM_update_adhoc_storage_in_t, ((int32_t) (reqs))) MERCURY_GEN_PROC( ADM_update_adhoc_storage_in_t, ((ADM_adhoc_context_t)(adhoc_storage_ctx)) ((ADM_storage_t)(adhoc_storage)) ); MERCURY_GEN_PROC(ADM_update_adhoc_storage_out_t, ((int32_t) (ret))) MERCURY_GEN_PROC( ADM_update_adhoc_storage_out_t, ((hg_uint64_t) (op_id)) ((int32_t) (retval)) ((uint64_t)(server_id)) ); /// ADM_remove_adhoc_storage MERCURY_GEN_PROC(ADM_remove_adhoc_storage_in_t, ((int32_t) (reqs))) Loading
src/lib/admire.cpp +11 −22 Original line number Diff line number Diff line Loading @@ -248,32 +248,21 @@ register_adhoc_storage(const server& srv, const std::string& name, return rv.value(); } ADM_return_t update_adhoc_storage(const server& srv, ADM_adhoc_context_t ctx, ADM_storage_t adhoc_storage) { (void) srv; (void) ctx; (void) adhoc_storage; scord::network::rpc_client rpc_client{srv.protocol(), rpc_registration_cb}; auto endp = rpc_client.lookup(srv.address()); LOGGER_INFO("ADM_update_adhoc_storage(...)"); ADM_update_adhoc_storage_in_t in{}; ADM_update_adhoc_storage_out_t out; admire::adhoc_storage update_adhoc_storage(const server& srv, const adhoc_storage::ctx& adhoc_storage_ctx, const adhoc_storage& adhoc_storage) { const auto rpc = endp.call("ADM_update_adhoc_storage", &in, &out); const auto rv = detail::update_adhoc_storage(srv, adhoc_storage_ctx, adhoc_storage); if(out.ret < 0) { LOGGER_ERROR("ADM_update_adhoc_storage() = {}", out.ret); return static_cast<ADM_return_t>(out.ret); if(!rv) { throw std::runtime_error( fmt::format("ADM_update_adhoc_storage() error: {}", ADM_strerror(rv.error()))); } LOGGER_INFO("ADM_update_adhoc_storage() = {}", ADM_SUCCESS); return ADM_SUCCESS; return rv.value(); } ADM_return_t Loading
src/lib/admire.hpp +4 −3 Original line number Diff line number Diff line Loading @@ -62,9 +62,10 @@ register_adhoc_storage(const server& srv, const std::string& name, enum adhoc_storage::type type, const adhoc_storage::ctx& ctx); ADM_return_t update_adhoc_storage(const server& srv, ADM_adhoc_context_t ctx, ADM_storage_t adhoc_storage); admire::adhoc_storage update_adhoc_storage(const server& srv, const adhoc_storage::ctx& adhoc_storage_ctx, const adhoc_storage& adhoc_storage); ADM_return_t remove_adhoc_storage(const server& srv, ADM_storage_t adhoc_storage); Loading