28#include <unordered_map>
33#define MTHASHSET_FILE_SIGNATURE 0x4d544853
34#define MTHASHSET_FILE_NAME "index.mth"
40 const std::string &filedata);
44 const std::string &path);
58 virtual
void addFile(const std::
string &name, const std::
string &sha1) = 0;
86 const std::
string &name) = 0;
91 bool checkAndLoad(const std::
string &name, const std::
string &sha1,
92 const std::
string &data,
bool is_from_cache,
Client *
client);
106 if (m_uncached_count >= 1)
107 return 1.0f * m_uncached_received_count /
114 return m_initial_step_done;
118 return m_initial_step_done &&
119 m_uncached_received_count == m_uncached_count;
122 void addFile(
const std::string &name,
const std::string &sha1)
override;
129 const std::string &name,
130 const std::string &data,
135 const std::string &name)
override;
154 s32 selectRemoteServer(
FileStatus *filestatus);
155 void startRemoteMediaTransfers();
158 static void deSerializeHashSet(
const std::string &data,
159 std::set<std::string> &result);
160 std::string serializeRequiredHashSet();
170 bool m_initial_step_done =
false;
173 s32 m_uncached_count = 0;
176 s32 m_uncached_received_count = 0;
180 u64 m_httpfetch_next_id = 0;
181 s32 m_httpfetch_active = 0;
182 s32 m_httpfetch_active_limit = 0;
183 s32 m_outstanding_hash_sets = 0;
190 std::string m_name_bound =
"";
206 return m_stage > STAGE_INIT;
210 return m_stage >= STAGE_DONE;
213 void addFile(
const std::string &name,
const std::string &sha1)
override;
215 void addRemoteServer(
const std::string &baseurl)
override;
219 bool conventionalTransferDone(
const std::string &name,
224 const std::string &name)
override;
229 void startRemoteMediaTransfer();
250 unsigned long m_httpfetch_next_id = 0;
#define DISABLE_CLASS_COPY(C)
Definition: basic_macros.h:35
Definition: filecache.h:28
Definition: activeobjectmgr.cpp:26
Definition: httpfetch.h:96