unit DAServer_Intf;

// ----------------------------------------------------------------------
//  This file was automatically generated by Remoting SDK from a
//  RODL file downloaded from a server or associated with this project.
//
//  Do not modify this file manually, or your changes will be lost when
//  it is regenerated the next time you update your RODL.
// ----------------------------------------------------------------------

{$I RemObjects.inc}

interface

uses
  {$IFDEF DELPHIXE2UP}System.SysUtils{$ELSE}SysUtils{$ENDIF},
  {$IFDEF DELPHIXE2UP}System.Classes{$ELSE}Classes{$ENDIF},
  {$IFDEF DELPHIXE2UP}System.TypInfo{$ELSE}TypInfo{$ENDIF},
  {$IFDEF RO_GenericArray}uROArray,{$ENDIF}
  uROEncoding,
  uROUri,
  uROProxy,
  uROExceptions,
  uROXMLIntf,
  uROClasses,
  uROTypes,
  uROClientIntf,
  uROAsync,
  uROEventReceiver,
  DataAbstract4_Intf;

const LibraryUID: String = '{59AAFC78-7AD0-424D-AD97-0584C946092C}';
const DefaultNamespace: String = 'DAServer';
const TargetNamespace: String = 'DAServer';
const IDataService_IID: TGUID = '{81684074-E6C1-42E4-AA46-34365716E1EB}';
type
  { Forward declarations }
  IDataService = interface;
  IDataService_Async = interface;
  IDataService_AsyncEx = interface;
  CoDataService = class;
  CoDataService_Async = class;
  CoDataService_AsyncEx = class;
  TDataService_Proxy = class;
  TDataService_AsyncProxy = class;
  TDataService_AsyncProxyEx = class;

  IDataService = interface(DataAbstract4_intf.IDataAbstractService)
  ['{81684074-E6C1-42E4-AA46-34365716E1EB}']
  end;

  IDataService_Async = interface(DataAbstract4_intf.IDataAbstractService_Async)
  end;

  IDataService_AsyncEx = interface(DataAbstract4_intf.IDataAbstractService_AsyncEx)
  end;

  CoDataService = class(System.TObject)
  public
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataService; overload;
    class function Create(const aUri: TROUri; aDefaultNamespaces: String = ''): IDataService; overload;
    class function Create(const aUrl: String; aDefaultNamespaces: String = ''): IDataService; overload;
  end;

  CoDataService_Async = class(System.TObject)
  public
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataService_Async; overload;
    class function Create(const aUri: TROUri; aDefaultNamespaces: String = ''): IDataService_Async; overload;
    class function Create(const aUrl: String; aDefaultNamespaces: String = ''): IDataService_Async; overload;
  end;

  CoDataService_AsyncEx = class(System.TObject)
  public
    class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataService_AsyncEx; overload;
    class function Create(const aUri: TROUri; aDefaultNamespaces: String = ''): IDataService_AsyncEx; overload;
    class function Create(const aUrl: String; aDefaultNamespaces: String = ''): IDataService_AsyncEx; overload;
  end;

  TDataService_Proxy = class(DataAbstract4_intf.TDataAbstractService_Proxy, IDataService)
  protected
    function __GetInterfaceName: String; override;
  end;

  TDataService_AsyncProxy = class(DataAbstract4_intf.TDataAbstractService_AsyncProxy, IDataService_Async)
  protected
    function __GetInterfaceName: String; override;
  end;

  TDataService_AsyncProxyEx = class(DataAbstract4_intf.TDataAbstractService_AsyncProxyEx, IDataService_AsyncEx)
  protected
    function __GetInterfaceName: String; override;
  end;

function DefaultNamespaces: String;
implementation

uses
  uROSystem,
  uROSerializer,
  uROClient,
  uROTransportChannel,
  uRORes;

function DefaultNamespaces: String;
var
  lres: String;
begin
  lres := DefaultNamespace;
  lres := (lres + ';') + DataAbstract4_Intf.DefaultNamespace;
  result := lres;
  exit;
end;

type
  { Forward declarations }
  TMyTransportChannel = class;

  TMyTransportChannel = class(TROTransportChannel)
  end;

class function CoDataService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataService;
begin
  result := TDataService_Proxy.Create(aMessage, aTransportChannel);
  exit;
end;

class function CoDataService.Create(const aUri: TROUri; aDefaultNamespaces: String = ''): IDataService;
begin
  result := TDataService_Proxy.Create(aUri, aDefaultNamespaces);
  exit;
end;

class function CoDataService.Create(const aUrl: String; aDefaultNamespaces: String = ''): IDataService;
begin
  result := TDataService_Proxy.Create(aUrl, aDefaultNamespaces);
  exit;
end;

class function CoDataService_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataService_Async;
begin
  result := TDataService_AsyncProxy.Create(aMessage, aTransportChannel);
  exit;
end;

class function CoDataService_Async.Create(const aUri: TROUri; aDefaultNamespaces: String = ''): IDataService_Async;
begin
  result := TDataService_AsyncProxy.Create(aUri, aDefaultNamespaces);
  exit;
end;

class function CoDataService_Async.Create(const aUrl: String; aDefaultNamespaces: String = ''): IDataService_Async;
begin
  result := TDataService_AsyncProxy.Create(aUrl, aDefaultNamespaces);
  exit;
end;

class function CoDataService_AsyncEx.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IDataService_AsyncEx;
begin
  result := TDataService_AsyncProxyEx.Create(aMessage, aTransportChannel);
  exit;
end;

class function CoDataService_AsyncEx.Create(const aUri: TROUri; aDefaultNamespaces: String = ''): IDataService_AsyncEx;
begin
  result := TDataService_AsyncProxyEx.Create(aUri, aDefaultNamespaces);
  exit;
end;

class function CoDataService_AsyncEx.Create(const aUrl: String; aDefaultNamespaces: String = ''): IDataService_AsyncEx;
begin
  result := TDataService_AsyncProxyEx.Create(aUrl, aDefaultNamespaces);
  exit;
end;

function TDataService_Proxy.__GetInterfaceName: String;
begin
  result := 'DataService';
  exit;
end;

function TDataService_AsyncProxy.__GetInterfaceName: String;
begin
  result := 'DataService';
  exit;
end;

function TDataService_AsyncProxyEx.__GetInterfaceName: String;
begin
  result := 'DataService';
  exit;
end;

initialization
  RegisterProxyClass(IDataService_IID, TDataService_Proxy);
finalization
  UnregisterProxyClass(IDataService_IID);
end.

