40 lines
1.6 KiB
C++
40 lines
1.6 KiB
C++
#ifndef I_UPGRADE_MANAGER_H
|
|
#define I_UPGRADE_MANAGER_H
|
|
#include "VReturnCode.h"
|
|
#include <memory>
|
|
enum class UpgradeResult
|
|
{
|
|
SUCCEED = 0,
|
|
FAILED,
|
|
END
|
|
};
|
|
class VUpgradeTask
|
|
{
|
|
public:
|
|
VUpgradeTask() = default;
|
|
virtual ~VUpgradeTask() = default;
|
|
virtual const char *GetPackageUrl(void) { return nullptr; }
|
|
virtual const char *GetSavePath(void) { return nullptr; }
|
|
virtual const void GetSoftWareVersion(char *version, const unsigned int &length) {}
|
|
virtual void TaskResult(const UpgradeResult &resutl) {}
|
|
};
|
|
class VUpgradeNetworkModuleTask
|
|
{
|
|
public:
|
|
VUpgradeNetworkModuleTask() = default;
|
|
virtual ~VUpgradeNetworkModuleTask() = default;
|
|
virtual void TaskResult(const UpgradeResult &resutl) {}
|
|
};
|
|
class IUpgradeManager
|
|
{
|
|
public:
|
|
IUpgradeManager() = default;
|
|
virtual ~IUpgradeManager() = default;
|
|
static std::shared_ptr<IUpgradeManager> &GetInstance(std::shared_ptr<IUpgradeManager> *impl = nullptr);
|
|
virtual RETURN_CODE Init(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); }
|
|
virtual RETURN_CODE UnInit(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); }
|
|
virtual RETURN_CODE Upgrade(std::shared_ptr<VUpgradeTask> &task) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); }
|
|
virtual RETURN_CODE Upgrade(std::shared_ptr<VUpgradeNetworkModuleTask> &task) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); }
|
|
};
|
|
bool CreateUpgradeManager(void);
|
|
#endif // !I_UPGRADE_MANAGER_H
|