#ifndef EZ_CONFIG_H #define EZ_CONFIG_H #include #include #include #include #include #include #include "clients/remote_client.h" #define APP_ID "ezremote-client" #define DATA_PATH "/data/" APP_ID #define PKG_INSTALL_HISTORY_PATH DATA_PATH "/pkg_install_history.json" #define BG_DOWNLOAD_HISTORY_PATH DATA_PATH "/bg_download_history.json" #define DEBUG_SERVER_LOG_PATH DATA_PATH "/ezremote_server.log" #define HTTP_SERVER_APACHE "Apache" #define HTTP_SERVER_MS_IIS "Microsoft IIS" #define HTTP_SERVER_NGINX "Nginx" #define HTTP_SERVER_NPX_SERVE "Serve" #define HTTP_SERVER_RCLONE "RClone" #define HTTP_SERVER_ARCHIVEORG "Archive.org" #define HTTP_SERVER_MYRIENT "Myrient" #define HTTP_SERVER_GITHUB "Github" #define MAX_PKG_HISTORY_RETENTION 1209600000000L enum DownloadState { STATE_PENDING, STATE_DOWNLOADING, STATE_RESUMED, STATE_FAILED, STATE_SUCCESS }; struct HostInfo { int type; std::string url; std::string http_server_type; std::string username; std::string password; }; struct PackageInstallData { HostInfo host_info; RemoteClient *client; std::string path; uint64_t timestamp; }; struct BgDownloadData { HostInfo host_info; std::string src_path; std::string dest_path; uint64_t bytes_transfered; uint64_t file_size; DownloadState state; uint64_t id; uint64_t timestamp; }; extern uint64_t *g_bytes_transfered; extern std::vector bg_download_list; namespace CONFIG { PackageInstallData* GetPackageInstallHostData(const std::string &hash); void AddPackageInstallHostData(const std::string &hash, PackageInstallData pkg_data); void RemovePackageInstallHostData(const std::string &hash); void LoadPackageInstallHostData(); void SavePackageInstallHostData(); void AddBgDownloadData(BgDownloadData bg_download_data); void LoadBgDownloadData(); void SaveBgDownloadData(); } #endif