Loading src/lib/scord/types.hpp +2 −2 Original line number Diff line number Diff line Loading @@ -128,8 +128,8 @@ using slurm_job_id = std::uint64_t; using transfer_id = std::uint64_t; namespace internal { struct job_info; struct adhoc_storage_info; struct job_metadata; struct adhoc_storage_metadata; } // namespace internal struct server { Loading src/scord/adhoc_storage_manager.hpp +9 −8 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ namespace scord { struct adhoc_storage_manager { tl::expected<std::shared_ptr<scord::internal::adhoc_storage_info>, tl::expected<std::shared_ptr<scord::internal::adhoc_storage_metadata>, scord::error_code> create(enum scord::adhoc_storage::type type, const std::string& name, const scord::adhoc_storage::ctx& ctx, Loading @@ -88,7 +88,8 @@ struct adhoc_storage_manager { if(const auto it = m_adhoc_storages.find(id); it == m_adhoc_storages.end()) { const auto& [it_adhoc, inserted] = m_adhoc_storages.emplace( id, std::make_shared<scord::internal::adhoc_storage_info>( id, std::make_shared<scord::internal::adhoc_storage_metadata>( ::generate_adhoc_uuid(type), scord::adhoc_storage{type, name, id, ctx, resources})); Loading Loading @@ -121,7 +122,7 @@ struct adhoc_storage_manager { return scord::error_code::no_such_entity; } tl::expected<std::shared_ptr<scord::internal::adhoc_storage_info>, tl::expected<std::shared_ptr<scord::internal::adhoc_storage_metadata>, scord::error_code> find(std::uint64_t id) { Loading Loading @@ -156,7 +157,7 @@ struct adhoc_storage_manager { scord::error_code add_client_info(std::uint64_t adhoc_id, std::shared_ptr<scord::internal::job_info> job_info) { std::shared_ptr<scord::internal::job_metadata> job_info) { if(auto am_result = find(adhoc_id); am_result.has_value()) { const auto adhoc_storage_info = am_result.value(); Loading @@ -181,7 +182,7 @@ struct adhoc_storage_manager { private: mutable abt::shared_mutex m_adhoc_storages_mutex; std::unordered_map<std::uint64_t, std::shared_ptr<scord::internal::adhoc_storage_info>> std::shared_ptr<scord::internal::adhoc_storage_metadata>> m_adhoc_storages; }; Loading src/scord/internal_types.cpp +18 −18 Original line number Diff line number Diff line Loading @@ -29,48 +29,48 @@ namespace scord::internal { job_info::job_info(scord::job job, scord::job::resources resources, job_metadata::job_metadata(scord::job job, scord::job::resources resources, scord::job::requirements requirements) : m_job(std::move(job)), m_resources(std::move(resources)), m_requirements(std::move(requirements)) {} scord::job job_info::job() const { job_metadata::job() const { return m_job; } std::optional<scord::job::resources> job_info::resources() const { job_metadata::resources() const { return m_resources; } void job_info::update(scord::job::resources resources) { job_metadata::update(scord::job::resources resources) { m_resources = std::move(resources); } adhoc_storage_info::adhoc_storage_info(std::string uuid, scord::adhoc_storage adhoc_storage) adhoc_storage_metadata::adhoc_storage_metadata( std::string uuid, scord::adhoc_storage adhoc_storage) : m_uuid(std::move(uuid)), m_adhoc_storage(std::move(adhoc_storage)) {} scord::adhoc_storage const& adhoc_storage_info::adhoc_storage() const { adhoc_storage_metadata::adhoc_storage() const { return m_adhoc_storage; } std::string const& adhoc_storage_info::uuid() const { adhoc_storage_metadata::uuid() const { return m_uuid; } void adhoc_storage_info::update(scord::adhoc_storage::resources new_resources) { adhoc_storage_metadata::update(scord::adhoc_storage::resources new_resources) { m_adhoc_storage.update(std::move(new_resources)); } scord::error_code adhoc_storage_info::add_client_info( std::shared_ptr<scord::internal::job_info> job_info) { adhoc_storage_metadata::add_client_info( std::shared_ptr<scord::internal::job_metadata> job_info) { scord::abt::unique_lock lock(m_info_mutex); Loading @@ -86,27 +86,27 @@ adhoc_storage_info::add_client_info( } void adhoc_storage_info::remove_client_info() { adhoc_storage_metadata::remove_client_info() { scord::abt::unique_lock lock(m_info_mutex); m_client_info.reset(); } std::shared_ptr<scord::internal::job_info> adhoc_storage_info::client_info() const { std::shared_ptr<scord::internal::job_metadata> adhoc_storage_metadata::client_info() const { scord::abt::shared_lock lock(m_info_mutex); return m_client_info; } pfs_storage_info::pfs_storage_info(scord::pfs_storage pfs_storage) pfs_storage_metadata::pfs_storage_metadata(scord::pfs_storage pfs_storage) : m_pfs_storage(std::move(pfs_storage)) {} scord::pfs_storage pfs_storage_info::pfs_storage() const { pfs_storage_metadata::pfs_storage() const { return m_pfs_storage; } void pfs_storage_info::update(scord::pfs_storage::ctx pfs_context) { pfs_storage_metadata::update(scord::pfs_storage::ctx pfs_context) { m_pfs_storage.update(std::move(pfs_context)); } Loading src/scord/internal_types.hpp +12 −11 Original line number Diff line number Diff line Loading @@ -32,9 +32,9 @@ namespace scord::internal { struct job_info { struct job_metadata { job_info(scord::job job, scord::job::resources resources, job_metadata(scord::job job, scord::job::resources resources, scord::job::requirements requirements); scord::job Loading @@ -56,9 +56,10 @@ struct job_info { std::optional<scord::job::requirements> m_requirements; }; struct adhoc_storage_info { struct adhoc_storage_metadata { adhoc_storage_info(std::string uuid, scord::adhoc_storage adhoc_storage); adhoc_storage_metadata(std::string uuid, scord::adhoc_storage adhoc_storage); scord::adhoc_storage const& adhoc_storage() const; Loading @@ -70,23 +71,23 @@ struct adhoc_storage_info { update(scord::adhoc_storage::resources new_resources); scord::error_code add_client_info(std::shared_ptr<scord::internal::job_info> job_info); add_client_info(std::shared_ptr<scord::internal::job_metadata> job_info); void remove_client_info(); std::shared_ptr<scord::internal::job_info> std::shared_ptr<scord::internal::job_metadata> client_info() const; std::string m_uuid; scord::adhoc_storage m_adhoc_storage; std::shared_ptr<scord::internal::job_info> m_client_info; std::shared_ptr<scord::internal::job_metadata> m_client_info; mutable scord::abt::shared_mutex m_info_mutex; }; struct pfs_storage_info { struct pfs_storage_metadata { explicit pfs_storage_info(scord::pfs_storage pfs_storage); explicit pfs_storage_metadata(scord::pfs_storage pfs_storage); scord::pfs_storage pfs_storage() const; Loading @@ -95,7 +96,7 @@ struct pfs_storage_info { update(scord::pfs_storage::ctx pfs_context); scord::pfs_storage m_pfs_storage; std::shared_ptr<scord::internal::job_info> m_client_info; std::shared_ptr<scord::internal::job_metadata> m_client_info; }; } // namespace scord::internal Loading src/scord/job_manager.hpp +8 −5 Original line number Diff line number Diff line Loading @@ -38,7 +38,8 @@ namespace scord { struct job_manager { tl::expected<std::shared_ptr<scord::internal::job_info>, scord::error_code> tl::expected<std::shared_ptr<scord::internal::job_metadata>, scord::error_code> create(scord::slurm_job_id slurm_id, scord::job::resources job_resources, scord::job::requirements job_requirements) { Loading @@ -50,7 +51,7 @@ struct job_manager { if(const auto it = m_jobs.find(id); it == m_jobs.end()) { const auto& [it_job, inserted] = m_jobs.emplace( id, std::make_shared<scord::internal::job_info>( std::make_shared<scord::internal::job_metadata>( scord::job{id, slurm_id}, std::move(job_resources), std::move(job_requirements))); Loading Loading @@ -81,7 +82,8 @@ struct job_manager { return scord::error_code::no_such_entity; } tl::expected<std::shared_ptr<scord::internal::job_info>, scord::error_code> tl::expected<std::shared_ptr<scord::internal::job_metadata>, scord::error_code> find(scord::job_id id) { abt::shared_lock lock(m_jobs_mutex); Loading @@ -94,7 +96,8 @@ struct job_manager { return tl::make_unexpected(scord::error_code::no_such_entity); } tl::expected<std::shared_ptr<scord::internal::job_info>, scord::error_code> tl::expected<std::shared_ptr<scord::internal::job_metadata>, scord::error_code> remove(scord::job_id id) { abt::unique_lock lock(m_jobs_mutex); Loading @@ -112,7 +115,7 @@ struct job_manager { private: mutable abt::shared_mutex m_jobs_mutex; std::unordered_map<scord::job_id, std::shared_ptr<scord::internal::job_info>> std::shared_ptr<scord::internal::job_metadata>> m_jobs; }; Loading Loading
src/lib/scord/types.hpp +2 −2 Original line number Diff line number Diff line Loading @@ -128,8 +128,8 @@ using slurm_job_id = std::uint64_t; using transfer_id = std::uint64_t; namespace internal { struct job_info; struct adhoc_storage_info; struct job_metadata; struct adhoc_storage_metadata; } // namespace internal struct server { Loading
src/scord/adhoc_storage_manager.hpp +9 −8 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ namespace scord { struct adhoc_storage_manager { tl::expected<std::shared_ptr<scord::internal::adhoc_storage_info>, tl::expected<std::shared_ptr<scord::internal::adhoc_storage_metadata>, scord::error_code> create(enum scord::adhoc_storage::type type, const std::string& name, const scord::adhoc_storage::ctx& ctx, Loading @@ -88,7 +88,8 @@ struct adhoc_storage_manager { if(const auto it = m_adhoc_storages.find(id); it == m_adhoc_storages.end()) { const auto& [it_adhoc, inserted] = m_adhoc_storages.emplace( id, std::make_shared<scord::internal::adhoc_storage_info>( id, std::make_shared<scord::internal::adhoc_storage_metadata>( ::generate_adhoc_uuid(type), scord::adhoc_storage{type, name, id, ctx, resources})); Loading Loading @@ -121,7 +122,7 @@ struct adhoc_storage_manager { return scord::error_code::no_such_entity; } tl::expected<std::shared_ptr<scord::internal::adhoc_storage_info>, tl::expected<std::shared_ptr<scord::internal::adhoc_storage_metadata>, scord::error_code> find(std::uint64_t id) { Loading Loading @@ -156,7 +157,7 @@ struct adhoc_storage_manager { scord::error_code add_client_info(std::uint64_t adhoc_id, std::shared_ptr<scord::internal::job_info> job_info) { std::shared_ptr<scord::internal::job_metadata> job_info) { if(auto am_result = find(adhoc_id); am_result.has_value()) { const auto adhoc_storage_info = am_result.value(); Loading @@ -181,7 +182,7 @@ struct adhoc_storage_manager { private: mutable abt::shared_mutex m_adhoc_storages_mutex; std::unordered_map<std::uint64_t, std::shared_ptr<scord::internal::adhoc_storage_info>> std::shared_ptr<scord::internal::adhoc_storage_metadata>> m_adhoc_storages; }; Loading
src/scord/internal_types.cpp +18 −18 Original line number Diff line number Diff line Loading @@ -29,48 +29,48 @@ namespace scord::internal { job_info::job_info(scord::job job, scord::job::resources resources, job_metadata::job_metadata(scord::job job, scord::job::resources resources, scord::job::requirements requirements) : m_job(std::move(job)), m_resources(std::move(resources)), m_requirements(std::move(requirements)) {} scord::job job_info::job() const { job_metadata::job() const { return m_job; } std::optional<scord::job::resources> job_info::resources() const { job_metadata::resources() const { return m_resources; } void job_info::update(scord::job::resources resources) { job_metadata::update(scord::job::resources resources) { m_resources = std::move(resources); } adhoc_storage_info::adhoc_storage_info(std::string uuid, scord::adhoc_storage adhoc_storage) adhoc_storage_metadata::adhoc_storage_metadata( std::string uuid, scord::adhoc_storage adhoc_storage) : m_uuid(std::move(uuid)), m_adhoc_storage(std::move(adhoc_storage)) {} scord::adhoc_storage const& adhoc_storage_info::adhoc_storage() const { adhoc_storage_metadata::adhoc_storage() const { return m_adhoc_storage; } std::string const& adhoc_storage_info::uuid() const { adhoc_storage_metadata::uuid() const { return m_uuid; } void adhoc_storage_info::update(scord::adhoc_storage::resources new_resources) { adhoc_storage_metadata::update(scord::adhoc_storage::resources new_resources) { m_adhoc_storage.update(std::move(new_resources)); } scord::error_code adhoc_storage_info::add_client_info( std::shared_ptr<scord::internal::job_info> job_info) { adhoc_storage_metadata::add_client_info( std::shared_ptr<scord::internal::job_metadata> job_info) { scord::abt::unique_lock lock(m_info_mutex); Loading @@ -86,27 +86,27 @@ adhoc_storage_info::add_client_info( } void adhoc_storage_info::remove_client_info() { adhoc_storage_metadata::remove_client_info() { scord::abt::unique_lock lock(m_info_mutex); m_client_info.reset(); } std::shared_ptr<scord::internal::job_info> adhoc_storage_info::client_info() const { std::shared_ptr<scord::internal::job_metadata> adhoc_storage_metadata::client_info() const { scord::abt::shared_lock lock(m_info_mutex); return m_client_info; } pfs_storage_info::pfs_storage_info(scord::pfs_storage pfs_storage) pfs_storage_metadata::pfs_storage_metadata(scord::pfs_storage pfs_storage) : m_pfs_storage(std::move(pfs_storage)) {} scord::pfs_storage pfs_storage_info::pfs_storage() const { pfs_storage_metadata::pfs_storage() const { return m_pfs_storage; } void pfs_storage_info::update(scord::pfs_storage::ctx pfs_context) { pfs_storage_metadata::update(scord::pfs_storage::ctx pfs_context) { m_pfs_storage.update(std::move(pfs_context)); } Loading
src/scord/internal_types.hpp +12 −11 Original line number Diff line number Diff line Loading @@ -32,9 +32,9 @@ namespace scord::internal { struct job_info { struct job_metadata { job_info(scord::job job, scord::job::resources resources, job_metadata(scord::job job, scord::job::resources resources, scord::job::requirements requirements); scord::job Loading @@ -56,9 +56,10 @@ struct job_info { std::optional<scord::job::requirements> m_requirements; }; struct adhoc_storage_info { struct adhoc_storage_metadata { adhoc_storage_info(std::string uuid, scord::adhoc_storage adhoc_storage); adhoc_storage_metadata(std::string uuid, scord::adhoc_storage adhoc_storage); scord::adhoc_storage const& adhoc_storage() const; Loading @@ -70,23 +71,23 @@ struct adhoc_storage_info { update(scord::adhoc_storage::resources new_resources); scord::error_code add_client_info(std::shared_ptr<scord::internal::job_info> job_info); add_client_info(std::shared_ptr<scord::internal::job_metadata> job_info); void remove_client_info(); std::shared_ptr<scord::internal::job_info> std::shared_ptr<scord::internal::job_metadata> client_info() const; std::string m_uuid; scord::adhoc_storage m_adhoc_storage; std::shared_ptr<scord::internal::job_info> m_client_info; std::shared_ptr<scord::internal::job_metadata> m_client_info; mutable scord::abt::shared_mutex m_info_mutex; }; struct pfs_storage_info { struct pfs_storage_metadata { explicit pfs_storage_info(scord::pfs_storage pfs_storage); explicit pfs_storage_metadata(scord::pfs_storage pfs_storage); scord::pfs_storage pfs_storage() const; Loading @@ -95,7 +96,7 @@ struct pfs_storage_info { update(scord::pfs_storage::ctx pfs_context); scord::pfs_storage m_pfs_storage; std::shared_ptr<scord::internal::job_info> m_client_info; std::shared_ptr<scord::internal::job_metadata> m_client_info; }; } // namespace scord::internal Loading
src/scord/job_manager.hpp +8 −5 Original line number Diff line number Diff line Loading @@ -38,7 +38,8 @@ namespace scord { struct job_manager { tl::expected<std::shared_ptr<scord::internal::job_info>, scord::error_code> tl::expected<std::shared_ptr<scord::internal::job_metadata>, scord::error_code> create(scord::slurm_job_id slurm_id, scord::job::resources job_resources, scord::job::requirements job_requirements) { Loading @@ -50,7 +51,7 @@ struct job_manager { if(const auto it = m_jobs.find(id); it == m_jobs.end()) { const auto& [it_job, inserted] = m_jobs.emplace( id, std::make_shared<scord::internal::job_info>( std::make_shared<scord::internal::job_metadata>( scord::job{id, slurm_id}, std::move(job_resources), std::move(job_requirements))); Loading Loading @@ -81,7 +82,8 @@ struct job_manager { return scord::error_code::no_such_entity; } tl::expected<std::shared_ptr<scord::internal::job_info>, scord::error_code> tl::expected<std::shared_ptr<scord::internal::job_metadata>, scord::error_code> find(scord::job_id id) { abt::shared_lock lock(m_jobs_mutex); Loading @@ -94,7 +96,8 @@ struct job_manager { return tl::make_unexpected(scord::error_code::no_such_entity); } tl::expected<std::shared_ptr<scord::internal::job_info>, scord::error_code> tl::expected<std::shared_ptr<scord::internal::job_metadata>, scord::error_code> remove(scord::job_id id) { abt::unique_lock lock(m_jobs_mutex); Loading @@ -112,7 +115,7 @@ struct job_manager { private: mutable abt::shared_mutex m_jobs_mutex; std::unordered_map<scord::job_id, std::shared_ptr<scord::internal::job_info>> std::shared_ptr<scord::internal::job_metadata>> m_jobs; }; Loading