Componentes.Terceros.RemObj.../internal/5.0.24.615/1/Data Abstract for Delphi/Samples/MegaDemo/MegaDemoLibrary_Intf.pas

356 lines
11 KiB
ObjectPascal

unit MegaDemoLibrary_Intf;
{----------------------------------------------------------------------------}
{ This unit was automatically generated by the RemObjects SDK after reading }
{ the RODL file associated with this project . }
{ }
{ Do not modify this unit manually, or your changes will be lost when this }
{ unit is regenerated the next time you compile the project. }
{----------------------------------------------------------------------------}
{$I Remobjects.inc}
interface
uses
{vcl:} Classes, TypInfo,
{RemObjects:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf,
{Used RODLs:} DataAbstract4_Intf;
const
{ Library ID }
LibraryUID = '{7C1E1A6D-C50B-482D-AE41-090E9A61BBB0}';
TargetNamespace = '';
{ Service Interface ID's }
ILoginService_IID : TGUID = '{ABD98EFC-78DA-4704-A3EB-0D89CC8BC618}';
IOrdersService_IID : TGUID = '{6EC8387D-B288-4EE0-BFB7-C4BAEF28E50B}';
{ Event ID's }
type
{ Forward declarations }
ILoginService = interface;
IOrdersService = interface;
LoginInfo = class;
{ Enumerateds }
JobType = (JobType_SalesRep,JobType_Manager,JobType_Engineer);
{ LoginInfo }
LoginInfo = class(TROComplexType)
private
fSessionID: String;
fEmployeeID: Integer;
fFirstName: String;
fLastName: String;
fJob_Type: JobType;
fJobTitle: String;
public
procedure Assign(iSource: TPersistent); override;
procedure ReadComplex(ASerializer: TObject); override;
procedure WriteComplex(ASerializer: TObject); override;
published
property SessionID:String read fSessionID write fSessionID;
property EmployeeID:Integer read fEmployeeID write fEmployeeID;
property FirstName:String read fFirstName write fFirstName;
property LastName:String read fLastName write fLastName;
property Job_Type:JobType read fJob_Type write fJob_Type;
property JobTitle:String read fJobTitle write fJobTitle;
end;
{ LoginInfoCollection }
LoginInfoCollection = class(TROCollection)
protected
constructor Create(aItemClass: TCollectionItemClass); overload;
function GetItems(aIndex: integer): LoginInfo;
procedure SetItems(aIndex: integer; const Value: LoginInfo);
public
constructor Create; overload;
function Add: LoginInfo; reintroduce;
property Items[Index: integer]:LoginInfo read GetItems write SetItems; default;
end;
{ ILoginService }
ILoginService = interface(IDataAbstractService)
['{ABD98EFC-78DA-4704-A3EB-0D89CC8BC618}']
function Login(const UserName: String; const Password: String; out aLoginInfo: LoginInfo): Boolean;
procedure Logout;
end;
{ CoLoginService }
CoLoginService = class
class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): ILoginService;
end;
{ TLoginService_Proxy }
TLoginService_Proxy = class(TDataAbstractService_Proxy, ILoginService)
protected
function __GetInterfaceName:string; override;
function Login(const UserName: String; const Password: String; out aLoginInfo: LoginInfo): Boolean;
procedure Logout;
end;
{ IOrdersService }
IOrdersService = interface(IDataAbstractService)
['{6EC8387D-B288-4EE0-BFB7-C4BAEF28E50B}']
function GetCustomerOrders(const CustomerID: String): Binary;
end;
{ CoOrdersService }
CoOrdersService = class
class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IOrdersService;
end;
{ TOrdersService_Proxy }
TOrdersService_Proxy = class(TDataAbstractService_Proxy, IOrdersService)
protected
function __GetInterfaceName:string; override;
function GetCustomerOrders(const CustomerID: String): Binary;
end;
implementation
uses
{vcl:} SysUtils,
{RemObjects:} uROEventRepository, uROSerializer, uRORes;
{ LoginInfo }
procedure LoginInfo.Assign(iSource: TPersistent);
var lSource: MegaDemoLibrary_Intf.LoginInfo;
begin
inherited Assign(iSource);
if (iSource is MegaDemoLibrary_Intf.LoginInfo) then begin
lSource := MegaDemoLibrary_Intf.LoginInfo(iSource);
SessionID := lSource.SessionID;
EmployeeID := lSource.EmployeeID;
FirstName := lSource.FirstName;
LastName := lSource.LastName;
Job_Type := lSource.Job_Type;
JobTitle := lSource.JobTitle;
end;
end;
procedure LoginInfo.ReadComplex(ASerializer: TObject);
var
l_EmployeeID: Integer;
l_FirstName: String;
l_Job_Type: JobType;
l_JobTitle: String;
l_LastName: String;
l_SessionID: String;
begin
if TROSerializer(ASerializer).RecordStrictOrder then begin
l_SessionID := SessionID;
TROSerializer(ASerializer).ReadUTF8String('SessionID', l_SessionID);
SessionID := l_SessionID;
l_EmployeeID := EmployeeID;
TROSerializer(ASerializer).ReadInteger('EmployeeID', otSLong, l_EmployeeID);
EmployeeID := l_EmployeeID;
l_FirstName := FirstName;
TROSerializer(ASerializer).ReadUTF8String('FirstName', l_FirstName);
FirstName := l_FirstName;
l_LastName := LastName;
TROSerializer(ASerializer).ReadUTF8String('LastName', l_LastName);
LastName := l_LastName;
l_Job_Type := Job_Type;
TROSerializer(ASerializer).ReadEnumerated('Job_Type',TypeInfo(JobType), l_Job_Type);
Job_Type := l_Job_Type;
l_JobTitle := JobTitle;
TROSerializer(ASerializer).ReadUTF8String('JobTitle', l_JobTitle);
JobTitle := l_JobTitle;
end else begin
l_EmployeeID := EmployeeID;
TROSerializer(ASerializer).ReadInteger('EmployeeID', otSLong, l_EmployeeID);
EmployeeID := l_EmployeeID;
l_FirstName := FirstName;
TROSerializer(ASerializer).ReadUTF8String('FirstName', l_FirstName);
FirstName := l_FirstName;
l_Job_Type := Job_Type;
TROSerializer(ASerializer).ReadEnumerated('Job_Type',TypeInfo(JobType), l_Job_Type);
Job_Type := l_Job_Type;
l_JobTitle := JobTitle;
TROSerializer(ASerializer).ReadUTF8String('JobTitle', l_JobTitle);
JobTitle := l_JobTitle;
l_LastName := LastName;
TROSerializer(ASerializer).ReadUTF8String('LastName', l_LastName);
LastName := l_LastName;
l_SessionID := SessionID;
TROSerializer(ASerializer).ReadUTF8String('SessionID', l_SessionID);
SessionID := l_SessionID;
end;
end;
procedure LoginInfo.WriteComplex(ASerializer: TObject);
var
l_EmployeeID: Integer;
l_FirstName: String;
l_Job_Type: JobType;
l_JobTitle: String;
l_LastName: String;
l_SessionID: String;
begin
if TROSerializer(ASerializer).RecordStrictOrder then begin
l_SessionID := SessionID;
TROSerializer(ASerializer).WriteUTF8String('SessionID', l_SessionID);
SessionID := l_SessionID;
l_EmployeeID := EmployeeID;
TROSerializer(ASerializer).WriteInteger('EmployeeID', otSLong, l_EmployeeID);
EmployeeID := l_EmployeeID;
l_FirstName := FirstName;
TROSerializer(ASerializer).WriteUTF8String('FirstName', l_FirstName);
FirstName := l_FirstName;
l_LastName := LastName;
TROSerializer(ASerializer).WriteUTF8String('LastName', l_LastName);
LastName := l_LastName;
l_Job_Type := Job_Type;
TROSerializer(ASerializer).WriteEnumerated('Job_Type',TypeInfo(JobType), l_Job_Type);
Job_Type := l_Job_Type;
l_JobTitle := JobTitle;
TROSerializer(ASerializer).WriteUTF8String('JobTitle', l_JobTitle);
JobTitle := l_JobTitle;
end else begin
l_EmployeeID := EmployeeID;
TROSerializer(ASerializer).WriteInteger('EmployeeID', otSLong, l_EmployeeID);
EmployeeID := l_EmployeeID;
l_FirstName := FirstName;
TROSerializer(ASerializer).WriteUTF8String('FirstName', l_FirstName);
FirstName := l_FirstName;
l_Job_Type := Job_Type;
TROSerializer(ASerializer).WriteEnumerated('Job_Type',TypeInfo(JobType), l_Job_Type);
Job_Type := l_Job_Type;
l_JobTitle := JobTitle;
TROSerializer(ASerializer).WriteUTF8String('JobTitle', l_JobTitle);
JobTitle := l_JobTitle;
l_LastName := LastName;
TROSerializer(ASerializer).WriteUTF8String('LastName', l_LastName);
LastName := l_LastName;
l_SessionID := SessionID;
TROSerializer(ASerializer).WriteUTF8String('SessionID', l_SessionID);
SessionID := l_SessionID;
end;
end;
{ LoginInfoCollection }
constructor LoginInfoCollection.Create;
begin
inherited Create(LoginInfo);
end;
constructor LoginInfoCollection.Create(aItemClass: TCollectionItemClass);
begin
inherited Create(aItemClass);
end;
function LoginInfoCollection.Add: LoginInfo;
begin
result := LoginInfo(inherited Add);
end;
function LoginInfoCollection.GetItems(aIndex: integer): LoginInfo;
begin
result := LoginInfo(inherited Items[aIndex]);
end;
procedure LoginInfoCollection.SetItems(aIndex: integer; const Value: LoginInfo);
begin
LoginInfo(inherited Items[aIndex]).Assign(Value);
end;
{ CoLoginService }
class function CoLoginService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): ILoginService;
begin
result := TLoginService_Proxy.Create(aMessage, aTransportChannel);
end;
{ TLoginService_Proxy }
function TLoginService_Proxy.__GetInterfaceName:string;
begin
result := 'LoginService';
end;
function TLoginService_Proxy.Login(const UserName: String; const Password: String; out aLoginInfo: LoginInfo): Boolean;
begin
try
aLoginInfo := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'MegaDemoLibrary', __InterfaceName, 'Login');
__Message.Write('UserName', TypeInfo(String), UserName, []);
__Message.Write('Password', TypeInfo(String), Password, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Boolean), result, []);
__Message.Read('aLoginInfo', TypeInfo(MegaDemoLibrary_Intf.LoginInfo), aLoginInfo, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
procedure TLoginService_Proxy.Logout;
begin
try
__Message.InitializeRequestMessage(__TransportChannel, 'MegaDemoLibrary', __InterfaceName, 'Logout');
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
finally
__Message.FreeStream;
end
end;
{ CoOrdersService }
class function CoOrdersService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IOrdersService;
begin
result := TOrdersService_Proxy.Create(aMessage, aTransportChannel);
end;
{ TOrdersService_Proxy }
function TOrdersService_Proxy.__GetInterfaceName:string;
begin
result := 'OrdersService';
end;
function TOrdersService_Proxy.GetCustomerOrders(const CustomerID: String): Binary;
begin
try
result := nil;
__Message.InitializeRequestMessage(__TransportChannel, 'MegaDemoLibrary', __InterfaceName, 'GetCustomerOrders');
__Message.Write('CustomerID', TypeInfo(String), CustomerID, []);
__Message.Finalize;
__TransportChannel.Dispatch(__Message);
__Message.Read('Result', TypeInfo(Binary), result, []);
finally
__Message.UnsetAttributes(__TransportChannel);
__Message.FreeStream;
end
end;
initialization
RegisterROClass(LoginInfo);
RegisterProxyClass(ILoginService_IID, TLoginService_Proxy);
RegisterProxyClass(IOrdersService_IID, TOrdersService_Proxy);
finalization
UnregisterROClass(LoginInfo);
UnregisterProxyClass(ILoginService_IID);
UnregisterProxyClass(IOrdersService_IID);
end.