Migrate to std::shared_ptr<GameBase>

This commit is contained in:
Loic Guegan 2022-02-28 20:30:57 +01:00
parent 44ea0a50a3
commit bd71371bed
10 changed files with 22 additions and 26 deletions

View file

@ -8,7 +8,7 @@ class GameBase {
public:
virtual std::shared_ptr<Game> GetGame(std::uint32_t id) = 0;
virtual void Save(std::vector<std::uint32_t> to_ignore,
std::vector<GameBase *> new_games_bases,
std::vector<std::shared_ptr<GameBase>> new_games_bases,
std::vector<std::shared_ptr<Game>> new_games) = 0;
virtual std::shared_ptr<Game> GetCurrentGame() = 0;
virtual bool NextGame() = 0;
@ -19,5 +19,5 @@ public:
*
* @param base
*/
virtual void Export(GameBase *base) = 0;
virtual void Export(std::shared_ptr<GameBase> base) = 0;
};

View file

@ -64,7 +64,7 @@ std::shared_ptr<Game> PGNGameBase::GetGame(std::uint32_t id) {
}
void PGNGameBase::Save(std::vector<std::uint32_t> to_ignore,
std::vector<GameBase *> new_games_bases,
std::vector<std::shared_ptr<GameBase>> new_games_bases,
std::vector<std::shared_ptr<Game>> new_games) {
wxStandardPaths stdPaths = wxStandardPaths::Get();
wxString tmp = stdPaths.GetTempDir() + "/save_pgn_tmp.pgn";
@ -87,7 +87,7 @@ void PGNGameBase::Save(std::vector<std::uint32_t> to_ignore,
}
// Now add new games
for (GameBase *current : new_games_bases) {
for (std::shared_ptr<GameBase> current : new_games_bases) {
current->Reset();
while (current->NextGame()) {
if (several) {
@ -114,7 +114,7 @@ void PGNGameBase::Save(std::vector<std::uint32_t> to_ignore,
wxRemoveFile(tmp);
}
void PGNGameBase::Export(GameBase *base) {
void PGNGameBase::Export(std::shared_ptr<GameBase> base) {
wxFile new_pgn(file, wxFile::write);
base->Reset();

View file

@ -14,8 +14,8 @@ public:
std::shared_ptr<Game> GetCurrentGame();
std::string GetTag(std::string tag);
void Save(std::vector<std::uint32_t> to_ignore,
std::vector<GameBase *> new_games_bases,
std::vector<std::shared_ptr<GameBase>> new_games_bases,
std::vector<std::shared_ptr<Game>> new_games);
void Reset();
void Export(GameBase *base);
void Export(std::shared_ptr<GameBase> base);
};