- 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
164 lines
5.0 KiB
ObjectPascal
164 lines
5.0 KiB
ObjectPascal
unit uROServerIntf;
|
|
|
|
{----------------------------------------------------------------------------}
|
|
{ RemObjects SDK Library - Core Library }
|
|
{ }
|
|
{ compiler: Delphi 5 and up, Kylix 2 and up }
|
|
{ platform: Win32, Linux }
|
|
{ }
|
|
{ (c)opyright RemObjects Software. all rights reserved. }
|
|
{ }
|
|
{ Using this code requires a valid license of the RemObjects SDK }
|
|
{ which can be obtained at http://www.remobjects.com. }
|
|
{----------------------------------------------------------------------------}
|
|
|
|
{$I RemObjects.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
{$IFDEF REMOBJECTS_TRIAL}uROTrial,{$ENDIF}
|
|
{$IFDEF WIN32}Windows, {$ENDIF}
|
|
uRORes, uROClientIntf, uROTypes, Classes, SysUtils;
|
|
|
|
type
|
|
{$IFDEF DELPHI5}
|
|
{ IInterface }
|
|
IInterface = IUnknown;
|
|
{$ENDIF}
|
|
|
|
IROClassFactory = interface;
|
|
|
|
TROResponseOption = (roNoResponse, roDontEncrypt);
|
|
TROResponseOptions = set of TROResponseOption;
|
|
|
|
{ IROInvoker }
|
|
IROInvoker = interface
|
|
['{6BF28A4D-1511-4FD0-83C0-0F0A23322ACC}']
|
|
function HandleMessage(const aFactory : IROClassFactory;
|
|
const aMessage : IROMessage;
|
|
const aTransport : IROTransport;
|
|
out oResponseOptions: TROResponseOptions) : boolean;
|
|
end;
|
|
|
|
{ IROClassFactory }
|
|
IROClassFactory = interface
|
|
['{87580688-9994-4EB3-BDB9-E621ED52C3E9}']
|
|
procedure CreateInstance(const aClientID : TGUID; out anInstance : IInterface);
|
|
procedure ReleaseInstance(const aClientID: TGUID; var anInstance : IInterface);
|
|
|
|
function GetInterfaceName : string;
|
|
function GetInvoker : IROInvoker;
|
|
|
|
property InterfaceName : string read GetInterfaceName;
|
|
property Invoker : IROInvoker read GetInvoker;
|
|
end;
|
|
|
|
IROPooledClassFactory = interface(IROClassFactory)
|
|
['{DB0C4A2B-CA2C-4CDA-A02C-289918B29FA3}']
|
|
procedure ClearPool;
|
|
end;
|
|
|
|
{ IRODispatchNotifier }
|
|
IRODispatchNotifier = interface
|
|
['{C3359706-83B8-4285-866C-D4DD5960B183}']
|
|
procedure GetDispatchInfo(const aTransport : IROTransport; const aMessage : IROMessage);
|
|
end;
|
|
|
|
{ IRODestructorController }
|
|
IRODestructorController = interface
|
|
['{D590AF9A-1029-450B-A8B7-0EC8A93DF7DC}']
|
|
function CanBeDestroyed : boolean;
|
|
end;
|
|
|
|
{ IRODestructorControllerEx }
|
|
IRODestructorControllerEx = interface(IRODestructorController)
|
|
['{2897DFAE-A466-4886-ADC3-9F0D7DD393A8}']
|
|
procedure SetCanBeDestroyed(Value : boolean);
|
|
end;
|
|
|
|
{ IROObjectActivation }
|
|
IROObjectActivation = interface
|
|
['{071ECDF1-A4B0-4333-93B4-EE1B8609FF80}']
|
|
procedure OnActivate(aClientID: TGUID; const aMessage : IROMessage);
|
|
procedure OnDeactivate(aClientID: TGUID);
|
|
end;
|
|
|
|
{ IROObjectTimeout }
|
|
IROObjectTimeout = interface
|
|
['{DC7FC0CB-D3C6-4CA7-8F71-57ECE1392594}']
|
|
procedure OnTimeout;
|
|
end;
|
|
|
|
{ IROServerEventsBroker }
|
|
IROServerEventsBroker = interface
|
|
['{5B6A3449-3B13-4B0A-B1FF-B2FAA18D57B1}']
|
|
procedure RegisterEventClient(const ClientID, EventTypes : string);
|
|
procedure UnregisterEventClient(const ClientID, EventTypes : string);
|
|
|
|
function GetEventsData(const ClientID : string; out EventsData : Binary) : integer;
|
|
end;
|
|
|
|
TROEventData = class;
|
|
|
|
IROActiveEventServer = interface
|
|
['{DD0B0C09-2D17-46EA-8110-E7BEE9B8AB7B}']
|
|
procedure EventsRegistered(aSender : TObject; aClient: TGUID);
|
|
procedure DispatchEvent(anEventDataItem : TROEventData; aSessionReference : TGUID; aSender: TObject); // asender is TROEventRepository
|
|
end;
|
|
|
|
{ TROEventData }
|
|
TROEventData = class
|
|
private
|
|
fData: TStream;
|
|
fRefCount: integer;
|
|
// fShouldRemoveFromOwner: Boolean;
|
|
protected
|
|
public
|
|
constructor Create(anEventDataStream : TMemoryStream);
|
|
destructor Destroy; override;
|
|
|
|
function AddRef : integer;
|
|
function RemoveRef : integer;
|
|
// property ShouldRemoveFromOwner: Boolean read fShouldRemoveFromOwner write fShouldRemoveFromOwner;
|
|
|
|
property Data : TStream read fData;
|
|
end;
|
|
|
|
|
|
|
|
implementation
|
|
uses
|
|
uROClasses;
|
|
|
|
{ TROEventData }
|
|
|
|
function TROEventData.AddRef : integer;
|
|
begin
|
|
result := InterlockedIncrement(fRefCount);
|
|
end;
|
|
|
|
constructor TROEventData.Create(anEventDataStream : TMemoryStream);
|
|
begin
|
|
inherited Create;
|
|
fRefCount := 1;
|
|
// fShouldRemoveFromOwner := true;
|
|
fData := TMemoryStream.Create;
|
|
anEventDataStream.Position := 0;
|
|
fData.CopyFrom(anEventDataStream, anEventDataStream.Size);
|
|
end;
|
|
|
|
destructor TROEventData.Destroy;
|
|
begin
|
|
FreeAndNIL(fData);
|
|
inherited;
|
|
end;
|
|
|
|
function TROEventData.RemoveRef : integer;
|
|
begin
|
|
result := InterlockedDecrement(fRefCount);
|
|
end;
|
|
|
|
|
|
end.
|