23 #ifndef INCLUDED_MODIO 24 #define INCLUDED_MODIO 40 unsigned char pk[crypto_sign_PUBLICKEYBYTES] = {};
47 unsigned char sig[crypto_sign_BYTES] = {};
137 void StartListMods();
138 void StartDownloadMod(
u32 idx);
151 void CancelRequest();
153 const std::vector<ModIoModData>&
GetMods()
const 159 return m_DownloadProgressData;
163 static size_t ReceiveCallback(
void* buffer,
size_t size,
size_t nmemb,
void* userp);
164 static size_t DownloadCallback(
void* buffer,
size_t size,
size_t nmemb,
void* userp);
165 static int DownloadProgressCallback(
void* clientp, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow);
167 CURLMcode SetupRequest(
const std::string& url,
bool fileDownload);
168 void TearDownRequest();
170 bool ParseGameId(
const ScriptInterface& scriptInterface, std::string& err);
171 bool ParseMods(
const ScriptInterface& scriptInterface, std::string& err);
173 void DeleteDownloadedFile();
174 bool VerifyDownloadedFile(std::string& err);
177 static bool ParseGameIdResponse(
const ScriptInterface& scriptInterface,
const std::string& responseData,
int&
id, std::string& err);
178 static bool ParseModsResponse(
const ScriptInterface& scriptInterface,
const std::string& responseData, std::vector<ModIoModData>& modData,
const PKStruct&
pk, std::string& err);
179 static bool ParseSignature(
const std::vector<std::string>& minisigs,
SigStruct& sig,
const PKStruct& pk, std::string& err);
193 char m_ErrorBuffer[CURL_ERROR_SIZE];
206 friend class TestModIo;
211 #endif // INCLUDED_MODIO #define NONCOPYABLE(className)
Indicates that a class is noncopyable (usually due to const or reference members, or because the clas...
Definition: code_annotation.h:227
void StartGetGameId()
Definition: JSInterface_ModIo.cpp:38
curl_slist * m_Headers
Definition: ModIo.h:192
std::string error
Definition: ModIo.h:76
std::string m_GameId
Definition: ModIo.h:184
mod.io API interfacing code.
Definition: ModIo.h:128
std::string m_ApiKey
Definition: ModIo.h:187
PKStruct m_pk
Definition: ModIo.h:202
CURLM * m_CurlMulti
Definition: ModIo.h:191
std::string m_GamesRequest
Definition: ModIo.h:183
SigStruct sig
Definition: ModIo.h:54
uint32_t u32
Definition: types.h:39
double progress
Definition: ModIo.h:75
OsPath m_DownloadFilePath
Definition: ModIo.h:198
std::vector< ModIoModData > m_ModData
Definition: ModIo.h:204
DownloadProgressData m_DownloadProgressData
Definition: ModIo.h:200
std::string m_BaseUrl
Definition: ModIo.h:182
std::vector< std::string > dependencies
Definition: ModIo.h:53
ModIo * g_ModIo
Definition: ModIo.cpp:47
DownloadProgressStatus status
Definition: ModIo.h:74
DownloadCallbackData * m_CallbackData
Definition: ModIo.h:199
const DownloadProgressData & GetDownloadProgress() const
Definition: ModIo.h:157
DownloadProgressStatus
Definition: ModIo.h:57
unsigned char pk[crypto_sign_PUBLICKEYBYTES]
Definition: ModIo.h:40
unsigned char sig_alg[2]
Definition: ModIo.h:38
int m_DownloadModID
Definition: ModIo.h:197
std::map< std::string, std::string > properties
Definition: ModIo.h:52
Abstraction around a SpiderMonkey JS::Realm.
Definition: ScriptInterface.h:71
const std::vector< ModIoModData > & GetMods() const
Definition: ModIo.h:153
CURL * m_Curl
Definition: ModIo.h:190
std::string m_IdQuery
Definition: ModIo.h:188
std::string m_ResponseData
Definition: ModIo.h:194
unsigned char keynum[8]
Definition: ModIo.h:39