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

模拟服务器

开发平台:

C/C++

  1. // KSynDataSet.h: interface for the KSynDataSet class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #ifndef KSYNDATASET_H
  5. #define KSYNDATASET_H
  6. #include "SynDataSet.h"
  7. #include "KSynDataSet.h"
  8. #include "KSynData.h"
  9. #include "KSynLock.h"
  10. #include "KNode.h"
  11. #include "Klist.h"
  12. class DataSeq;
  13. #include "ReqServer.h"
  14. #define MAX_UNITNUM 4000
  15. class LockInfoNode:public KNode
  16. {
  17. public:
  18. long id;
  19. long index;
  20. ReqServer_ptr  pServer;
  21. };
  22. struct TServerNode:public KNode
  23. {
  24. public:
  25. ReqServer_ptr  pServer;
  26. long ServerId;
  27. };
  28. class KSynDataSet 
  29. {
  30. public:
  31. KSynDataSet();
  32. virtual ~KSynDataSet();
  33. CORBA::Long Lock(CORBA::Long id, const char* ObjName) ;
  34. CORBA::Long UnLock(CORBA::Long id, CORBA::Long index) ;
  35. CORBA::Any* GetData(CORBA::Long id) ;
  36. KSynData* GetDataPtr(long id){ return m_Sets[id]; };
  37. CORBA::Any* GetDataMember(CORBA::Long id,CORBA::Long MemberId);
  38. CORBA::Long SetData(CORBA::Long id, const CORBA::Any& data) ;
  39. CORBA::Long SetDataMember(CORBA::Long id, CORBA::Long MemberId, const CORBA::Any& data) ;
  40. CORBA::Any* GetDataWithLock(CORBA::Long id, CORBA::Long& Result, const char* ObjName) ;
  41. CORBA::Any* GetDataMemberWithLock(CORBA::Long id, CORBA::Long MemberId, CORBA::Long& Result, const char* ObjName) ;
  42. CORBA::Long SetDataWithLock(CORBA::Long id, const CORBA::Any& data, CORBA::Long& Result, const char* ObjName) ;
  43. CORBA::Long SetDataMemberWithLock(CORBA::Long id, CORBA::Long MemberId, const CORBA::Any& data, CORBA::Long& Result, const char* ObjName) ;
  44. CORBA::Any* GetDataWithOnce(CORBA::Long id, CORBA::Long& Result, const char* ObjName) ;
  45. CORBA::Any* GetDataMemberWithOnce(CORBA::Long id, CORBA::Long MemberId, CORBA::Long& Result, const char* ObjName) ;
  46. CORBA::Long SetDataWithOnce(CORBA::Long id, const CORBA::Any& data, CORBA::Long& Result, const char* ObjName) ;
  47. CORBA::Long SetDataMemberWithOnce(CORBA::Long id, CORBA::Long MemberId, const CORBA::Any& data, CORBA::Long& Result, const char* ObjName) ;
  48. DataSeq* SaveData();
  49. //存放KSynData数据的指针数组
  50. KSynData *  m_Sets[MAX_UNITNUM];
  51. //存放KSynLock锁表的数组
  52. KSynLock m_LockSets[MAX_UNITNUM];
  53. //增加数据至列表中
  54. BOOL AddData(KSynData * pData, long id);
  55. // BOOL DelData(id);
  56. long m_nTopIndex;
  57. KList m_ReqLockList;//请求锁定列表
  58. KList m_ServerList;//服务器列表
  59. };
  60. #endif //KSYNDATASET_H