diff options
author | haslersn <sebastian.hasler@gmx.net> | 2019-06-10 03:59:03 +0200 |
---|---|---|
committer | haslersn <sebastian.hasler@gmx.net> | 2019-07-02 00:18:10 +0200 |
commit | f7f269e7860e8cae1d80e47a7744032717ddccc7 (patch) | |
tree | e38b89cc369fd17a4a9e30c9c7effc0fa6435773 | |
parent | a4d4f59b27e13bc59bbb8e98186ce2258cf943e4 (diff) |
database: Make database objects copyable
-rw-r--r-- | include/djinterop/enginelibrary/database.hpp | 6 | ||||
-rw-r--r-- | src/enginelibrary/database.cpp | 14 |
2 files changed, 16 insertions, 4 deletions
diff --git a/include/djinterop/enginelibrary/database.hpp b/include/djinterop/enginelibrary/database.hpp index 28207ce..196eaee 100644 --- a/include/djinterop/enginelibrary/database.hpp +++ b/include/djinterop/enginelibrary/database.hpp @@ -55,7 +55,7 @@ public: /** * \brief Copying is disallowed */ - database(const database &db) = delete; + database(const database &db); /** * \brief Destructor @@ -65,7 +65,7 @@ public: /** * \brief Copy assignment is disallowed */ - database &operator=(const database &db) = delete; + database &operator=(const database &db); /** * \brief Returns a `bool` indicating whether the database files exist on @@ -112,7 +112,7 @@ public: private: struct impl; - std::unique_ptr<impl> pimpl_; + std::shared_ptr<impl> pimpl_; }; /** diff --git a/src/enginelibrary/database.cpp b/src/enginelibrary/database.cpp index d6aaa7a..fd3df4a 100644 --- a/src/enginelibrary/database.cpp +++ b/src/enginelibrary/database.cpp @@ -93,14 +93,22 @@ struct database::impl schema_version version_; }; -database::database(const std::string &dir_path) : pimpl_{new impl{dir_path}} {} +database::database(const std::string &dir_path) + : pimpl_{std::make_shared<impl>(dir_path)} +{ +} + +database::database(const database &db) = default; database::~database() = default; +database &database::operator=(const database &db) = default; + bool database::exists() const { return pimpl_->exists(); } + bool database::is_supported() const { return pimpl_->is_supported(); @@ -115,18 +123,22 @@ std::string database::directory_path() const { return pimpl_->dir_path_; } + std::string database::music_db_path() const { return pimpl_->db_m_path_; } + std::string database::performance_db_path() const { return pimpl_->db_p_path_; } + std::string database::uuid() const { return pimpl_->uuid_; } + schema_version database::version() const { return pimpl_->version_; |