#ifndef GLABELBACKUPINFO_H #define GLABELBACKUPINFO_H #include "../common/singleton.h" #include "../common/spinlock_mutex.h" #include "functypeconverter.h" #include "globalsignals.h" class GlobelBackupInfo : public Singleton { public: GlobelBackupInfo(token) {} ~GlobelBackupInfo() {} // 设置是否管理员用户登录 void setIsManager(bool isManager) { m_isManager = isManager; } // 是否管理员用户登录 bool isManager() { return m_isManager; } // 设置是否以--restore参数启动的备份还原工具 void setHasArgRestore(bool hasArg_restore) { m_hasArg_restore = hasArg_restore; } // 是否以--restore参数启动的备份还原工具 bool hasArgRestore() { return m_hasArg_restore; } // 设置是否正在进行备份、还原等操作 void setIsBusy(bool isBusy) { std::lock_guard lock(m_interMutex); m_isBusy = isBusy; emit m_globalSignals.busy(isBusy); } // 是否正在进行备份、还原等操作 bool isBusy() { std::lock_guard lock(m_interMutex); return m_isBusy; } // 是否有备份分区 void setHasBackupPartition(bool has) { m_hasBackupPartition = has; } // 是否有备份分区 bool hasBackupPartition() { return m_hasBackupPartition; } // 设置当前功能类型 void setFuncType(FuncTypeConverter::FunType type) { m_funcType = type; } // 获取当前功能类型 FuncTypeConverter::FunType getFuncType() { return m_funcType; } GlobalSignals * getGlobalSignals() { return &m_globalSignals; } void lock() { m_outerMutex.lock(); } void unlock() { m_outerMutex.unlock(); } bool try_lock() { return m_outerMutex.try_lock(); } private: // 是否管理员 bool m_isManager = true; // 是否正在进行备份、还原等操作 bool m_isBusy = false; // 是否有备份分区 bool m_hasBackupPartition = true; // 当前功能类型 FuncTypeConverter::FunType m_funcType = FuncTypeConverter::FunType::TOTALMODULES; // 是否以--restore参数启动的备份还原工具 bool m_hasArg_restore = false; // 全局信号对象 GlobalSignals m_globalSignals; spinlock_mutex m_interMutex; spinlock_mutex m_outerMutex; }; #endif // GLABELBACKUPINFO_H