Commit 530b5377 authored by Alberto Miranda's avatar Alberto Miranda ♨️
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
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -176,8 +176,11 @@ struct adhoc_storage : public storage {
                  bool should_flush);
    adhoc_storage(enum storage::type type, std::string id,
                  ADM_adhoc_context_t ctx);
    adhoc_storage(const adhoc_storage& other) noexcept;
    adhoc_storage(adhoc_storage&&) noexcept = default;
    adhoc_storage&
    operator=(const adhoc_storage&) noexcept;
    adhoc_storage&
    operator=(adhoc_storage&&) noexcept = default;
    ~adhoc_storage() override;

@@ -207,8 +210,11 @@ struct pfs_storage : public storage {
    pfs_storage(enum storage::type type, std::string id,
                std::filesystem::path mount_point);
    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&
    operator=(const pfs_storage& other) noexcept;
    pfs_storage&
    operator=(pfs_storage&&) noexcept = default;
    ~pfs_storage() override;

+20 −0
Original line number Diff line number Diff line
@@ -924,6 +924,16 @@ adhoc_storage::adhoc_storage(enum storage::type type, std::string id,
    : storage(type, std::move(id)),
      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>
adhoc_storage::context() const {
    return std::make_shared<adhoc_storage::ctx>(m_pimpl->context());
@@ -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::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
pfs_storage::ctx::mount_point() const {
    return m_mount_point;