diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-27 11:42:36 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-27 11:42:36 +0100 |
| commit | f40fd3e7a4c5fd36c977ad5343de4fe7859cbbbe (patch) | |
| tree | e5021b8758c6fd9aa2a01ebca78e4cbae59eaf2b | |
| parent | e5ba738f72fe12d634b341dd6fdc58b078690c11 (diff) | |
Update db code
| -rw-r--r-- | src/base_tab/gamebase/GameBase.cpp | 13 | ||||
| -rw-r--r-- | src/base_tab/gamebase/GameBase.hpp | 10 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/base_tab/gamebase/GameBase.cpp b/src/base_tab/gamebase/GameBase.cpp new file mode 100644 index 0000000..e8f9a59 --- /dev/null +++ b/src/base_tab/gamebase/GameBase.cpp @@ -0,0 +1,13 @@ +#include "GameBase.hpp" +#include "PGNGameBase.hpp" + +std::shared_ptr<GameBase> OpenDatabase(const std::string &dbpath, bool createIfNotExist){ + wxFileName file(dbpath); + wxString ext = file.GetExt().Lower(); + if (ext == "pgn") { + if(createIfNotExist && !file.Exists()) + PGNGameBase::CreateDatabaseFile(dbpath); + return std::shared_ptr<GameBase>(new PGNGameBase(dbpath)); + } + return nullptr; +}
\ No newline at end of file diff --git a/src/base_tab/gamebase/GameBase.hpp b/src/base_tab/gamebase/GameBase.hpp index c87078d..008b36e 100644 --- a/src/base_tab/gamebase/GameBase.hpp +++ b/src/base_tab/gamebase/GameBase.hpp @@ -27,4 +27,12 @@ public: * @brief An additionnal static method is expected with the following signature: * static void CreateDatabaseFile(std::string path); */ -};
\ No newline at end of file +}; + +/** + * @brief Open a data + * + * @param dbpath + * @return std::shared_ptr<GameBase> + */ +std::shared_ptr<GameBase> OpenDatabase(const std::string &dbpath, bool createIfNotExist=true);
\ No newline at end of file |
