GroupProtocols.pas 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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: WideString);
  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(AClient));
  26. FProtocols.AddObject(GROUP_CREATE_FAIL, TBaseProcess.Create(AClient));
  27. FProtocols.AddObject(GROUP_CREATE_BROADCAST, TGroupCreateResponse.Create(AClient));
  28. // FProtocols.AddObject(GROUP_UPDATE_REQUEST, TBaseProcess.Create(nil));
  29. FProtocols.AddObject(GROUP_UPDATE_RESPONSE, TGroupUpdateResponse.Create(AClient));
  30. FProtocols.AddObject(GROUP_UPDATE_FAIL, TBaseProcess.Create(AClient));
  31. FProtocols.AddObject(GROUP_UPDATE_BROADCAST, TGroupUpdateResponse.Create(AClient));
  32. // FProtocols.AddObject(GROUP_DEL_REQUEST, TBaseProcess.Create(nil));
  33. FProtocols.AddObject(GROUP_DEL_RESPONSE, TGroupDeleteResponse.Create(AClient));
  34. FProtocols.AddObject(GROUP_DEL_FAIL, TBaseProcess.Create(AClient));
  35. FProtocols.AddObject(GROUP_DEL_BROADCAST, TGroupDeleteResponse.Create(AClient));
  36. // FProtocols.AddObject(GROUP_GET_REQUEST, TBaseProcess.Create(nil));
  37. FProtocols.AddObject(GROUP_GET_RESPONSE, TGroupAsynResponse.Create(AClient));
  38. FProtocols.AddObject(GROUP_GET_FAIL, TBaseProcess.Create(AClient));
  39. // FProtocols.AddObject(GROUP_QUERY_REQUEST, TBaseProcess.Create(nil));
  40. FProtocols.AddObject(GROUP_QUERY_RESPONSE, TGroupSearchResponse.Create(AClient));
  41. FProtocols.AddObject(GROUP_QUERY_FAIL, TBaseProcess.Create(AClient));
  42. // FProtocols.AddObject(MEMBER_QUERY_REQUEST, TBaseProcess.Create(nil));
  43. FProtocols.AddObject(MEMBER_QUERY_RESPONSE, TBaseProcess.Create(AClient));
  44. FProtocols.AddObject(MEMBER_QUERY_FAIL, TBaseProcess.Create(AClient));
  45. // FProtocols.AddObject(MEMBER_ADD_REQUEST, TBaseProcess.Create(nil));
  46. FProtocols.AddObject(MEMBER_ADD_RESPONSE, TMemberAddResponse.Create(AClient));
  47. FProtocols.AddObject(MEMBER_ADD_FAIL, TBaseProcess.Create(AClient));
  48. FProtocols.AddObject(MEMBER_ADD_BROADCAST, TMemberAddResponse.Create(AClient));
  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(AClient));
  52. FProtocols.AddObject(MEMBER_DEL_FAIL, TBaseProcess.Create(AClient));
  53. FProtocols.AddObject(MEMBER_DEL_BROADCAST, TMemberDelResponse.Create(AClient));
  54. // FProtocols.AddObject(MEMBER_UPDATE_REQUEST, TBaseProcess.Create(nil));
  55. FProtocols.AddObject(MEMBER_UPDATE_RESPONSE, TBaseProcess.Create(AClient));
  56. FProtocols.AddObject(MEMBER_UPDATE_FAIL, TBaseProcess.Create(AClient));
  57. FProtocols.AddObject(MEMBER_UPDATE_BROADCAST, TBaseProcess.Create(AClient));
  58. // FProtocols.AddObject(MEMBER_APPLY_REQUEST, TBaseProcess.Create(nil));
  59. FProtocols.AddObject(MEMBER_APPLY_RESPONSE, TBaseProcess.Create(AClient));
  60. FProtocols.AddObject(MEMBER_APPLY_FAIL, TBaseProcess.Create(AClient));
  61. FProtocols.AddObject(MEMBER_APPLY_P2P, TMemberApplyP.Create(AClient));
  62. // FProtocols.AddObject(MEMBER_REPLY_REQUEST, TBaseProcess.Create(nil));
  63. FProtocols.AddObject(MEMBER_REPLY_RESPONSE, TBaseProcess.Create(AClient));
  64. FProtocols.AddObject(MEMBER_REPLY_FAIL, TBaseProcess.Create(AClient));
  65. FProtocols.AddObject(MEMBER_REPLY_P2P, TMemberReplyP.Create(AClient));
  66. // FProtocols.AddObject(MESSAGE_SAY_REQUEST, TBaseProcess.Create(nil));
  67. // FProtocols.AddObject(MESSAGE_SAY_RESPONSE, TBaseProcess.Create(AClient));
  68. FProtocols.AddObject(MESSAGE_SAY_BROADCAST, TMessageBroadcast.Create(AClient));
  69. FProtocols.AddObject(MESSAGE_OFFLINE_RESPONSE, TOfflineMessageResponse.Create(AClient));
  70. // FProtocols.AddObject(MARK_MK_REQUEST, TBaseProcess.Create(nil));
  71. FProtocols.AddObject(MARK_MK_RESPONSE, TBaseProcess.Create(AClient));
  72. FProtocols.AddObject(MARK_MK_B, TMessageMiscBroadcast.Create(AClient));
  73. // FProtocols.AddObject(MEMBER_GS_REQUEST, TBaseProcess.Create(nil));
  74. FProtocols.AddObject(USER_LI_RESPONSE, TGetMyGroupsResponse.Create(AClient));
  75. FProtocols.AddObject(FILE_UPLOADED_BROADCAST, TFileDownloadBroadcast.Create(AClient));
  76. FProtocols.AddObject(HISTORY_H_R, TNewOfflineMessageResponse.Create(AClient));
  77. end;
  78. destructor TGroupProtocol.Destroy;
  79. begin
  80. FreeAndNil(FProtocols);
  81. inherited;
  82. end;
  83. procedure TGroupProtocol.Proccess(AData: WideString);
  84. var
  85. ja: TSuperArray;
  86. proto: string;
  87. i: Integer;
  88. begin
  89. try
  90. //GrpMonitor.ReflashLastTime;
  91. AData := Copy(AData,3,length(AData));
  92. if AData = '' then
  93. Exit;
  94. ja := SO(AData).AsArray;
  95. i := FProtocols.IndexOf(ja.S[0]);
  96. if i < 0 then
  97. Exit;
  98. (FProtocols.Objects[i] as TBaseProcess).Excute(ja.O[1])
  99. except
  100. on E: Exception do
  101. Error(E.Message+AData, 'TGroupProtocol.Proccess('+AData+')');
  102. end;
  103. end;
  104. end.