GroupProtocols.pas 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. unit GroupProtocols;
  2. interface
  3. uses
  4. Classes, SysUtils, GroupUtility, superobject;
  5. type
  6. TGroupProtocol = class
  7. private
  8. FProtocols: TStringList;
  9. public
  10. constructor Create(AGroupClient: TObject);
  11. destructor Destroy; override;
  12. procedure Proccess(AData: string);
  13. end;
  14. implementation
  15. uses
  16. GroupProcess, LoggerImport, GroupClient;
  17. { TGroupProtocol }
  18. constructor TGroupProtocol.Create(AGroupClient: TObject);
  19. var
  20. AClient: TGroupClient;
  21. begin
  22. AClient := (AGroupClient as TGroupClient);
  23. FProtocols := TStringList.Create;
  24. // FProtocols.AddObject(GROUP_CREATE_REQUEST, TBaseProcess.Create(nil));
  25. FProtocols.AddObject(GROUP_CREATE_RESPONSE, TGroupCreateResponse.Create(nil));
  26. FProtocols.AddObject(GROUP_CREATE_FAIL, TBaseProcess.Create(nil));
  27. FProtocols.AddObject(GROUP_CREATE_BROADCAST, TGroupCreateResponse.Create(nil));
  28. // FProtocols.AddObject(GROUP_UPDATE_REQUEST, TBaseProcess.Create(nil));
  29. FProtocols.AddObject(GROUP_UPDATE_RESPONSE, TGroupUpdateResponse.Create(nil));
  30. FProtocols.AddObject(GROUP_UPDATE_FAIL, TBaseProcess.Create(nil));
  31. FProtocols.AddObject(GROUP_UPDATE_BROADCAST, TGroupUpdateResponse.Create(nil));
  32. // FProtocols.AddObject(GROUP_DEL_REQUEST, TBaseProcess.Create(nil));
  33. FProtocols.AddObject(GROUP_DEL_RESPONSE, TGroupDeleteResponse.Create(nil));
  34. FProtocols.AddObject(GROUP_DEL_FAIL, TBaseProcess.Create(nil));
  35. FProtocols.AddObject(GROUP_DEL_BROADCAST, TGroupDeleteResponse.Create(nil));
  36. // FProtocols.AddObject(GROUP_GET_REQUEST, TBaseProcess.Create(nil));
  37. FProtocols.AddObject(GROUP_GET_RESPONSE, TGroupSearchByIDResponse.Create(nil));
  38. FProtocols.AddObject(GROUP_GET_FAIL, TBaseProcess.Create(nil));
  39. // FProtocols.AddObject(GROUP_QUERY_REQUEST, TBaseProcess.Create(nil));
  40. FProtocols.AddObject(GROUP_QUERY_RESPONSE, TGroupSearchResponse.Create(nil));
  41. FProtocols.AddObject(GROUP_QUERY_FAIL, TBaseProcess.Create(nil));
  42. // FProtocols.AddObject(MEMBER_QUERY_REQUEST, TBaseProcess.Create(nil));
  43. FProtocols.AddObject(MEMBER_QUERY_RESPONSE, TBaseProcess.Create(nil));
  44. FProtocols.AddObject(MEMBER_QUERY_FAIL, TBaseProcess.Create(nil));
  45. // FProtocols.AddObject(MEMBER_ADD_REQUEST, TBaseProcess.Create(nil));
  46. FProtocols.AddObject(MEMBER_ADD_RESPONSE, TMemberAddResponse.Create(nil));
  47. FProtocols.AddObject(MEMBER_ADD_FAIL, TBaseProcess.Create(nil));
  48. FProtocols.AddObject(MEMBER_ADD_BROADCAST, TMemberAddResponse.Create(nil));
  49. // FProtocols.AddObject(MEMBER_ADD_P, TBaseProcess.Create(nil));
  50. // FProtocols.AddObject(MEMBER_DEL_REQUEST, TBaseProcess.Create(nil));
  51. FProtocols.AddObject(MEMBER_DEL_RESPONSE, TMemberDelResponse.Create(nil));
  52. FProtocols.AddObject(MEMBER_DEL_FAIL, TBaseProcess.Create(nil));
  53. FProtocols.AddObject(MEMBER_DEL_BROADCAST, TMemberDelResponse.Create(nil));
  54. // FProtocols.AddObject(MEMBER_UPDATE_REQUEST, TBaseProcess.Create(nil));
  55. FProtocols.AddObject(MEMBER_UPDATE_RESPONSE, TBaseProcess.Create(nil));
  56. FProtocols.AddObject(MEMBER_UPDATE_FAIL, TBaseProcess.Create(nil));
  57. FProtocols.AddObject(MEMBER_UPDATE_BROADCAST, TBaseProcess.Create(nil));
  58. // FProtocols.AddObject(MEMBER_APPLY_REQUEST, TBaseProcess.Create(nil));
  59. FProtocols.AddObject(MEMBER_APPLY_RESPONSE, TBaseProcess.Create(nil));
  60. FProtocols.AddObject(MEMBER_APPLY_FAIL, TBaseProcess.Create(nil));
  61. FProtocols.AddObject(MEMBER_APPLY_P2P, TMemberApplyP.Create(nil));
  62. // FProtocols.AddObject(MEMBER_REPLY_REQUEST, TBaseProcess.Create(nil));
  63. FProtocols.AddObject(MEMBER_REPLY_RESPONSE, TBaseProcess.Create(nil));
  64. FProtocols.AddObject(MEMBER_REPLY_FAIL, TBaseProcess.Create(nil));
  65. FProtocols.AddObject(MEMBER_REPLY_P2P, TBaseProcess.Create(nil));
  66. // FProtocols.AddObject(MESSAGE_SAY_REQUEST, TBaseProcess.Create(nil));
  67. FProtocols.AddObject(MESSAGE_SAY_RESPONSE, TBaseProcess.Create(nil));
  68. FProtocols.AddObject(MEMBER_SAY_BROADCAST, TBaseProcess.Create(nil));
  69. // FProtocols.AddObject(MARK_MK_REQUEST, TBaseProcess.Create(nil));
  70. FProtocols.AddObject(MARK_MK_RESPONSE, TBaseProcess.Create(nil));
  71. // FProtocols.AddObject(MEMBER_GS_REQUEST, TBaseProcess.Create(nil));
  72. FProtocols.AddObject(MEMBER_GS_RESPONSE, TBaseProcess.Create(nil));
  73. end;
  74. destructor TGroupProtocol.Destroy;
  75. begin
  76. FreeAndNil(FProtocols);
  77. inherited;
  78. end;
  79. procedure TGroupProtocol.Proccess(AData: string);
  80. var
  81. ja: TSuperArray;
  82. proto: string;
  83. i: Integer;
  84. begin
  85. try
  86. //GrpMonitor.ReflashLastTime;
  87. AData := copy(AData,2,length(AData));
  88. if AData = '' then
  89. Exit;
  90. ja := SO(AData).AsArray;
  91. i := FProtocols.IndexOf(ja.S[0]);
  92. if i < 0 then
  93. Exit;
  94. (FProtocols.Objects[i] as TBaseProcess).Excute(ja.O[1])
  95. except
  96. on E: Exception do
  97. Error(E.Message+AData, 'TGroupProtocol.Proccess('+AData+')');
  98. end;
  99. end;
  100. end.