📄 peerrecipesoapdm.pas
字号:
Unit PeerRecipeSoapDM;
interface
uses
SysUtils, Classes, InvokeRegistry, Midas, SOAPMidas, SOAPDm, PeerRecipeIntf;
type
IPeerRecipeDM = interface(IAppServerSOAP)
['{900AC2C2-E4C3-446B-92FF-609DB82215CB}']
end;
TPeerRecipeDM = class(TSoapDataModule, IPeerRecipeDM, IAppServerSOAP,
IAppServer, IPeerRecipe)
private
public
procedure Connect(const AURL: string); stdcall;
procedure Disconnect(const AURL: string); stdcall;
procedure FindRecipe(const ATTL: Integer;
const AURL: string;
const AGUID: string;
const ASearch: string); stdcall;
procedure RecipeFound(const AGUID, ARecipe: string); stdcall;
end;
implementation
{$R *.DFM}
uses
PeerRecipeWebMod, WebBrokerSoap, Helpers, IPeerRecipeClient;
procedure TPeerRecipeDMCreateInstance(out obj: TObject);
begin
obj := TPeerRecipeDM.Create(nil);
end;
{ TPeerRecipeDM }
procedure TPeerRecipeDM.Connect(const AURL: string);
begin
AddToFile(cPeers,AURL);
end;
procedure TPeerRecipeDM.Disconnect(const AURL: string);
begin
DeleteFromFile(cPeers,AURL);
end;
procedure TPeerRecipeDM.FindRecipe(const ATTL: Integer;
const AURL, AGUID, ASearch: string);
var
lIdx: Integer;
lFile: TStringList;
lRecipe: string;
begin
if (ATTL > 0) and FileExists(cPeers) then
begin
lFile := TStringList.Create;
try
lFile.LoadFromFile(cPeers);
for lIdx := 0 to pred(lFile.Count) do
begin
GetIPeerRecipe(lFile[lIdx]).
FindRecipe(Pred(ATTL), AURL, AGUID, ASearch);
end;
finally
lFile.Free;
end;
end;
lRecipe := SearchFile(cRecipes,ASearch);
if lRecipe <> '' then
begin
GetIPeerRecipe(AURL).RecipeFound(AGUID,lRecipe);
end;
end;
procedure TPeerRecipeDM.RecipeFound(const AGUID, ARecipe: string);
begin
AddToFile(cRecipes, ARecipe);
end;
initialization
InvRegistry.RegisterInvokableClass(TPeerRecipeDM, TPeerRecipeDMCreateInstance);
InvRegistry.RegisterInterface(TypeInfo(IPeerRecipeDM));
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -