#ifndef __HGVERSIONIMPL_HPP__ #define __HGVERSIONIMPL_HPP__ #include "HGVersion.h" #include "../base/HGLock.h" #include "../base/HGMsgPump.h" #include "../base/HGThread.h" class HGVersionMgrImpl { public: HGVersionMgrImpl(); ~HGVersionMgrImpl(); HGResult GetServerConfig(HGServerConfig* config); HGResult PostInstallInfo(const HGChar* appName, const HGChar* oemName, const HGChar* desc); HGResult PostUninstallInfo(const HGChar* appName, const HGChar* oemName, const HGChar* desc); HGResult PostCrashInfo(const HGChar* appName, const HGChar* oemName, const HGChar* desc, const HGChar* crashFilePath, const HGChar* exceptionAddr); HGResult PostUserFeedback(const HGChar* appName, const HGChar* oemName, const HGChar* desc, const HGChar* feedback, const HGChar* contact); // 设备信息 HGResult PostDeviceOpenInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType, const HGChar* devFW); HGResult PostDeviceCloseInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType, const HGChar* devFW); HGResult PostDeviceScanCountInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType, const HGChar* devFW, HGUInt scanCount); HGResult PostDeviceClearRollerInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType, const HGChar* devFW); HGResult PostDeviceHistroyCountInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType, const HGChar* devFW, HGUInt histroyCount); HGResult PostDeviceRollerCountInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType, const HGChar* devFW, HGUInt rollerCount); HGResult PostDevicePaperJamInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType, const HGChar* devFW); // 用户行为 HGResult PostUserOpenInfo(const HGChar* appName, const HGChar* oemName); HGResult PostUserCloseInfo(const HGChar* appName, const HGChar* oemName); HGResult PostUserLoginInfo(const HGChar* appName, const HGChar* oemName); HGResult PostUserLogoutInfo(const HGChar* appName, const HGChar* oemName); // 设备锁定日志 HGResult PostDeviceLockInfo(const HGChar* devName, const HGChar* devSN, const HGChar* devType, const HGChar* devFW, HGBool isLock); HGResult GetVersionList(const HGChar* appName, const HGChar* oemName, HGVersionInfo** info, HGUInt* count); HGResult HttpDownload(const HGChar* url, const HGChar* saveFilePath, HGHttpDownloadFunc func, HGPointer param); static HGResult ReleaseVersionList(HGVersionInfo *info, HGUInt count); static HGResult GetCurrVersion(const HGChar* appName, const HGChar* oemName, HGChar* version, HGUInt maxLen); HGResult BlackListCheck(const HGChar* devSN, HGBool* inList); HGResult GetDriverVersionList(const HGChar* devType, HGVersionInfo** info, HGUInt* count); private: static void HGAPI ThreadFunc(HGThread thread, HGPointer param); static void HGAPI MsgPumpFunc(HGMsgPump msgPump, const HGMsg* msg, HGPointer param); private: HGLock m_lock; HGServerConfig m_serverCfg; HGMsgPump m_msgPump; HGThread m_thread; }; #endif /* __HGVERSIONIMPL_HPP__ */