#pragma once #include #include #include #include #include "define.h" #include "PublicStruct.h" #include "VersionInfo.h" typedef std::map PROCESS_INFO_MAP; typedef PROCESS_INFO_MAP::iterator PROCESS_INFO_MAP_ITER; class DLL_DECLARE CUpdateProcessInfo { public: CUpdateProcessInfo(); ~CUpdateProcessInfo(){} public: TCHAR m_szFtpIP[MAX_PATH]; WORD m_wFtpPort; TCHAR m_szID[MAX_PATH]; TCHAR m_szPass[MAX_PATH]; TCHAR m_szDownPath[MAX_PATH]; TCHAR m_szExecutePath[MAX_PATH]; int m_nTotalProcessCount; int m_nUpdateNumber; PROCESS_INFO_MAP m_mapProcessInfo; public: PROCESS_INFO* GetProcessInfo( BYTE byUpateNumber ); }; class DLL_DECLARE CUpdateScriptParser { private: CUpdateScriptParser(void); public: ~CUpdateScriptParser(void); public: static CUpdateScriptParser* GetInstance() { if( !m_pInstance ) m_pInstance = new CUpdateScriptParser; return m_pInstance; } static void Release() { if( m_pInstance ) delete m_pInstance; } private: static CUpdateScriptParser* m_pInstance; public: CUpdateProcessInfo m_LauncherInfo; CUpdateProcessInfo m_ApplicationInfo; AGENT_INFO m_AgentInfo; private: BYTE m_bLoad; public: BOOL SaveVersion( BYTE byUpdateType, BYTE byUpdateNumber, CVersionInfo& rVerInfo ); PROCESS_INFO* GetProcessInfo( BYTE byUpdateType, BYTE byUpdateNumber ); BYTE GetUpdateNumFromProcName( BYTE byUpdateType, TCHAR* pszProcessName ); eUPDATE_TYPE GetUpdateTypeFromProcName( TCHAR* pszProcessName ); //DataLoad public: BOOL LoadData(void); void GetModuleDirectory( char* szDirPath, int nSize ); BOOL IsLoad(){ return m_bLoad; } AGENT_INFO& GetAgentInfo(){ return m_AgentInfo; } private: BOOL LoadProcessInfo( BYTE byUpdateType, const char* pszFilePath ); BOOL LoadAgentInfo( const char* pszFilePath ); };