[cppcheck] Part 1: Performance
[supertux.git] / src / addon / addon_manager.hpp
index c5e65f8..fafebb0 100644 (file)
@@ -18,6 +18,7 @@
 #ifndef HEADER_SUPERTUX_ADDON_ADDON_MANAGER_HPP
 #define HEADER_SUPERTUX_ADDON_ADDON_MANAGER_HPP
 
+#include <functional>
 #include <memory>
 #include <string>
 #include <vector>
 
 class Addon;
 class AddonRepository;
+class TransferStatus;
+using TransferStatusPtr = std::shared_ptr<TransferStatus>;
 
 typedef std::string AddonId;
 
 /** Checks for, installs and removes Add-ons */
 class AddonManager : public Currenton<AddonManager>
 {
-public:
-  struct InstallStatus
-  {
-    InstallStatus() :
-      now(0),
-      total(0),
-      done(false)
-    {}
-
-    int now;
-    int total;
-    bool done;
-  };
-
-  struct InstallRequest
-  {
-    InstallRequest() :
-      addon_id(),
-      install_filename()
-    {}
-
-    std::string addon_id;
-    std::string install_filename;
-  };
-
-  using InstallStatusPtr = std::shared_ptr<InstallStatus>;
-  using InstallRequestPtr = std::shared_ptr<InstallRequest>;
-
 private:
   using AddonList = std::vector<std::unique_ptr<Addon> >;
 
@@ -77,8 +52,6 @@ private:
 
   bool m_has_been_updated;
 
-  InstallRequestPtr m_install_request;
-  InstallStatusPtr m_install_status;
   TransferStatusPtr m_transfer_status;
 
 public:
@@ -89,6 +62,7 @@ public:
   bool has_online_support() const;
   bool has_been_updated() const;
   void check_online();
+  TransferStatusPtr request_check_online();
 
   std::vector<AddonId> get_repository_addons() const;
   std::vector<AddonId> get_installed_addons() const;
@@ -96,7 +70,7 @@ public:
   Addon& get_repository_addon(const AddonId& addon);
   Addon& get_installed_addon(const AddonId& addon);
 
-  InstallStatusPtr request_install_addon(const AddonId& addon_id);
+  TransferStatusPtr request_install_addon(const AddonId& addon_id);
   void install_addon(const AddonId& addon_id);
   void uninstall_addon(const AddonId& addon_id);
 
@@ -108,7 +82,7 @@ public:
 private:
   std::vector<std::string> scan_for_archives() const;
   void add_installed_addons();
-  AddonList parse_addon_infos(const std::string& addoninfos) const;
+  AddonList parse_addon_infos(const std::string& filename) const;
 
   /** add \a archive, given as physfs path, to the list of installed
       archives */