* Add GetMulticastObserver

This commit is contained in:
Michaël Van Canneyt 2023-11-08 08:36:21 +01:00
parent 594090b215
commit 094f8a7be7
2 changed files with 15 additions and 0 deletions

View File

@ -195,6 +195,7 @@ Type
TComponent = Class;
TStringList = Class;
IInterfaceList = Interface;
EObserver = Class(Exception);
@ -370,6 +371,7 @@ Type
function TryIsObserving(const aID: Integer; out aIntf: IInterface): Boolean; virtual;
function GetSingleCastObserver(const aID: Integer): IInterface; virtual;
function GetMultiCastObserverArray(const aID: Integer) : TIInterfaceArray; virtual;
function GetMultiCastObserver(const aID: Integer) : IInterfaceList; virtual;
end;
{ TLinkObservers }

View File

@ -138,6 +138,19 @@ begin
raise EObserverException.CreateFmt(SerrObserverNoMulticastFound, [aID]);
end;
function TObservers.GetMultiCastObserver(const aID: Integer): IInterfaceList;
Var
IntfArray : TIInterfaceArray;
Intf : IInterface;
begin
Result:=TInterfaceList.Create;
IntfArray:=GetMultiCastObserverArray(aId);
For Intf in IntfArray do
Result.Add(Intf);
end;
{ TObservers.TIDArray }
procedure TObservers.TIDArray.Add(const aInterface: IInterface);