KCloseProgramMgr.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  FileName    :   KCloseProgramMgr.h
  4. //  Version     :   1.0
  5. //  Creater     :   Cheng Bitao
  6. //  Date        :   2002-2-5 11:28:38
  7. //  Comment     :   
  8. //
  9. //////////////////////////////////////////////////////////////////////////////////////
  10. #ifndef __KCLOSE_PROGRAM_MGR_H__
  11. #define __KCLOSE_PROGRAM_MGR_H__
  12. struct KBaseClosedProgram
  13. {
  14.     int m_nCloseFlag;
  15.     virtual int CloseProgram() = 0;
  16.     virtual int StartProgram() = 0;
  17. };
  18. typedef struct tagKProcessInfo
  19. {
  20.     char szFileName[MAX_PATH];          // Full file name
  21.     unsigned uID;                       // Process ID of running file in KAVIPC
  22.     char szCloseParam[MAX_PATH];        // Parameter for close program
  23.     char szStartParam[MAX_PATH];        // Parameter for start program
  24.     
  25. } KProcessInfo;
  26. //---------------------------------------------------------------------------------
  27. //   Close program by parameter : /quit or /exist
  28. //---------------------------------------------------------------------------------
  29. class KClosedProgram : public KBaseClosedProgram
  30. {
  31. public:
  32.     KClosedProgram(const KProcessInfo ProcessInfo);
  33.     ~KClosedProgram();
  34.     
  35.     // Return  1 : Exist process and exit successfully
  36.     //         0 : Exist process but exit failed
  37.     //        -1 : Not exist process
  38.     int CloseProgram();
  39.     int StartProgram();    
  40. protected:
  41.     KProcessInfo m_kProcessInfo;
  42.     bool m_bInitFlag;    
  43. };
  44. //---------------------------------------------------------------------------------
  45. //   Close program manager
  46. //---------------------------------------------------------------------------------
  47. typedef struct tagKCLOSEDPROGRAMLIST
  48. {
  49.     tagKCLOSEDPROGRAMLIST *pNext;
  50.     KBaseClosedProgram *pClosedProgram;
  51. } KCLOSEDPROTRMLIST, *PKCLOSEDPROGRAMLIST;
  52. class KCloseProgramMgr
  53. {
  54. public:
  55.     KCloseProgramMgr();
  56.     ~KCloseProgramMgr();     
  57.     int RunAllPrograms();
  58.     int AddClosedProgram(KBaseClosedProgram *pClosedProgram);
  59. private:
  60.     PKCLOSEDPROGRAMLIST m_pClosedProgramList;        
  61. };
  62. #endif      //__KCLOSE_PROGRAM_MGR_H__