GroupProtocols.pas 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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. // FProtocols.AddObject(FORBID_ADD_REQUEST, TBaseProcess.Create(nil));
  78. FProtocols.AddObject(FORBID_ADD_RESPONSE, TForbidAddResponse.Create(AClient));
  79. FProtocols.AddObject(FORBID_ADD_FAIL, TBaseProcess.Create(AClient));
  80. FProtocols.AddObject(FORBID_ADD_P2P, TForbidAddP.Create(AClient));
  81. // FProtocols.AddObject(FORBID_DEL_REQUEST, TBaseProcess.Create(nil));
  82. FProtocols.AddObject(FORBID_DEL_RESPONSE, TForbidDelResponse.Create(AClient));
  83. FProtocols.AddObject(FORBID_DEL_FAIL, TBaseProcess.Create(AClient));
  84. FProtocols.AddObject(FORBID_DEL_P2P, TForbidDelP.Create(AClient));
  85. // FProtocols.AddObject(FORBID_LIST_REQUEST, TBaseProcess.Create(nil));
  86. FProtocols.AddObject(FORBID_LIST_RESPONSE, TForbidListResponse.Create(AClient));
  87. FProtocols.AddObject(FORBID_LIST_FAIL, TBaseProcess.Create(AClient));
  88. // FProtocols.AddObject(FORBID_GET_REQUEST, TBaseProcess.Create(nil));
  89. FProtocols.AddObject(FORBID_GET_RESPONSE, TForbidGetResponse.Create(AClient));
  90. FProtocols.AddObject(FORBID_GET_FAIL, TBaseProcess.Create(AClient));
  91. // FProtocols.AddObject(NOTICE_ADD_REQUEST, TBaseProcess.Create(nil));
  92. FProtocols.AddObject(NOTICE_ADD_RESPONSE, TNoticeAddResponse.Create(AClient));
  93. FProtocols.AddObject(NOTICE_ADD_FAIL, TBaseProcess.Create(AClient));
  94. FProtocols.AddObject(NOTICE_ADD_BROADCAST, TNoticeAddResponse.Create(AClient));
  95. // FProtocols.AddObject(NOTICE_UPDATE_REQUEST, TBaseProcess.Create(nil));
  96. FProtocols.AddObject(NOTICE_UPDATE_RESPONSE, TNoticeUpdateResponse.Create(AClient));
  97. FProtocols.AddObject(NOTICE_UPDATE_FAIL, TBaseProcess.Create(AClient));
  98. FProtocols.AddObject(NOTICE_UPDATE_BROADCAST, TNoticeUpdateResponse.Create(AClient));
  99. // FProtocols.AddObject(NOTICE_DEL_REQUEST, TBaseProcess.Create(nil));
  100. FProtocols.AddObject(NOTICE_DEL_RESPONSE, TNoticeDelResponse.Create(AClient));
  101. FProtocols.AddObject(NOTICE_DEL_FAIL, TBaseProcess.Create(AClient));
  102. FProtocols.AddObject(NOTICE_DEL_BROADCAST, TNoticeDelResponse.Create(AClient));
  103. // FProtocols.AddObject(NOTICE_GET_REQUEST, TBaseProcess.Create(nil));
  104. FProtocols.AddObject(NOTICE_GET_RESPONSE, TNoticeGetResponse.Create(AClient));
  105. FProtocols.AddObject(NOTICE_GET_FAIL, TBaseProcess.Create(AClient));
  106. end;
  107. destructor TGroupProtocol.Destroy;
  108. begin
  109. FreeAndNil(FProtocols);
  110. inherited;
  111. end;
  112. procedure TGroupProtocol.Proccess(AData: WideString);
  113. var
  114. ja: TSuperArray;
  115. proto: string;
  116. i: Integer;
  117. begin
  118. try
  119. //GrpMonitor.ReflashLastTime;
  120. AData := Copy(AData,3,length(AData));
  121. if AData = '' then
  122. Exit;
  123. ja := SO(AData).AsArray;
  124. i := FProtocols.IndexOf(ja.S[0]);
  125. if i < 0 then
  126. Exit;
  127. (FProtocols.Objects[i] as TBaseProcess).Excute(ja.O[1])
  128. except
  129. on E: Exception do
  130. Error(E.Message+AData, 'TGroupProtocol.Proccess(' + AData + ')');
  131. end;
  132. end;
  133. end.