Loading examples/ADM_link_transfer_to_data_operation.cpp +18 −57 Original line number Diff line number Diff line #include <fmt/format.h> #include <engine.hpp> bool string_to_convert(std::string s) { if(s == "true" || s == "TRUE" || s == "True") { return true; } else if(s == "false" || s == "FALSE" || s == "False") { return false; } else { throw std::invalid_argument( "ERROR: Incorrect input value. Please try again.\n"); } } #include <admire.hpp> int main(int argc, char* argv[]) { Loading @@ -24,57 +12,30 @@ main(int argc, char* argv[]) { exit(EXIT_FAILURE); } scord::network::rpc_client rpc_client{"tcp"}; rpc_client.register_rpcs(); admire::server server{"tcp", argv[1]}; auto endp = rpc_client.lookup(argv[1]); ADM_job_handle_t job{}; ADM_data_operation_handle_t op_handle; bool should_stream = false; va_list args; ADM_return_t ret = ADM_SUCCESS; fmt::print( stdout, "Calling ADM_link_transfer_to_data_operation remote procedure on {} with operation id {}, transfer id {}, stream {}, arguments {} and job id {} ...\n", argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]); ADM_link_transfer_to_data_operation_in_t in; try { in.operation_id = std::stoi(argv[2]); } catch(const std::exception& e) { fmt::print(stderr, "ERROR: Incorrect input type. Please try again.\n"); exit(EXIT_FAILURE); } try { in.transfer_id = std::stoi(argv[3]); ret = admire::link_transfer_to_data_operation(server, job, op_handle, should_stream, args); } catch(const std::exception& e) { fmt::print(stderr, "ERROR: Incorrect input type. Please try again.\n"); fmt::print(stderr, "FATAL: ADM_cancel_transfer() failed: {}\n", e.what()); exit(EXIT_FAILURE); } try { in.stream = string_to_convert(argv[4]); } catch(const std::invalid_argument& ia) { fmt::print( stderr, "ERROR: Incorrect input value. Please introduce TRUE/FALSE value. \n"); exit(EXIT_FAILURE); } in.arguments = argv[5]; try { in.job_id = std::stoi(argv[6]); } catch(const std::exception& e) { fmt::print(stderr, "ERROR: Incorrect input type. Please try again.\n"); exit(EXIT_FAILURE); } ADM_link_transfer_to_data_operation_out_t out; endp.call("ADM_link_transfer_to_data_operation", &in, &out); if(out.ret < 0) { fmt::print( stdout, "ADM_link_transfer_to_data_operation remote procedure not completed successfully\n"); if(ret != ADM_SUCCESS) { fmt::print(stdout, "ADM_cancel_transfer() remote procedure not completed " "successfully\n"); exit(EXIT_FAILURE); } else { fmt::print( stdout, "ADM_link_transfer_to_data_operation remote procedure completed successfully\n"); } fmt::print(stdout, "ADM_cancel_transfer() remote procedure completed " "successfully\n"); } src/api/admire.cpp +21 −1 Original line number Diff line number Diff line Loading @@ -504,7 +504,27 @@ link_transfer_to_data_operation(const server& srv, ADM_job_handle_t job, (void) should_stream; (void) args; return ADM_OTHER_ERROR; scord::network::rpc_client rpc_client{srv.m_protocol}; rpc_client.register_rpcs(); auto endp = rpc_client.lookup(srv.m_address); LOGGER_INFO("ADM_link_transfer_to_data_operation(...)"); // FIXME: change RPC fields to ADM_transfer_handle_t ADM_link_transfer_to_data_operation_in_t in{}; ADM_link_transfer_to_data_operation_out_t out; endp.call("ADM_link_transfer_to_data_operation", &in, &out); if(out.ret < 0) { LOGGER_ERROR("ADM_link_transfer_to_data_operation() = {}", out.ret); return static_cast<ADM_return_t>(out.ret); } LOGGER_INFO("ADM_link_transfer_to_data_operation() = {}", ADM_SUCCESS); return ADM_SUCCESS; } ADM_return_t Loading Loading
examples/ADM_link_transfer_to_data_operation.cpp +18 −57 Original line number Diff line number Diff line #include <fmt/format.h> #include <engine.hpp> bool string_to_convert(std::string s) { if(s == "true" || s == "TRUE" || s == "True") { return true; } else if(s == "false" || s == "FALSE" || s == "False") { return false; } else { throw std::invalid_argument( "ERROR: Incorrect input value. Please try again.\n"); } } #include <admire.hpp> int main(int argc, char* argv[]) { Loading @@ -24,57 +12,30 @@ main(int argc, char* argv[]) { exit(EXIT_FAILURE); } scord::network::rpc_client rpc_client{"tcp"}; rpc_client.register_rpcs(); admire::server server{"tcp", argv[1]}; auto endp = rpc_client.lookup(argv[1]); ADM_job_handle_t job{}; ADM_data_operation_handle_t op_handle; bool should_stream = false; va_list args; ADM_return_t ret = ADM_SUCCESS; fmt::print( stdout, "Calling ADM_link_transfer_to_data_operation remote procedure on {} with operation id {}, transfer id {}, stream {}, arguments {} and job id {} ...\n", argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]); ADM_link_transfer_to_data_operation_in_t in; try { in.operation_id = std::stoi(argv[2]); } catch(const std::exception& e) { fmt::print(stderr, "ERROR: Incorrect input type. Please try again.\n"); exit(EXIT_FAILURE); } try { in.transfer_id = std::stoi(argv[3]); ret = admire::link_transfer_to_data_operation(server, job, op_handle, should_stream, args); } catch(const std::exception& e) { fmt::print(stderr, "ERROR: Incorrect input type. Please try again.\n"); fmt::print(stderr, "FATAL: ADM_cancel_transfer() failed: {}\n", e.what()); exit(EXIT_FAILURE); } try { in.stream = string_to_convert(argv[4]); } catch(const std::invalid_argument& ia) { fmt::print( stderr, "ERROR: Incorrect input value. Please introduce TRUE/FALSE value. \n"); exit(EXIT_FAILURE); } in.arguments = argv[5]; try { in.job_id = std::stoi(argv[6]); } catch(const std::exception& e) { fmt::print(stderr, "ERROR: Incorrect input type. Please try again.\n"); exit(EXIT_FAILURE); } ADM_link_transfer_to_data_operation_out_t out; endp.call("ADM_link_transfer_to_data_operation", &in, &out); if(out.ret < 0) { fmt::print( stdout, "ADM_link_transfer_to_data_operation remote procedure not completed successfully\n"); if(ret != ADM_SUCCESS) { fmt::print(stdout, "ADM_cancel_transfer() remote procedure not completed " "successfully\n"); exit(EXIT_FAILURE); } else { fmt::print( stdout, "ADM_link_transfer_to_data_operation remote procedure completed successfully\n"); } fmt::print(stdout, "ADM_cancel_transfer() remote procedure completed " "successfully\n"); }
src/api/admire.cpp +21 −1 Original line number Diff line number Diff line Loading @@ -504,7 +504,27 @@ link_transfer_to_data_operation(const server& srv, ADM_job_handle_t job, (void) should_stream; (void) args; return ADM_OTHER_ERROR; scord::network::rpc_client rpc_client{srv.m_protocol}; rpc_client.register_rpcs(); auto endp = rpc_client.lookup(srv.m_address); LOGGER_INFO("ADM_link_transfer_to_data_operation(...)"); // FIXME: change RPC fields to ADM_transfer_handle_t ADM_link_transfer_to_data_operation_in_t in{}; ADM_link_transfer_to_data_operation_out_t out; endp.call("ADM_link_transfer_to_data_operation", &in, &out); if(out.ret < 0) { LOGGER_ERROR("ADM_link_transfer_to_data_operation() = {}", out.ret); return static_cast<ADM_return_t>(out.ret); } LOGGER_INFO("ADM_link_transfer_to_data_operation() = {}", ADM_SUCCESS); return ADM_SUCCESS; } ADM_return_t Loading