#ifndef __HGPDTTOOLDBIMPL_H__ #define __HGPDTTOOLDBIMPL_H__ #include "base/HGDef.h" #include "base/HGBaseErr.h" #include "mysql.h" #include #include class HGPdtToolDbUserMgrImpl { friend class HGPdtToolDbDeviceImpl; public: HGPdtToolDbUserMgrImpl(); ~HGPdtToolDbUserMgrImpl(); HGResult Create(const HGChar* host, HGUShort port, const HGChar* userName, const HGChar* pwd); HGResult Destroy(); HGResult GetUserType(HGUInt* userType); HGResult GetUserName(HGChar* userName, HGUInt maxLen); HGResult GetUserList(HGChar** userNameList, HGUInt maxLen, HGUInt *count); static HGResult ReleaseUserList(HGChar** userNameList, HGUInt count); HGResult CreateUser(const HGChar* userName, const HGChar* defPwd); HGResult DestroyUser(const HGChar* userName); HGResult SetPassword(const HGChar* userName, const HGChar* pwd); HGResult ModifyPassword(const HGChar* oldPwd, const HGChar* newPwd); HGResult UploadFile(const HGChar* tag, const HGChar* fileName); HGResult DownloadFile(const HGChar* tag, const HGChar* fileName); HGResult Export(const HGChar* xlsPath); HGResult GetConfig(const HGChar *key, HGChar *value, HGUInt maxLen); HGResult SetConfig(const HGChar* key, const HGChar *value); HGResult OpenDevice(const HGChar* sn, class HGPdtToolDbDeviceImpl **deviceImpl); private: void RemoveDevice(class HGPdtToolDbDeviceImpl* deviceImpl); static const HGChar* GetEntryNameCnStr(HGUInt entryName); static std::string GetPassword(MYSQL* sql, const HGChar* userName); static std::string GetAuthString(MYSQL* sql, const HGChar* pwd); int CreateFileTable(MYSQL* sql); int CreateMainTestTable(MYSQL *sql); int CreateInitInspTestTable(MYSQL* sql); int CreateInitInspDescTable(MYSQL* sql); int CreateImgInspTestTable(MYSQL* sql); int CreateImgInspDescTable(MYSQL* sql); int CreatePreInspTestTable(MYSQL* sql); int CreatePreInspDescTable(MYSQL* sql); int InitMainTestItem(const HGChar *sn); int InitInspTestItem(const HGChar* tableName, const HGChar* sn); private: MYSQL* m_sql; std::string m_userName; std::list m_deviceList; }; class HGPdtToolDbDeviceImpl { public: HGPdtToolDbDeviceImpl(class HGPdtToolDbUserMgrImpl* userMgr, const HGChar* sn); ~HGPdtToolDbDeviceImpl(); HGResult GetCurrEntry(HGUInt* entryName); HGResult SetCurrEntry(HGUInt entryName); HGResult GetEntryStatus(HGUInt entryName, HGUInt* entryStatus); HGResult SetEntryStatus(HGUInt entryName, HGUInt entryStatus); HGResult GetEntryExcepDesc(HGUInt entryName, HGChar* excepDesc, HGUInt maxLen); HGResult SetEntryExcepDesc(HGUInt entryName, const HGChar* excepDesc); private: const HGChar* GetEntryNameStr(HGUInt entryName); const HGChar* GetTestTableName(HGUInt entryName); const HGChar* GetDescTableName(HGUInt entryName); private: class HGPdtToolDbUserMgrImpl* m_userMgr; std::string m_sn; }; #endif /* __HGPDTTOOLDBIMPL_H__ */