Skip to content
Snippets Groups Projects
Commit 530b5377 authored by Alberto Miranda's avatar Alberto Miranda :hotsprings:
Browse files

Merge branch...

Merge branch 'amiranda/52-missing-copy-constructor-and-assignment-operator-in-admire-adhoc_storage-and-admire-pfs_storage' into 'main'

Resolve "Missing copy constructor and assignment operator in admire::adhoc_storage and admire::pfs_storage"

Closes #52

See merge request !37
parents a1b71cb2 fa579d8b
No related branches found
No related tags found
1 merge request!37Resolve "Missing copy constructor and assignment operator in admire::adhoc_storage and admire::pfs_storage"
Pipeline #3079 passed
...@@ -176,8 +176,11 @@ struct adhoc_storage : public storage { ...@@ -176,8 +176,11 @@ struct adhoc_storage : public storage {
bool should_flush); bool should_flush);
adhoc_storage(enum storage::type type, std::string id, adhoc_storage(enum storage::type type, std::string id,
ADM_adhoc_context_t ctx); ADM_adhoc_context_t ctx);
adhoc_storage(const adhoc_storage& other) noexcept;
adhoc_storage(adhoc_storage&&) noexcept = default; adhoc_storage(adhoc_storage&&) noexcept = default;
adhoc_storage& adhoc_storage&
operator=(const adhoc_storage&) noexcept;
adhoc_storage&
operator=(adhoc_storage&&) noexcept = default; operator=(adhoc_storage&&) noexcept = default;
~adhoc_storage() override; ~adhoc_storage() override;
...@@ -207,8 +210,11 @@ struct pfs_storage : public storage { ...@@ -207,8 +210,11 @@ struct pfs_storage : public storage {
pfs_storage(enum storage::type type, std::string id, pfs_storage(enum storage::type type, std::string id,
std::filesystem::path mount_point); std::filesystem::path mount_point);
pfs_storage(enum storage::type type, std::string id, ADM_pfs_context_t ctx); pfs_storage(enum storage::type type, std::string id, ADM_pfs_context_t ctx);
pfs_storage(const pfs_storage& other) noexcept;
pfs_storage(pfs_storage&&) noexcept = default; pfs_storage(pfs_storage&&) noexcept = default;
pfs_storage& pfs_storage&
operator=(const pfs_storage& other) noexcept;
pfs_storage&
operator=(pfs_storage&&) noexcept = default; operator=(pfs_storage&&) noexcept = default;
~pfs_storage() override; ~pfs_storage() override;
......
...@@ -924,6 +924,16 @@ adhoc_storage::adhoc_storage(enum storage::type type, std::string id, ...@@ -924,6 +924,16 @@ adhoc_storage::adhoc_storage(enum storage::type type, std::string id,
: storage(type, std::move(id)), : storage(type, std::move(id)),
m_pimpl(std::make_unique<impl>(adhoc_storage::ctx{ctx})) {} m_pimpl(std::make_unique<impl>(adhoc_storage::ctx{ctx})) {}
adhoc_storage::adhoc_storage(const adhoc_storage& other) noexcept
: storage(other.m_type, other.m_id),
m_pimpl(std::make_unique<impl>(*other.m_pimpl)) {}
adhoc_storage&
adhoc_storage::operator=(const adhoc_storage& other) noexcept {
this->m_pimpl = std::make_unique<impl>(*other.m_pimpl);
return *this;
}
std::shared_ptr<storage::ctx> std::shared_ptr<storage::ctx>
adhoc_storage::context() const { adhoc_storage::context() const {
return std::make_shared<adhoc_storage::ctx>(m_pimpl->context()); return std::make_shared<adhoc_storage::ctx>(m_pimpl->context());
...@@ -936,6 +946,16 @@ pfs_storage::ctx::ctx(std::filesystem::path mount_point) ...@@ -936,6 +946,16 @@ pfs_storage::ctx::ctx(std::filesystem::path mount_point)
pfs_storage::ctx::ctx(ADM_pfs_context_t ctx) : pfs_storage::ctx(ctx->c_mount) {} pfs_storage::ctx::ctx(ADM_pfs_context_t ctx) : pfs_storage::ctx(ctx->c_mount) {}
pfs_storage::pfs_storage(const pfs_storage& other) noexcept
: storage(other.m_type, other.m_id),
m_pimpl(std::make_unique<impl>(*other.m_pimpl)) {}
pfs_storage&
pfs_storage::operator=(const pfs_storage& other) noexcept {
this->m_pimpl = std::make_unique<impl>(*other.m_pimpl);
return *this;
}
std::filesystem::path std::filesystem::path
pfs_storage::ctx::mount_point() const { pfs_storage::ctx::mount_point() const {
return m_mount_point; return m_mount_point;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment