From ea4c3b9a6c677d4bd9f3a89c437c5ecc5497cbe9 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sun, 5 Feb 2017 10:01:43 +0000 Subject: [PATCH] Don't cache load order in the API Leave the load order caching up to libloadorder, which knows when the cache should be expired. --- src/api/game/game.cpp | 8 +------- src/api/game/game_cache.cpp | 9 --------- src/api/game/game_cache.h | 6 +----- 3 files changed, 2 insertions(+), 21 deletions(-) diff --git a/src/api/game/game.cpp b/src/api/game/game.cpp index 3cfe1f35..8ef201c1 100644 --- a/src/api/game/game.cpp +++ b/src/api/game/game.cpp @@ -67,7 +67,6 @@ Game::Game(const GameType gameType, BOOST_LOG_TRIVIAL(info) << "Initialising load order data for game of type " << (int)type_ << " at: " << gamePath_; loadOrderHandler_.Init(type_, gamePath_, localDataPath_); - StoreLoadOrder(loadOrderHandler_.GetLoadOrder()); database_ = std::make_shared(*this); } @@ -196,15 +195,10 @@ bool Game::IsPluginActive(const std::string& plugin) const { } std::vector Game::GetLoadOrder() const { - auto loadOrder = GameCache::GetLoadOrder(); - if (loadOrder.empty()) - return loadOrderHandler_.GetLoadOrder(); - - return loadOrder; + return loadOrderHandler_.GetLoadOrder(); } void Game::SetLoadOrder(const std::vector& loadOrder) { loadOrderHandler_.SetLoadOrder(loadOrder); - StoreLoadOrder(loadOrder); } } diff --git a/src/api/game/game_cache.cpp b/src/api/game/game_cache.cpp index 8081176a..be1c55eb 100644 --- a/src/api/game/game_cache.cpp +++ b/src/api/game/game_cache.cpp @@ -106,18 +106,9 @@ void GameCache::AddPlugin(const Plugin&& plugin) { if (it != end(plugins_)) plugins_.erase(it); - plugins_.emplace(plugin.GetLowercasedName(), std::make_shared(std::move(plugin))); } -std::vector GameCache::GetLoadOrder() const { - return loadOrder_; -} - -void GameCache::StoreLoadOrder(const std::vector& loadOrder) { - loadOrder_ = loadOrder; -} - void GameCache::ClearCachedConditions() { lock_guard guard(mutex_); diff --git a/src/api/game/game_cache.h b/src/api/game/game_cache.h index 69b56049..28b2af09 100644 --- a/src/api/game/game_cache.h +++ b/src/api/game/game_cache.h @@ -52,9 +52,6 @@ public: std::shared_ptr GetPlugin(const std::string& pluginName) const; void AddPlugin(const Plugin&& plugin); - std::vector GetLoadOrder() const; - void StoreLoadOrder(const std::vector& loadOrder); - void ClearCachedConditions(); void ClearCachedPlugins(); private: @@ -62,7 +59,6 @@ private: MetadataList userlist_; std::unordered_map conditions_; std::unordered_map> plugins_; - std::vector loadOrder_; mutable std::mutex mutex_; }; @@ -71,7 +67,7 @@ private: namespace std { template<> struct less> { - size_t operator() (const std::shared_ptr& lhs, + size_t operator() (const std::shared_ptr& lhs, const std::shared_ptr& rhs) const { return lhs->GetLowercasedName() < rhs->GetLowercasedName(); }