ddnet/src/engine/client/autoupdate.h

50 lines
1.2 KiB
C
Raw Normal View History

2014-12-31 14:29:34 +00:00
#ifndef ENGINE_CLIENT_AUTOUPDATE_H
#define ENGINE_CLIENT_AUTOUPDATE_H
#include <engine/autoupdate.h>
#include <engine/fetcher.h>
2014-12-31 14:29:34 +00:00
#include <vector>
#include <string>
class CAutoUpdate : public IAutoUpdate
{
class IClient *m_pClient;
class IStorage *m_pStorage;
class IFetcher *m_pFetcher;
int m_State;
char m_Status[256];
int m_Percent;
char m_aLastFile[256];
bool m_ClientUpdate;
bool m_ServerUpdate;
std::vector<std::string> m_AddedFiles;
std::vector<std::string> m_RemovedFiles;
void AddNewFile(const char *pFile);
void AddRemovedFile(const char *pFile);
void FetchFile(const char *pFile, const char *pDestPath = 0);
void ParseUpdate();
void PerformUpdate();
void ReplaceExecutable();
public:
CAutoUpdate();
static void ProgressCallback(CFetchTask *pTask, void *pUser);
static void CompletionCallback(CFetchTask *pTask, void *pUser);
2014-12-31 14:29:34 +00:00
2014-12-31 14:34:25 +00:00
int GetCurrentState() { return m_State; };
char *GetCurrentFile() { return m_Status; };
int GetCurrentPercent() { return m_Percent; };
2014-12-31 14:29:34 +00:00
virtual void InitiateUpdate();
void IgnoreUpdate();
void Init();
virtual void Update();
void Restart();
};
#endif