- Recompilación en Delphi10 de todos los paquetes de RO para generar las DCU's en Lib\D10 - Recompilación en Delphi10 de todos los paquetes de DA para generar las DCU's en Lib\D10 git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@9 b6239004-a887-0f4b-9937-50029ccdca16
73 lines
2.0 KiB
ObjectPascal
73 lines
2.0 KiB
ObjectPascal
unit uRODataSnapProviderManager;
|
|
|
|
interface
|
|
|
|
uses Contnrs, Provider,
|
|
uRODataSnapProviderPublisher, uRODataSnap_Intf;
|
|
|
|
type TProviderManager = class(TObjectList)
|
|
public
|
|
constructor Create();
|
|
procedure RegisterPublisher(iPublisher:TROCustomDataSnapProviderPublisher);
|
|
procedure UnregisterPublisher(iPublisher:TROCustomDataSnapProviderPublisher);
|
|
function GetProviderNames:TProviderNames;
|
|
function GetProviderByName(const iProviderName:string):TCustomProvider;
|
|
end;
|
|
|
|
var ProviderManager:TProviderManager;
|
|
|
|
implementation
|
|
|
|
uses SysUtils, Classes,
|
|
uRODataSnapRes;
|
|
|
|
{ TProviderManager }
|
|
|
|
constructor TProviderManager.Create;
|
|
begin
|
|
inherited Create(false);
|
|
end;
|
|
|
|
function TProviderManager.GetProviderByName(const iProviderName:string): TCustomProvider;
|
|
var i:integer;
|
|
begin
|
|
//ToDo: protect by CriticalSection;
|
|
|
|
result := nil;
|
|
for i := 0 to Count-1 do begin
|
|
result := (Items[i] as TRODataSnapProviderPublisher).GetProviderByName(iProviderName);
|
|
if Assigned(result) then break;
|
|
end; { for }
|
|
if not Assigned(result) then raise Exception.CreateFmt(sProviderNotExported,[iProviderName]);
|
|
end;
|
|
|
|
function TProviderManager.GetProviderNames: TProviderNames;
|
|
var i:integer;
|
|
begin
|
|
//ToDo: protect by CriticalSection;
|
|
result := TProviderNames.Create();
|
|
for i := 0 to Count-1 do begin
|
|
(Items[i] as TRODataSnapProviderPublisher).AddNamesToTProviderNames(result);
|
|
end; { for }
|
|
end;
|
|
|
|
procedure TProviderManager.RegisterPublisher(iPublisher: TROCustomDataSnapProviderPublisher);
|
|
begin
|
|
//ToDo: protect by CriticalSection;
|
|
if IndexOf(iPublisher) = -1 then Add(iPublisher);
|
|
end;
|
|
|
|
procedure TProviderManager.UnregisterPublisher(iPublisher: TROCustomDataSnapProviderPublisher);
|
|
var lIndex:integer;
|
|
begin
|
|
lIndex := IndexOf(iPublisher);
|
|
if IndexOf(iPublisher) <> -1 then Delete(lIndex);
|
|
end;
|
|
|
|
initialization
|
|
ProviderManager := TProviderManager.Create();
|
|
finalization
|
|
FreeAndNil(ProviderManager);
|
|
|
|
end.
|