| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- unit GroupProtocols;
- interface
- uses
- Classes, SysUtils, GroupUtility, superobject;
- type
- TGroupProtocol = class
- private
- FProtocols: TStringList;
- public
- constructor Create(AGroupClient: TObject);
- destructor Destroy; override;
- procedure Proccess(AData: WideString);
- end;
- implementation
- uses
- GroupProcess, LoggerImport, GroupClient;
- { TGroupProtocol }
- constructor TGroupProtocol.Create(AGroupClient: TObject);
- var
- AClient: TGroupClient;
- begin
- AClient := (AGroupClient as TGroupClient);
- FProtocols := TStringList.Create;
- // FProtocols.AddObject(GROUP_CREATE_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(GROUP_CREATE_RESPONSE, TGroupCreateResponse.Create(AClient));
- FProtocols.AddObject(GROUP_CREATE_FAIL, TBaseProcess.Create(AClient));
- FProtocols.AddObject(GROUP_CREATE_BROADCAST, TGroupCreateResponse.Create(AClient));
- // FProtocols.AddObject(GROUP_UPDATE_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(GROUP_UPDATE_RESPONSE, TGroupUpdateResponse.Create(AClient));
- FProtocols.AddObject(GROUP_UPDATE_FAIL, TBaseProcess.Create(AClient));
- FProtocols.AddObject(GROUP_UPDATE_BROADCAST, TGroupUpdateResponse.Create(AClient));
- // FProtocols.AddObject(GROUP_DEL_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(GROUP_DEL_RESPONSE, TGroupDeleteResponse.Create(AClient));
- FProtocols.AddObject(GROUP_DEL_FAIL, TBaseProcess.Create(AClient));
- FProtocols.AddObject(GROUP_DEL_BROADCAST, TGroupDeleteResponse.Create(AClient));
- // FProtocols.AddObject(GROUP_GET_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(GROUP_GET_RESPONSE, TGroupAsynResponse.Create(AClient));
- FProtocols.AddObject(GROUP_GET_FAIL, TBaseProcess.Create(AClient));
- // FProtocols.AddObject(GROUP_QUERY_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(GROUP_QUERY_RESPONSE, TGroupSearchResponse.Create(AClient));
- FProtocols.AddObject(GROUP_QUERY_FAIL, TBaseProcess.Create(AClient));
- // FProtocols.AddObject(MEMBER_QUERY_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(MEMBER_QUERY_RESPONSE, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MEMBER_QUERY_FAIL, TBaseProcess.Create(AClient));
- // FProtocols.AddObject(MEMBER_ADD_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(MEMBER_ADD_RESPONSE, TMemberAddResponse.Create(AClient));
- FProtocols.AddObject(MEMBER_ADD_FAIL, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MEMBER_ADD_BROADCAST, TMemberAddResponse.Create(AClient));
- // FProtocols.AddObject(MEMBER_ADD_P, TBaseProcess.Create(nil));
- // FProtocols.AddObject(MEMBER_DEL_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(MEMBER_DEL_RESPONSE, TMemberDelResponse.Create(AClient));
- FProtocols.AddObject(MEMBER_DEL_FAIL, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MEMBER_DEL_BROADCAST, TMemberDelResponse.Create(AClient));
- // FProtocols.AddObject(MEMBER_UPDATE_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(MEMBER_UPDATE_RESPONSE, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MEMBER_UPDATE_FAIL, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MEMBER_UPDATE_BROADCAST, TBaseProcess.Create(AClient));
- // FProtocols.AddObject(MEMBER_APPLY_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(MEMBER_APPLY_RESPONSE, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MEMBER_APPLY_FAIL, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MEMBER_APPLY_P2P, TMemberApplyP.Create(AClient));
- // FProtocols.AddObject(MEMBER_REPLY_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(MEMBER_REPLY_RESPONSE, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MEMBER_REPLY_FAIL, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MEMBER_REPLY_P2P, TMemberReplyP.Create(AClient));
- // FProtocols.AddObject(MESSAGE_SAY_REQUEST, TBaseProcess.Create(nil));
- // FProtocols.AddObject(MESSAGE_SAY_RESPONSE, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MESSAGE_SAY_BROADCAST, TMessageBroadcast.Create(AClient));
- FProtocols.AddObject(MESSAGE_OFFLINE_RESPONSE, TOfflineMessageResponse.Create(AClient));
- // FProtocols.AddObject(MARK_MK_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(MARK_MK_RESPONSE, TBaseProcess.Create(AClient));
- FProtocols.AddObject(MARK_MK_B, TMessageMiscBroadcast.Create(AClient));
- // FProtocols.AddObject(MEMBER_GS_REQUEST, TBaseProcess.Create(nil));
- FProtocols.AddObject(USER_LI_RESPONSE, TGetMyGroupsResponse.Create(AClient));
- FProtocols.AddObject(FILE_UPLOADED_BROADCAST, TFileDownloadBroadcast.Create(AClient));
- FProtocols.AddObject(HISTORY_H_R, TNewOfflineMessageResponse.Create(AClient));
- end;
- destructor TGroupProtocol.Destroy;
- begin
- FreeAndNil(FProtocols);
- inherited;
- end;
- procedure TGroupProtocol.Proccess(AData: WideString);
- var
- ja: TSuperArray;
- proto: string;
- i: Integer;
- begin
- try
- //GrpMonitor.ReflashLastTime;
- AData := Copy(AData,3,length(AData));
- if AData = '' then
- Exit;
- ja := SO(AData).AsArray;
- i := FProtocols.IndexOf(ja.S[0]);
- if i < 0 then
- Exit;
- (FProtocols.Objects[i] as TBaseProcess).Excute(ja.O[1])
- except
- on E: Exception do
- Error(E.Message+AData, 'TGroupProtocol.Proccess('+AData+')');
- end;
- end;
- end.
|