WoW Addon Manager Client  0.0.1-alpha
A p2p World of Warcraft addon manager
addon.h
Go to the documentation of this file.
1 //
2 // Created by jordan on 12/23/19.
3 //
4 
5 #ifndef WAM_ADDON_H
6 #define WAM_ADDON_H
7 #include <string>
8 #include <fstream>
9 #include <iostream>
10 #include <memory>
11 #include <vector>
12 #include <boost/serialization/access.hpp>
13 #include "settingsmanager.h"
14 #include "response.h"
15 
16 class Addon {
17 public:
18 
19  enum WoWVersion {
22  PTR,
24  };
25  std::string m_id;
26  std::string m_addonName;
27  std::string m_addon_version;
28  std::string m_interface_version;
29  std::string m_description;
30  std::string m_path;
31  std::string m_torrent_info;
33 
34 
35  static Addon create_addon(const std::string &addon_folder_path);
36  static std::vector<Addon> get_installed_adddons(const WoWVersion &wow_version);
38  static Response<Addon> get_addon_by_name(const std::string &addon_name);
39  static std::string wow_version_to_string(const WoWVersion &wow_version);
40  static WoWVersion wow_version_to_enum(const std::string &wow_version);
41 
42  void make_wam(const std::string &folder_path);
43  void generate_torrent_info(const std::string &filepath);
44 
45  friend std::ostream& operator<<(std::ostream &output, const Addon &addon);
46 
47  Addon() = default;
48  Addon(const int64_t &id, const std::string &addon_name, const std::string &addon_version,
49  const std::string &interface_version, const std::string &addon_note,
50  const WoWVersion &wow_version);
51 
52  explicit Addon(const Json::Value &addon_json);
53 
54 private:
55  std::string get_path() const;
56  void set_path(const std::string &path);
58 
59  template<class Archive>
60  void serialize(Archive &ar, const unsigned int version){
61  ar & m_addonName;
62  ar & m_addon_version;
64  ar & m_description;
65  ar & m_path;
66  ar & m_wow_version;
67  ar & m_torrent_info;
68  }
69 
70 };
71 
72 
73 #endif //WAM_ADDON_H
Addon::wow_version_to_string
static std::string wow_version_to_string(const WoWVersion &wow_version)
Definition: addon.cpp:158
Addon::get_addon_by_name
static Response< Addon > get_addon_by_name(const std::string &addon_name)
Definition: addon.cpp:110
Addon::m_path
std::string m_path
Definition: addon.h:30
Addon::get_installed_adddons
static std::vector< Addon > get_installed_adddons(const WoWVersion &wow_version)
Definition: addon.cpp:43
Addon::m_addon_version
std::string m_addon_version
Definition: addon.h:27
Addon::get_path
std::string get_path() const
Definition: addon.cpp:66
response.h
Addon::m_interface_version
std::string m_interface_version
Definition: addon.h:28
Addon::m_description
std::string m_description
Definition: addon.h:29
Addon::PTR
@ PTR
Definition: addon.h:22
Addon::Classic
@ Classic
Definition: addon.h:21
Addon::operator<<
friend std::ostream & operator<<(std::ostream &output, const Addon &addon)
Definition: addon.cpp:74
Addon::serialize
void serialize(Archive &ar, const unsigned int version)
Definition: addon.h:60
settingsmanager.h
Response
Definition: response.h:12
Addon::m_id
std::string m_id
Definition: addon.h:25
Addon::access
friend class boost::serialization::access
Definition: addon.h:57
Addon::make_wam
void make_wam(const std::string &folder_path)
Definition: addon.cpp:84
Addon::Retail
@ Retail
Definition: addon.h:20
Addon::create_addon
static Addon create_addon(const std::string &addon_folder_path)
Definition: addon.cpp:20
Addon::set_path
void set_path(const std::string &path)
Definition: addon.cpp:70
Addon::WoWVersion
WoWVersion
Definition: addon.h:19
Addon::m_torrent_info
std::string m_torrent_info
Definition: addon.h:31
Addon::wow_version_to_enum
static WoWVersion wow_version_to_enum(const std::string &wow_version)
Definition: addon.cpp:172
Addon::Addon
Addon()=default
Addon::get_remote_addons
static Response< std::vector< Addon > > get_remote_addons()
Definition: addon.cpp:88
Addon::Invalid
@ Invalid
Definition: addon.h:23
Addon::m_wow_version
WoWVersion m_wow_version
Definition: addon.h:32
Addon::generate_torrent_info
void generate_torrent_info(const std::string &filepath)
Definition: addon.cpp:129
Addon
Definition: addon.h:16
Addon::m_addonName
std::string m_addonName
Definition: addon.h:26