CSHelper.h
上传用户:maryhy001
上传日期:2007-05-02
资源大小:2317k
文件大小:3k
源码类别:

网格计算

开发平台:

Visual C++

  1. // CSHelper.h: interface for the CCSHelper class.
  2. #ifndef _CSHELPER_H
  3. #define _CSHELPER_H
  4. #include "socket.h"
  5. //================================================
  6. //
  7. //Class Name : CCSHelper
  8. //
  9. //Description: Client and Server helper class.
  10. //
  11. //Create Time: 2004-07-04
  12. //
  13. //================================================
  14. class CCSHelper  
  15. {
  16. public:
  17. CCSHelper();
  18. virtual ~CCSHelper();
  19. bool Start(void); //start the cs helper functions.
  20. void Stop(void); //stop the cs helper functions.
  21. const int GetClientID(); //get local agent's identity.
  22. const string& GetClientName();//get local agent's display name.
  23. //process agent rename action
  24. bool AGRename(LPCSTR lpszNewName, const int nAGID);
  25. //process agent state update requirement
  26. bool SendAGState(void);
  27. //process agent's identity authentication
  28. bool SendAGAuthor(AUTHORINFO &authorinfo);
  29. //verifying current administrator user twice
  30. bool VerifyCurrentUser(void);
  31. //process agent sql requiement
  32. CGuiRecordSet* SendAGUsrSql(LPCSTR lpszUsrSql, bool &bSuccessful, bool bReturnRecordset = true);
  33. BOOL UpdateAgentsContents(void); //update local "agents.db" table
  34. BOOL UpdateDepartsContents(void); //update local "departs.db" table
  35. public:
  36. //return refresh thread can be terminated flag.
  37. const bool RefThreadCanTerminate(void);
  38. //return cycconnecting server thread can be terminated flag.
  39. const bool CycConnThreadCanTerminate(void);
  40. //main thread entry.
  41. static DWORD CALLBACK CSRefThreadProc(LPVOID lpParameter);
  42. //c-s socket loop connecting thread
  43. static DWORD CALLBACK CycConnectCSThread(LPVOID lpParameters);
  44. public:
  45. //C-S helper object states
  46. typedef enum { CHS_IDLE = 0, CHS_UPTAGSTATE = 1, CHS_UPTAGUSRLIST = 2, CHS_COMPLEX = CHS_UPTAGSTATE | CHS_UPTAGUSRLIST } CSHLPERSTATE;
  47. //server ip and port.
  48. string m_sserverip;
  49. DWORD m_dwserverport;
  50. //c-cs socket object.
  51. CXWinClientSocket m_hlpsock;
  52. //current C-S helper object state
  53. CCSHelper::CSHLPERSTATE m_chstate;
  54. private:
  55. //read connection configure
  56. bool ReadConnConfigure(void);
  57. //first authentication action
  58. bool FirstAuthor(void);
  59. //receive ACK package from peer socket
  60. bool RecvAnswer(KAGENTPACK &agkpack);
  61. //receiving file from server.
  62. bool ReceiveFile(string &sDestFile);
  63. //process recordset xml file.
  64. bool ProcessSQLRSXML(LPCSTR szSQLTxt, string &sFileName, bool bReturnRecordset = true);
  65. private:
  66. bool m_bactived; //activity flag.
  67. int m_nAGID; //agent id.
  68. string m_sAGName; //agent name.
  69. bool m_bcanterminate; //thread terminated signal.
  70. bool m_bcanexitconnectcs;//flag connecting c-s socket thread whether can be terminated ?
  71. HANDLE m_hrefthread, //system contents refreshing thread.
  72. m_hconcsthread; //connecting c-s socket thread handle.
  73. };
  74. #endif //_CSHELPER_H