Loading src/lib/admire.cpp +46 −46 Original line number Diff line number Diff line Loading @@ -201,9 +201,9 @@ update_job(const server& srv, const job& job, const job_requirements& reqs) { (void) job; (void) reqs; 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_update_job(...)"); Loading @@ -226,9 +226,9 @@ remove_job(const server& srv, const job& job) { (void) srv; (void) job; 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_remove_job(...)"); Loading @@ -254,9 +254,9 @@ register_adhoc_storage(const server& srv, ADM_job_t job, (void) ctx; (void) adhoc_storage; 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_register_adhoc_storage(...)"); Loading @@ -282,9 +282,9 @@ update_adhoc_storage(const server& srv, ADM_job_t job, ADM_adhoc_context_t ctx, (void) ctx; (void) adhoc_storage; 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_update_adhoc_storage(...)"); Loading @@ -309,9 +309,9 @@ remove_adhoc_storage(const server& srv, ADM_job_t job, (void) job; (void) adhoc_storage; 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_remove_adhoc_storage(...)"); Loading @@ -336,9 +336,9 @@ deploy_adhoc_storage(const server& srv, ADM_job_t job, (void) job; (void) adhoc_storage; 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_deploy_adhoc_storage(...)"); Loading @@ -364,9 +364,9 @@ register_pfs_storage(const server& srv, ADM_job_t job, ADM_pfs_context_t ctx, (void) ctx; (void) pfs_storage; 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_register_pfs_storage(...)"); Loading @@ -392,9 +392,9 @@ update_pfs_storage(const server& srv, ADM_job_t job, ADM_pfs_context_t ctx, (void) ctx; (void) pfs_storage; 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_update_pfs_storage(...)"); Loading @@ -419,9 +419,9 @@ remove_pfs_storage(const server& srv, ADM_job_t job, (void) job; (void) pfs_storage; 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_remove_pfs_storage(...)"); Loading Loading @@ -451,9 +451,9 @@ transfer_dataset(const server& srv, ADM_job_t job, ADM_dataset_t** sources, (void) mapping; (void) transfer; 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_transfer_dataset(...)"); Loading @@ -479,9 +479,9 @@ set_dataset_information(const server& srv, ADM_job_t job, ADM_dataset_t target, (void) target; (void) info; 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_set_dataset_information(...)"); Loading @@ -507,9 +507,9 @@ set_io_resources(const server& srv, ADM_job_t job, ADM_storage_t tier, (void) tier; (void) resources; 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_set_io_resources(...)"); Loading @@ -535,9 +535,9 @@ get_transfer_priority(const server& srv, ADM_job_t job, ADM_transfer_t transfer, (void) transfer; (void) priority; 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_get_transfer_priority(...)"); Loading @@ -563,9 +563,9 @@ set_transfer_priority(const server& srv, ADM_job_t job, ADM_transfer_t transfer, (void) transfer; (void) incr; 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_set_transfer_priority(...)"); Loading @@ -589,9 +589,9 @@ cancel_transfer(const server& srv, ADM_job_t job, ADM_transfer_t transfer) { (void) job; (void) transfer; 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_cancel_transfer(...)"); Loading @@ -617,9 +617,9 @@ get_pending_transfers(const server& srv, ADM_job_t job, (void) job; (void) pending_transfers; 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_get_pending_transfers(...)"); Loading @@ -646,9 +646,9 @@ set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, (void) entity; (void) limit; 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_set_qos_constraints(...)"); Loading @@ -675,9 +675,9 @@ get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, (void) entity; (void) limits; 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_get_qos_constraints(...)"); Loading Loading @@ -705,9 +705,9 @@ define_data_operation(const server& srv, ADM_job_t job, const char* path, (void) op; (void) args; 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_define_data_operation(...)"); Loading Loading @@ -736,9 +736,9 @@ connect_data_operation(const server& srv, ADM_job_t job, ADM_dataset_t input, (void) should_stream; (void) args; 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_connect_data_operation(...)"); Loading Loading @@ -766,9 +766,9 @@ finalize_data_operation(const server& srv, ADM_job_t job, (void) op; (void) status; 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_finalize_data_operation(...)"); Loading Loading @@ -797,9 +797,9 @@ link_transfer_to_data_operation(const server& srv, ADM_job_t job, (void) should_stream; (void) args; 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_link_transfer_to_data_operation(...)"); Loading @@ -824,9 +824,9 @@ get_statistics(const server& srv, ADM_job_t job, ADM_job_stats_t** stats) { (void) job; (void) stats; 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_get_statistics(...)"); Loading src/lib/admire_types.hpp +126 −51 Original line number Diff line number Diff line Loading @@ -40,31 +40,62 @@ using job_id = std::uint64_t; struct server { server(std::string protocol, std::string address); explicit server(const ADM_server_t& srv); server(server&&) noexcept; server& operator=(server&&) noexcept; ~server(); std::string m_protocol; std::string m_address; std::string protocol() const; std::string address() const; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct job { explicit job(job_id id); explicit job(ADM_job_t job); job_id m_id; job(const job&) noexcept; job(job&&) noexcept; job& operator=(job&&) noexcept; job& operator=(const job&) noexcept; ~job(); job_id id() const; [[nodiscard]] ADM_job_t to_ctype() const; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct dataset { explicit dataset(std::string id) : m_id(std::move(id)) {} explicit dataset(std::string id); explicit dataset(ADM_dataset_t dataset); dataset(const dataset&) noexcept; dataset(dataset&&) noexcept; dataset& operator=(const dataset&) noexcept; dataset& operator=(dataset&&) noexcept; ~dataset(); std::string to_string() const { return "foo"; } id() const; std::string m_id; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct storage { Loading @@ -78,15 +109,25 @@ struct storage { gpfs = ADM_STORAGE_GPFS }; struct ctx { virtual ~ctx() = default; }; storage(storage::type type, std::string id); virtual ~storage() = default; virtual ADM_storage_t to_rpc_type() const = 0; std::string id() const; type type() const; virtual std::shared_ptr<ctx> context() const = 0; protected: std::string m_id; type m_type; enum type m_type; }; struct adhoc_storage : public storage { Loading @@ -104,59 +145,80 @@ struct adhoc_storage : public storage { read_write = ADM_ADHOC_ACCESS_RDWR, }; struct context { struct ctx : storage::ctx { context(execution_mode exec_mode, access_type access_type, ctx(execution_mode exec_mode, access_type access_type, std::uint32_t nodes, std::uint32_t walltime, bool should_flush); explicit context(ADM_adhoc_context_t ctx); explicit ctx(ADM_adhoc_context_t ctx); ADM_adhoc_context_t to_rpc_type() const; execution_mode exec_mode() const; enum access_type access_type() const; std::uint32_t nodes() const; std::uint32_t walltime() const; bool should_flush() const; private: execution_mode m_exec_mode; access_type m_access_type; enum access_type m_access_type; std::uint32_t m_nodes; std::uint32_t m_walltime; bool m_should_flush; }; adhoc_storage(storage::type type, std::string id, execution_mode exec_mode, access_type access_type, std::uint32_t nodes, std::uint32_t walltime, bool should_flush); adhoc_storage(storage::type type, std::string id, ADM_adhoc_context_t ctx); ADM_storage_t to_rpc_type() const final; context m_ctx; adhoc_storage(enum storage::type type, std::string id, execution_mode exec_mode, access_type access_type, std::uint32_t nodes, std::uint32_t walltime, bool should_flush); adhoc_storage(enum storage::type type, std::string id, ADM_adhoc_context_t ctx); adhoc_storage(adhoc_storage&&) noexcept = default; adhoc_storage& operator=(adhoc_storage&&) noexcept = default; ~adhoc_storage() override; std::shared_ptr<storage::ctx> context() const final; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct pfs_storage : public storage { struct context { struct ctx : storage::ctx { explicit context(std::filesystem::path mount_point); explicit ctx(std::filesystem::path mount_point); explicit context(ADM_pfs_context_t ctx); explicit ctx(ADM_pfs_context_t ctx); ADM_pfs_context_t to_rpc_type() const; std::filesystem::path mount_point() const; private: std::filesystem::path m_mount_point; }; pfs_storage(storage::type type, std::string id, pfs_storage(enum storage::type type, std::string id, std::filesystem::path mount_point); pfs_storage(storage::type type, std::string id, ADM_pfs_context_t ctx); ADM_storage_t to_rpc_type() const final; context m_ctx; pfs_storage(enum storage::type type, std::string id, ADM_pfs_context_t ctx); pfs_storage(pfs_storage&&) noexcept = default; pfs_storage& operator=(pfs_storage&&) noexcept = default; ~pfs_storage() override; std::shared_ptr<storage::ctx> context() const final; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct job_requirements { Loading @@ -170,12 +232,25 @@ struct job_requirements { explicit job_requirements(ADM_job_requirements_t reqs); ADM_job_requirements_t to_rpc_type() const; std::vector<admire::dataset> m_inputs; std::vector<admire::dataset> m_outputs; std::unique_ptr<admire::storage> m_storage; job_requirements(const job_requirements&) noexcept; job_requirements(job_requirements&&) noexcept; job_requirements& operator=(const job_requirements&) noexcept; job_requirements& operator=(job_requirements&&) noexcept; ~job_requirements(); std::vector<admire::dataset> inputs() const; std::vector<admire::dataset> outputs() const; std::shared_ptr<admire::storage> storage() const; private: class impl; std::unique_ptr<impl> m_pimpl; }; } // namespace admire Loading src/lib/types.cpp +351 −113 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
src/lib/admire.cpp +46 −46 Original line number Diff line number Diff line Loading @@ -201,9 +201,9 @@ update_job(const server& srv, const job& job, const job_requirements& reqs) { (void) job; (void) reqs; 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_update_job(...)"); Loading @@ -226,9 +226,9 @@ remove_job(const server& srv, const job& job) { (void) srv; (void) job; 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_remove_job(...)"); Loading @@ -254,9 +254,9 @@ register_adhoc_storage(const server& srv, ADM_job_t job, (void) ctx; (void) adhoc_storage; 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_register_adhoc_storage(...)"); Loading @@ -282,9 +282,9 @@ update_adhoc_storage(const server& srv, ADM_job_t job, ADM_adhoc_context_t ctx, (void) ctx; (void) adhoc_storage; 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_update_adhoc_storage(...)"); Loading @@ -309,9 +309,9 @@ remove_adhoc_storage(const server& srv, ADM_job_t job, (void) job; (void) adhoc_storage; 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_remove_adhoc_storage(...)"); Loading @@ -336,9 +336,9 @@ deploy_adhoc_storage(const server& srv, ADM_job_t job, (void) job; (void) adhoc_storage; 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_deploy_adhoc_storage(...)"); Loading @@ -364,9 +364,9 @@ register_pfs_storage(const server& srv, ADM_job_t job, ADM_pfs_context_t ctx, (void) ctx; (void) pfs_storage; 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_register_pfs_storage(...)"); Loading @@ -392,9 +392,9 @@ update_pfs_storage(const server& srv, ADM_job_t job, ADM_pfs_context_t ctx, (void) ctx; (void) pfs_storage; 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_update_pfs_storage(...)"); Loading @@ -419,9 +419,9 @@ remove_pfs_storage(const server& srv, ADM_job_t job, (void) job; (void) pfs_storage; 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_remove_pfs_storage(...)"); Loading Loading @@ -451,9 +451,9 @@ transfer_dataset(const server& srv, ADM_job_t job, ADM_dataset_t** sources, (void) mapping; (void) transfer; 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_transfer_dataset(...)"); Loading @@ -479,9 +479,9 @@ set_dataset_information(const server& srv, ADM_job_t job, ADM_dataset_t target, (void) target; (void) info; 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_set_dataset_information(...)"); Loading @@ -507,9 +507,9 @@ set_io_resources(const server& srv, ADM_job_t job, ADM_storage_t tier, (void) tier; (void) resources; 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_set_io_resources(...)"); Loading @@ -535,9 +535,9 @@ get_transfer_priority(const server& srv, ADM_job_t job, ADM_transfer_t transfer, (void) transfer; (void) priority; 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_get_transfer_priority(...)"); Loading @@ -563,9 +563,9 @@ set_transfer_priority(const server& srv, ADM_job_t job, ADM_transfer_t transfer, (void) transfer; (void) incr; 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_set_transfer_priority(...)"); Loading @@ -589,9 +589,9 @@ cancel_transfer(const server& srv, ADM_job_t job, ADM_transfer_t transfer) { (void) job; (void) transfer; 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_cancel_transfer(...)"); Loading @@ -617,9 +617,9 @@ get_pending_transfers(const server& srv, ADM_job_t job, (void) job; (void) pending_transfers; 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_get_pending_transfers(...)"); Loading @@ -646,9 +646,9 @@ set_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, (void) entity; (void) limit; 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_set_qos_constraints(...)"); Loading @@ -675,9 +675,9 @@ get_qos_constraints(const server& srv, ADM_job_t job, ADM_qos_entity_t entity, (void) entity; (void) limits; 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_get_qos_constraints(...)"); Loading Loading @@ -705,9 +705,9 @@ define_data_operation(const server& srv, ADM_job_t job, const char* path, (void) op; (void) args; 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_define_data_operation(...)"); Loading Loading @@ -736,9 +736,9 @@ connect_data_operation(const server& srv, ADM_job_t job, ADM_dataset_t input, (void) should_stream; (void) args; 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_connect_data_operation(...)"); Loading Loading @@ -766,9 +766,9 @@ finalize_data_operation(const server& srv, ADM_job_t job, (void) op; (void) status; 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_finalize_data_operation(...)"); Loading Loading @@ -797,9 +797,9 @@ link_transfer_to_data_operation(const server& srv, ADM_job_t job, (void) should_stream; (void) args; 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_link_transfer_to_data_operation(...)"); Loading @@ -824,9 +824,9 @@ get_statistics(const server& srv, ADM_job_t job, ADM_job_stats_t** stats) { (void) job; (void) stats; 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_get_statistics(...)"); Loading
src/lib/admire_types.hpp +126 −51 Original line number Diff line number Diff line Loading @@ -40,31 +40,62 @@ using job_id = std::uint64_t; struct server { server(std::string protocol, std::string address); explicit server(const ADM_server_t& srv); server(server&&) noexcept; server& operator=(server&&) noexcept; ~server(); std::string m_protocol; std::string m_address; std::string protocol() const; std::string address() const; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct job { explicit job(job_id id); explicit job(ADM_job_t job); job_id m_id; job(const job&) noexcept; job(job&&) noexcept; job& operator=(job&&) noexcept; job& operator=(const job&) noexcept; ~job(); job_id id() const; [[nodiscard]] ADM_job_t to_ctype() const; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct dataset { explicit dataset(std::string id) : m_id(std::move(id)) {} explicit dataset(std::string id); explicit dataset(ADM_dataset_t dataset); dataset(const dataset&) noexcept; dataset(dataset&&) noexcept; dataset& operator=(const dataset&) noexcept; dataset& operator=(dataset&&) noexcept; ~dataset(); std::string to_string() const { return "foo"; } id() const; std::string m_id; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct storage { Loading @@ -78,15 +109,25 @@ struct storage { gpfs = ADM_STORAGE_GPFS }; struct ctx { virtual ~ctx() = default; }; storage(storage::type type, std::string id); virtual ~storage() = default; virtual ADM_storage_t to_rpc_type() const = 0; std::string id() const; type type() const; virtual std::shared_ptr<ctx> context() const = 0; protected: std::string m_id; type m_type; enum type m_type; }; struct adhoc_storage : public storage { Loading @@ -104,59 +145,80 @@ struct adhoc_storage : public storage { read_write = ADM_ADHOC_ACCESS_RDWR, }; struct context { struct ctx : storage::ctx { context(execution_mode exec_mode, access_type access_type, ctx(execution_mode exec_mode, access_type access_type, std::uint32_t nodes, std::uint32_t walltime, bool should_flush); explicit context(ADM_adhoc_context_t ctx); explicit ctx(ADM_adhoc_context_t ctx); ADM_adhoc_context_t to_rpc_type() const; execution_mode exec_mode() const; enum access_type access_type() const; std::uint32_t nodes() const; std::uint32_t walltime() const; bool should_flush() const; private: execution_mode m_exec_mode; access_type m_access_type; enum access_type m_access_type; std::uint32_t m_nodes; std::uint32_t m_walltime; bool m_should_flush; }; adhoc_storage(storage::type type, std::string id, execution_mode exec_mode, access_type access_type, std::uint32_t nodes, std::uint32_t walltime, bool should_flush); adhoc_storage(storage::type type, std::string id, ADM_adhoc_context_t ctx); ADM_storage_t to_rpc_type() const final; context m_ctx; adhoc_storage(enum storage::type type, std::string id, execution_mode exec_mode, access_type access_type, std::uint32_t nodes, std::uint32_t walltime, bool should_flush); adhoc_storage(enum storage::type type, std::string id, ADM_adhoc_context_t ctx); adhoc_storage(adhoc_storage&&) noexcept = default; adhoc_storage& operator=(adhoc_storage&&) noexcept = default; ~adhoc_storage() override; std::shared_ptr<storage::ctx> context() const final; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct pfs_storage : public storage { struct context { struct ctx : storage::ctx { explicit context(std::filesystem::path mount_point); explicit ctx(std::filesystem::path mount_point); explicit context(ADM_pfs_context_t ctx); explicit ctx(ADM_pfs_context_t ctx); ADM_pfs_context_t to_rpc_type() const; std::filesystem::path mount_point() const; private: std::filesystem::path m_mount_point; }; pfs_storage(storage::type type, std::string id, pfs_storage(enum storage::type type, std::string id, std::filesystem::path mount_point); pfs_storage(storage::type type, std::string id, ADM_pfs_context_t ctx); ADM_storage_t to_rpc_type() const final; context m_ctx; pfs_storage(enum storage::type type, std::string id, ADM_pfs_context_t ctx); pfs_storage(pfs_storage&&) noexcept = default; pfs_storage& operator=(pfs_storage&&) noexcept = default; ~pfs_storage() override; std::shared_ptr<storage::ctx> context() const final; private: class impl; std::unique_ptr<impl> m_pimpl; }; struct job_requirements { Loading @@ -170,12 +232,25 @@ struct job_requirements { explicit job_requirements(ADM_job_requirements_t reqs); ADM_job_requirements_t to_rpc_type() const; std::vector<admire::dataset> m_inputs; std::vector<admire::dataset> m_outputs; std::unique_ptr<admire::storage> m_storage; job_requirements(const job_requirements&) noexcept; job_requirements(job_requirements&&) noexcept; job_requirements& operator=(const job_requirements&) noexcept; job_requirements& operator=(job_requirements&&) noexcept; ~job_requirements(); std::vector<admire::dataset> inputs() const; std::vector<admire::dataset> outputs() const; std::shared_ptr<admire::storage> storage() const; private: class impl; std::unique_ptr<impl> m_pimpl; }; } // namespace admire Loading
src/lib/types.cpp +351 −113 File changed.Preview size limit exceeded, changes collapsed. Show changes