Initial commit

This commit is contained in:
daoge_cmd
2026-03-01 12:16:08 +08:00
parent def8cb4153
commit b691c43c44
19437 changed files with 4363922 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
#pragma once
class File;
class StatsCounter;
class User;
class File;
class Stat;
using namespace std;
class StatsSyncher
{
private:
static const int SAVE_INTERVAL = 20 * 5;
static const int SEND_INTERVAL = 20 * 60;
volatile bool busy;
volatile unordered_map<Stat *, int> *serverStats;
volatile unordered_map<Stat *, int> *failedSentStats;
StatsCounter *statsCounter;
File *unsentFile, *lastServerFile;
File *unsentFileTmp, *lastServerFileTmp;
File *unsentFileOld, *lastServerFileOld;
User *user;
int noSaveIn, noSendIn;
public:
StatsSyncher(User *user, StatsCounter *statsCounter, File *dir);
private:
void attemptRename(File *dir, const wstring& name, File *to);
unordered_map<Stat *, int> *loadStatsFromDisk(File *file, File *tmp, File *old);
unordered_map<Stat *, int> *loadStatsFromDisk(File *file);
void doSend(unordered_map<Stat *, int> *stats);
void doSave(unordered_map<Stat *, int> *stats, File *file, File *tmp, File *old);
protected:
unordered_map<Stat *, int> *doGetStats();
public:
void getStatsFromServer();
void saveUnsent(unordered_map<Stat *, int> *stats);
void sendUnsent(unordered_map<Stat *, int> *stats, unordered_map<Stat *, int> *fullStats);
void forceSendUnsent(unordered_map<Stat *, int> *stats);
void forceSaveUnsent(unordered_map<Stat *, int> *stats);
bool maySave();
bool maySend();
void tick();
};