#include ".\update.h" #include #include #include "MyFolder.h" CUpdate::CUpdate(void) { m_bConnectFTP = FALSE; m_byUpdateNumber = 0; m_fnMsgCallBack = NULL; } CUpdate::~CUpdate(void) { m_mapProcessInfo.clear(); } VOID CUpdate::Release() { DisconnectFTP(); } void CUpdate::DisconnectFTP() { if( m_UpdateModule.IsConnectFTP() == TRUE ) { if( GetUpdateType() == UPDATE_TYPE_LAUNCHER ) strcpy( m_szTempMessage, "LauncherFTP" ); else if( GetUpdateType() == UPDATE_TYPE_APPLICATION ) strcpy( m_szTempMessage, "ApplicationFTP" ); m_UpdateModule.DisconnectFTP(); AddMessage( WM_FTP_DISCONNECT, (VOID*)m_szTempMessage ); } } void CUpdate::GetModuleDirectory( TCHAR* pszDir, int nSize ) { m_UpdateModule.GetModuleDirectory( pszDir, nSize ); } void CUpdate::StopUpdate() { m_UpdateModule.StopUpdate(); } BOOL CUpdate::IsConnectFTP() { return m_bConnectFTP; } BOOL CUpdate::Init() { ZeroMemory( m_szBasicExecutePath, MAX_PATH ); ZeroMemory( m_szExecuteParameter, MAX_PATH ); // ¾÷µ¥ÀÌÆ® ¸ðµâÀ» ÃʱâÈ­ ÇÑ´Ù. if( !m_UpdateModule.Init() ) return FALSE; return TRUE; } BOOL CUpdate::ConnectFTP( TCHAR* pszIP, int nPort, TCHAR* pszID, TCHAR* pszPass ) { m_bConnectFTP = m_UpdateModule.ConnectFTP( pszIP, nPort, pszID, pszPass ); std::string strType; if( GetUpdateType() == UPDATE_TYPE_LAUNCHER ) strcpy( m_szTempMessage, "LauncherFTP" ); else if( GetUpdateType() == UPDATE_TYPE_APPLICATION ) strcpy( m_szTempMessage, "ApplicationFTP" ); if( m_bConnectFTP ) AddMessage( WM_FTP_CONNECT_SUCCESS, (VOID*)m_szTempMessage ); else AddMessage( WM_FTP_CONNECT_FAIL, (VOID*)m_szTempMessage ); return m_bConnectFTP; } void CUpdate::AddMessage( UINT uMsg, VOID* pData ) { if( !m_fnMsgCallBack ) return; m_fnMsgCallBack( uMsg, (VOID*)pData ); } VOID CUpdate::InsertProcessInfo( PROCESS_INFO* pInfo ) { if( !pInfo ) return; m_mapProcessInfo.insert( std::make_pair( pInfo->m_byUpdateNumber, pInfo ) ); } // FALSE¸¦ ¸®ÅÏÇϸé, ÇÁ·Î¼¼¼­°¡ »ì¾Æ Àְųª, ¹º°¡ ´Ù¸¥ ¹®Á¦°¡ ÀÖ´Â °æ¿ìÀÌ´Ù. // TRUE¸¦ ¸®ÅÏÇϸé, ÆÐÄ¡¸¦ ÇØµµ ÁÁÀº »óȲÀÌ´Ù. BOOL CUpdate::CheckLiveProcess( TCHAR* pszCheckProcess) { if( !pszCheckProcess ) return FALSE; if( m_UpdateModule.CheckLiveProcess( pszCheckProcess ) ) return FALSE; return TRUE; } PROCESS_INFO* CUpdate::GetProcessInfo( BYTE byUpdateNumber ) { PROCESS_INFO_MAP_ITER iter = m_mapProcessInfo.find( byUpdateNumber ); if( iter != m_mapProcessInfo.end() ) return iter->second; return NULL; } void CUpdate::SetLocalBasicDownDir( TCHAR* pszDir ) { m_UpdateModule.SetLocalBasicDownDir( pszDir ); } VOID CUpdate::GetLocalBasicDownDir( OUT TCHAR* pszDir, int nBufSize ) { m_UpdateModule.GetLocalBasicDownDir( pszDir, nBufSize ); } VOID CUpdate::SetLocalBasicExecuteDir( TCHAR* pszDir ) { if( !pszDir ) return; strncpy( m_szBasicExecutePath, pszDir, MAX_PATH ); } VOID CUpdate::GetLocalBasicExecuteDir( OUT TCHAR* pszDir, int nBufSize ) { strncpy( pszDir, m_szBasicExecutePath, nBufSize ); } VOID CUpdate::SetExecuteParameter( TCHAR* pszParam ) { if( !pszParam ) return; strncpy( m_szExecuteParameter, pszParam, MAX_PATH ); } VOID CUpdate::GetExecuteParameter( OUT TCHAR* pszParam, int nBufSize ) { strncpy( pszParam, m_szExecuteParameter, nBufSize ); } VOID CUpdate::SetMsgCallBack( fnMsgCallBack CallBack ) { if( !CallBack ) return; m_fnMsgCallBack = CallBack; m_UpdateModule.SetMsgCallBack( m_fnMsgCallBack ); } BOOL CUpdate::DeleteFolder( TCHAR* pszFolder ) { if( _access( pszFolder, 0 ) != -1 ) //ÆÄÀÏÀ̳ª Æú´õ°¡ Á¸ÀçÇϸé.. { BOOL bDelete = FALSE; BYTE byCnt = 0; while( !bDelete || byCnt > 10 ) { if( MyFolder::DeleteFoler( pszFolder ) ) bDelete = TRUE; byCnt++; } if( byCnt > 10 ) return FALSE; } return TRUE; }