Loading src/lib/detail/impl.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -239,7 +239,8 @@ register_adhoc_storage(const server& srv, const std::string& name, return tl::make_unexpected(ec); } return scord::adhoc_storage{type, name, resp.value(), ctx}; return scord::adhoc_storage{type, name, resp.value(), ctx, resources}; } } Loading src/lib/scord/types.h +3 −1 Original line number Diff line number Diff line Loading @@ -429,11 +429,13 @@ ADM_dataset_list_destroy(ADM_dataset_list_t list); * @param[in] adhoc_ctx Some specific context information for the storage * tier or NULL if none is required. For instance, an adhoc storage system may * find it useful to provide an ADM_adhoc_context_t describing the instance. * @param[in] adhoc_resources The adhoc resources for this instance. * @return A valid ADM_ADHOC_STORAGE if successful, or NULL in case of failure. */ ADM_adhoc_storage_t ADM_adhoc_storage_create(const char* name, ADM_adhoc_storage_type_t type, uint64_t id, ADM_adhoc_context_t adhoc_ctx); uint64_t id, ADM_adhoc_context_t adhoc_ctx, ADM_adhoc_resources_t adhoc_resources); /** * Destroy an ADM_ADHOC_STORAGE created by ADM_adhoc_storage_destroy(). Loading src/lib/scord/types.hpp +5 −1 Original line number Diff line number Diff line Loading @@ -255,7 +255,8 @@ struct adhoc_storage { explicit adhoc_storage(ADM_adhoc_storage_t storage); explicit operator ADM_adhoc_storage_t() const; adhoc_storage(enum adhoc_storage::type type, std::string name, std::uint64_t id, const scord::adhoc_storage::ctx& ctx); std::uint64_t id, const scord::adhoc_storage::ctx& ctx, adhoc_storage::resources resources); adhoc_storage(const adhoc_storage& other) noexcept; adhoc_storage(adhoc_storage&&) noexcept; Loading @@ -274,6 +275,9 @@ struct adhoc_storage { adhoc_storage::ctx context() const; adhoc_storage::resources get_resources() const; void update(scord::adhoc_storage::ctx new_ctx); Loading src/lib/types.c +5 −2 Original line number Diff line number Diff line Loading @@ -430,7 +430,8 @@ ADM_dataset_list_destroy(ADM_dataset_list_t list) { ADM_adhoc_storage_t ADM_adhoc_storage_create(const char* name, ADM_adhoc_storage_type_t type, uint64_t id, ADM_adhoc_context_t adhoc_ctx) { uint64_t id, ADM_adhoc_context_t adhoc_ctx, ADM_adhoc_resources_t adhoc_resources) { struct adm_adhoc_storage* adm_adhoc_storage = (struct adm_adhoc_storage*) malloc(sizeof(*adm_adhoc_storage)); Loading Loading @@ -466,6 +467,8 @@ ADM_adhoc_storage_create(const char* name, ADM_adhoc_storage_type_t type, memcpy(adm_adhoc_storage->s_adhoc_ctx, adhoc_ctx, sizeof(*adhoc_ctx)); adm_adhoc_storage->s_resources = adhoc_resources; return adm_adhoc_storage; cleanup_on_error: Loading Loading @@ -824,7 +827,7 @@ ADM_job_requirements_create(ADM_dataset_t inputs[], size_t inputs_len, adm_job_reqs->r_adhoc_storage = ADM_adhoc_storage_create( adhoc_storage->s_name, adhoc_storage->s_type, adhoc_storage->s_id, adhoc_storage->s_adhoc_ctx); adhoc_storage->s_adhoc_ctx, adhoc_storage->s_resources); return adm_job_reqs; Loading src/lib/types.cpp +27 −12 Original line number Diff line number Diff line Loading @@ -585,9 +585,10 @@ class adhoc_storage::impl { public: impl() = default; explicit impl(enum adhoc_storage::type type, std::string name, std::uint64_t id, adhoc_storage::ctx ctx) std::uint64_t id, adhoc_storage::ctx ctx, struct adhoc_storage::resources resources) : m_type(type), m_name(std::move(name)), m_id(id), m_ctx(std::move(ctx)) {} m_ctx(std::move(ctx)), m_resources(std::move(resources)) {} impl(const impl& rhs) = default; impl(impl&& rhs) = default; impl& Loading Loading @@ -616,6 +617,11 @@ public: return m_ctx; } struct adhoc_storage::resources resources() const { return m_resources; }; void update(adhoc_storage::ctx new_ctx) { m_ctx = std::move(new_ctx); Loading Loading @@ -645,6 +651,7 @@ private: std::string m_name; std::uint64_t m_id; adhoc_storage::ctx m_ctx; struct adhoc_storage::resources m_resources; }; adhoc_storage::adhoc_storage() = default; Loading @@ -652,29 +659,32 @@ adhoc_storage::adhoc_storage() = default; adhoc_storage::adhoc_storage(enum adhoc_storage::type type, std::string name, std::uint64_t id, execution_mode exec_mode, access_type access_type, adhoc_storage::resources res, struct adhoc_storage::resources res, std::uint32_t walltime, bool should_flush) : m_pimpl(std::make_unique<impl>( type, std::move(name), id, adhoc_storage::ctx{exec_mode, access_type, std::move(res), walltime, should_flush})) {} : m_pimpl(std::make_unique<impl>(type, std::move(name), id, adhoc_storage::ctx{exec_mode, access_type, walltime, should_flush}, std::move(res))) {} adhoc_storage::adhoc_storage(ADM_adhoc_storage_t st) : m_pimpl(std::make_unique<impl>( static_cast<enum adhoc_storage::type>(st->s_type), st->s_name, st->s_id, adhoc_storage::ctx{st->s_adhoc_ctx})) {} st->s_id, adhoc_storage::ctx{st->s_adhoc_ctx}, adhoc_storage::resources{st->s_resources})) {} adhoc_storage::operator ADM_adhoc_storage_t() const { return ADM_adhoc_storage_create( m_pimpl->name().c_str(), static_cast<ADM_adhoc_storage_type_t>(m_pimpl->type()), m_pimpl->id(), static_cast<ADM_adhoc_context_t>(m_pimpl->context())); m_pimpl->id(), static_cast<ADM_adhoc_context_t>(m_pimpl->context()), static_cast<ADM_adhoc_resources_t>(m_pimpl->resources())); } adhoc_storage::adhoc_storage(enum adhoc_storage::type type, std::string name, std::uint64_t id, const adhoc_storage::ctx& ctx) : m_pimpl(std::make_unique<impl>(type, std::move(name), id, ctx)) {} std::uint64_t id, const adhoc_storage::ctx& ctx, adhoc_storage::resources resources) : m_pimpl(std::make_unique<impl>(type, std::move(name), id, ctx, std::move(resources))) {} adhoc_storage::adhoc_storage(const adhoc_storage& other) noexcept : m_pimpl(std::make_unique<impl>(*other.m_pimpl)) {} Loading Loading @@ -710,6 +720,11 @@ adhoc_storage::context() const { return m_pimpl->context(); } adhoc_storage::resources adhoc_storage::get_resources() const { return m_pimpl->resources(); } void adhoc_storage::update(scord::adhoc_storage::ctx new_ctx) { return m_pimpl->update(std::move(new_ctx)); Loading Loading
src/lib/detail/impl.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -239,7 +239,8 @@ register_adhoc_storage(const server& srv, const std::string& name, return tl::make_unexpected(ec); } return scord::adhoc_storage{type, name, resp.value(), ctx}; return scord::adhoc_storage{type, name, resp.value(), ctx, resources}; } } Loading
src/lib/scord/types.h +3 −1 Original line number Diff line number Diff line Loading @@ -429,11 +429,13 @@ ADM_dataset_list_destroy(ADM_dataset_list_t list); * @param[in] adhoc_ctx Some specific context information for the storage * tier or NULL if none is required. For instance, an adhoc storage system may * find it useful to provide an ADM_adhoc_context_t describing the instance. * @param[in] adhoc_resources The adhoc resources for this instance. * @return A valid ADM_ADHOC_STORAGE if successful, or NULL in case of failure. */ ADM_adhoc_storage_t ADM_adhoc_storage_create(const char* name, ADM_adhoc_storage_type_t type, uint64_t id, ADM_adhoc_context_t adhoc_ctx); uint64_t id, ADM_adhoc_context_t adhoc_ctx, ADM_adhoc_resources_t adhoc_resources); /** * Destroy an ADM_ADHOC_STORAGE created by ADM_adhoc_storage_destroy(). Loading
src/lib/scord/types.hpp +5 −1 Original line number Diff line number Diff line Loading @@ -255,7 +255,8 @@ struct adhoc_storage { explicit adhoc_storage(ADM_adhoc_storage_t storage); explicit operator ADM_adhoc_storage_t() const; adhoc_storage(enum adhoc_storage::type type, std::string name, std::uint64_t id, const scord::adhoc_storage::ctx& ctx); std::uint64_t id, const scord::adhoc_storage::ctx& ctx, adhoc_storage::resources resources); adhoc_storage(const adhoc_storage& other) noexcept; adhoc_storage(adhoc_storage&&) noexcept; Loading @@ -274,6 +275,9 @@ struct adhoc_storage { adhoc_storage::ctx context() const; adhoc_storage::resources get_resources() const; void update(scord::adhoc_storage::ctx new_ctx); Loading
src/lib/types.c +5 −2 Original line number Diff line number Diff line Loading @@ -430,7 +430,8 @@ ADM_dataset_list_destroy(ADM_dataset_list_t list) { ADM_adhoc_storage_t ADM_adhoc_storage_create(const char* name, ADM_adhoc_storage_type_t type, uint64_t id, ADM_adhoc_context_t adhoc_ctx) { uint64_t id, ADM_adhoc_context_t adhoc_ctx, ADM_adhoc_resources_t adhoc_resources) { struct adm_adhoc_storage* adm_adhoc_storage = (struct adm_adhoc_storage*) malloc(sizeof(*adm_adhoc_storage)); Loading Loading @@ -466,6 +467,8 @@ ADM_adhoc_storage_create(const char* name, ADM_adhoc_storage_type_t type, memcpy(adm_adhoc_storage->s_adhoc_ctx, adhoc_ctx, sizeof(*adhoc_ctx)); adm_adhoc_storage->s_resources = adhoc_resources; return adm_adhoc_storage; cleanup_on_error: Loading Loading @@ -824,7 +827,7 @@ ADM_job_requirements_create(ADM_dataset_t inputs[], size_t inputs_len, adm_job_reqs->r_adhoc_storage = ADM_adhoc_storage_create( adhoc_storage->s_name, adhoc_storage->s_type, adhoc_storage->s_id, adhoc_storage->s_adhoc_ctx); adhoc_storage->s_adhoc_ctx, adhoc_storage->s_resources); return adm_job_reqs; Loading
src/lib/types.cpp +27 −12 Original line number Diff line number Diff line Loading @@ -585,9 +585,10 @@ class adhoc_storage::impl { public: impl() = default; explicit impl(enum adhoc_storage::type type, std::string name, std::uint64_t id, adhoc_storage::ctx ctx) std::uint64_t id, adhoc_storage::ctx ctx, struct adhoc_storage::resources resources) : m_type(type), m_name(std::move(name)), m_id(id), m_ctx(std::move(ctx)) {} m_ctx(std::move(ctx)), m_resources(std::move(resources)) {} impl(const impl& rhs) = default; impl(impl&& rhs) = default; impl& Loading Loading @@ -616,6 +617,11 @@ public: return m_ctx; } struct adhoc_storage::resources resources() const { return m_resources; }; void update(adhoc_storage::ctx new_ctx) { m_ctx = std::move(new_ctx); Loading Loading @@ -645,6 +651,7 @@ private: std::string m_name; std::uint64_t m_id; adhoc_storage::ctx m_ctx; struct adhoc_storage::resources m_resources; }; adhoc_storage::adhoc_storage() = default; Loading @@ -652,29 +659,32 @@ adhoc_storage::adhoc_storage() = default; adhoc_storage::adhoc_storage(enum adhoc_storage::type type, std::string name, std::uint64_t id, execution_mode exec_mode, access_type access_type, adhoc_storage::resources res, struct adhoc_storage::resources res, std::uint32_t walltime, bool should_flush) : m_pimpl(std::make_unique<impl>( type, std::move(name), id, adhoc_storage::ctx{exec_mode, access_type, std::move(res), walltime, should_flush})) {} : m_pimpl(std::make_unique<impl>(type, std::move(name), id, adhoc_storage::ctx{exec_mode, access_type, walltime, should_flush}, std::move(res))) {} adhoc_storage::adhoc_storage(ADM_adhoc_storage_t st) : m_pimpl(std::make_unique<impl>( static_cast<enum adhoc_storage::type>(st->s_type), st->s_name, st->s_id, adhoc_storage::ctx{st->s_adhoc_ctx})) {} st->s_id, adhoc_storage::ctx{st->s_adhoc_ctx}, adhoc_storage::resources{st->s_resources})) {} adhoc_storage::operator ADM_adhoc_storage_t() const { return ADM_adhoc_storage_create( m_pimpl->name().c_str(), static_cast<ADM_adhoc_storage_type_t>(m_pimpl->type()), m_pimpl->id(), static_cast<ADM_adhoc_context_t>(m_pimpl->context())); m_pimpl->id(), static_cast<ADM_adhoc_context_t>(m_pimpl->context()), static_cast<ADM_adhoc_resources_t>(m_pimpl->resources())); } adhoc_storage::adhoc_storage(enum adhoc_storage::type type, std::string name, std::uint64_t id, const adhoc_storage::ctx& ctx) : m_pimpl(std::make_unique<impl>(type, std::move(name), id, ctx)) {} std::uint64_t id, const adhoc_storage::ctx& ctx, adhoc_storage::resources resources) : m_pimpl(std::make_unique<impl>(type, std::move(name), id, ctx, std::move(resources))) {} adhoc_storage::adhoc_storage(const adhoc_storage& other) noexcept : m_pimpl(std::make_unique<impl>(*other.m_pimpl)) {} Loading Loading @@ -710,6 +720,11 @@ adhoc_storage::context() const { return m_pimpl->context(); } adhoc_storage::resources adhoc_storage::get_resources() const { return m_pimpl->resources(); } void adhoc_storage::update(scord::adhoc_storage::ctx new_ctx) { return m_pimpl->update(std::move(new_ctx)); Loading