unit MegaDemoLibrary_Invk; {----------------------------------------------------------------------------} { 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. } {----------------------------------------------------------------------------} interface uses {vcl:} Classes, {RemObjects:} uROServer, uROServerIntf, uROTypes, uROClientIntf, {Generated:} MegaDemoLibrary_Intf; type TMegaDemoService_Invoker = class(TROInvoker) private protected published procedure Invoke_Sum(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_GetServerTime(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_EchoPerson(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_TestIntegerArray(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_TestStringArray(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_TestPersonArray(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_EchoBinary(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_SomeTypes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_CustomObjectAsString(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_CustomObjectAsStream(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_RaiseError(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_RaiseTestException(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); end; implementation uses {RemObjects:} uRORes, uROClient; { TMegaDemoService_Invoker } procedure TMegaDemoService_Invoker.Invoke_Sum(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { function Sum(const A: Integer; const B: Integer): Integer; } var A: Integer; B: Integer; lResult: Integer; begin try __Message.Read('A', TypeInfo(Integer), A, []); __Message.Read('B', TypeInfo(Integer), B, []); lResult := (__Instance as IMegaDemoService).Sum(A, B); __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'SumResponse'); __Message.Write('Result', TypeInfo(Integer), lResult, []); __Message.Finalize; finally end; end; procedure TMegaDemoService_Invoker.Invoke_GetServerTime(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { function GetServerTime: DateTime; } var lResult: DateTime; begin try lResult := (__Instance as IMegaDemoService).GetServerTime; __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'GetServerTimeResponse'); __Message.Write('Result', TypeInfo(DateTime), lResult, [paIsDateTime]); __Message.Finalize; finally end; end; procedure TMegaDemoService_Invoker.Invoke_EchoPerson(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { procedure EchoPerson(const aPerson: TPerson; out anotherPerson: TPerson); } var aPerson: MegaDemoLibrary_Intf.TPerson; anotherPerson: MegaDemoLibrary_Intf.TPerson; __lObjectDisposer: TROObjectDisposer; begin aPerson := nil; anotherPerson := nil; try __Message.Read('aPerson', TypeInfo(MegaDemoLibrary_Intf.TPerson), aPerson, []); (__Instance as IMegaDemoService).EchoPerson(aPerson, anotherPerson); __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'EchoPersonResponse'); __Message.Write('anotherPerson', TypeInfo(MegaDemoLibrary_Intf.TPerson), anotherPerson, []); __Message.Finalize; finally __lObjectDisposer := TROObjectDisposer.Create(__Instance); try __lObjectDisposer.Add(aPerson); __lObjectDisposer.Add(anotherPerson); finally __lObjectDisposer.Free(); end; end; end; procedure TMegaDemoService_Invoker.Invoke_TestIntegerArray(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { function TestIntegerArray(const anArray: TIntegerArray): TIntegerArray; } var anArray: MegaDemoLibrary_Intf.TIntegerArray; lResult: MegaDemoLibrary_Intf.TIntegerArray; __lObjectDisposer: TROObjectDisposer; begin anArray := nil; lResult := nil; try __Message.Read('anArray', TypeInfo(MegaDemoLibrary_Intf.TIntegerArray), anArray, []); lResult := (__Instance as IMegaDemoService).TestIntegerArray(anArray); __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'TestIntegerArrayResponse'); __Message.Write('Result', TypeInfo(MegaDemoLibrary_Intf.TIntegerArray), lResult, []); __Message.Finalize; finally __lObjectDisposer := TROObjectDisposer.Create(__Instance); try __lObjectDisposer.Add(anArray); __lObjectDisposer.Add(lResult); finally __lObjectDisposer.Free(); end; end; end; procedure TMegaDemoService_Invoker.Invoke_TestStringArray(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { function TestStringArray(const anArray: TStringArray): TStringArray; } var anArray: MegaDemoLibrary_Intf.TStringArray; lResult: MegaDemoLibrary_Intf.TStringArray; __lObjectDisposer: TROObjectDisposer; begin anArray := nil; lResult := nil; try __Message.Read('anArray', TypeInfo(MegaDemoLibrary_Intf.TStringArray), anArray, []); lResult := (__Instance as IMegaDemoService).TestStringArray(anArray); __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'TestStringArrayResponse'); __Message.Write('Result', TypeInfo(MegaDemoLibrary_Intf.TStringArray), lResult, []); __Message.Finalize; finally __lObjectDisposer := TROObjectDisposer.Create(__Instance); try __lObjectDisposer.Add(anArray); __lObjectDisposer.Add(lResult); finally __lObjectDisposer.Free(); end; end; end; procedure TMegaDemoService_Invoker.Invoke_TestPersonArray(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { function TestPersonArray(const anArray: TPersonArray): TPersonArray; } var anArray: MegaDemoLibrary_Intf.TPersonArray; lResult: MegaDemoLibrary_Intf.TPersonArray; __lObjectDisposer: TROObjectDisposer; begin anArray := nil; lResult := nil; try __Message.Read('anArray', TypeInfo(MegaDemoLibrary_Intf.TPersonArray), anArray, []); lResult := (__Instance as IMegaDemoService).TestPersonArray(anArray); __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'TestPersonArrayResponse'); __Message.Write('Result', TypeInfo(MegaDemoLibrary_Intf.TPersonArray), lResult, []); __Message.Finalize; finally __lObjectDisposer := TROObjectDisposer.Create(__Instance); try __lObjectDisposer.Add(anArray); __lObjectDisposer.Add(lResult); finally __lObjectDisposer.Free(); end; end; end; procedure TMegaDemoService_Invoker.Invoke_EchoBinary(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { procedure EchoBinary(const BinIN: binary; out BinOUT: Binary); } var BinIN: binary; BinOUT: Binary; __lObjectDisposer: TROObjectDisposer; begin BinIN := nil; BinOUT := nil; try __Message.Read('BinIN', TypeInfo(binary), BinIN, []); (__Instance as IMegaDemoService).EchoBinary(BinIN, BinOUT); __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'EchoBinaryResponse'); __Message.Write('BinOUT', TypeInfo(Binary), BinOUT, []); __Message.Finalize; finally __lObjectDisposer := TROObjectDisposer.Create(__Instance); try __lObjectDisposer.Add(BinIN); __lObjectDisposer.Add(BinOUT); finally __lObjectDisposer.Free(); end; end; end; procedure TMegaDemoService_Invoker.Invoke_SomeTypes(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { procedure SomeTypes(var aString: String; var aWidestring: Widestring; var anInteger: Integer; var aCurrency: Currency; var aDatetime: DateTime); } var aString: String; aWidestring: Widestring; anInteger: Integer; aCurrency: Currency; aDatetime: DateTime; begin try __Message.Read('aString', TypeInfo(String), aString, []); __Message.Read('aWidestring', TypeInfo(Widestring), aWidestring, []); __Message.Read('anInteger', TypeInfo(Integer), anInteger, []); __Message.Read('aCurrency', TypeInfo(Currency), aCurrency, []); __Message.Read('aDatetime', TypeInfo(DateTime), aDatetime, [paIsDateTime]); (__Instance as IMegaDemoService).SomeTypes(aString, aWidestring, anInteger, aCurrency, aDatetime); __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'SomeTypesResponse'); __Message.Write('aString', TypeInfo(String), aString, []); __Message.Write('aWidestring', TypeInfo(Widestring), aWidestring, []); __Message.Write('anInteger', TypeInfo(Integer), anInteger, []); __Message.Write('aCurrency', TypeInfo(Currency), aCurrency, []); __Message.Write('aDatetime', TypeInfo(DateTime), aDatetime, [paIsDateTime]); __Message.Finalize; finally end; end; procedure TMegaDemoService_Invoker.Invoke_CustomObjectAsString(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { function CustomObjectAsString: String; } var lResult: String; begin try lResult := (__Instance as IMegaDemoService).CustomObjectAsString; __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'CustomObjectAsStringResponse'); __Message.Write('Result', TypeInfo(String), lResult, []); __Message.Finalize; finally end; end; procedure TMegaDemoService_Invoker.Invoke_CustomObjectAsStream(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { function CustomObjectAsStream: Binary; } var lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin lResult := nil; try lResult := (__Instance as IMegaDemoService).CustomObjectAsStream; __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'CustomObjectAsStreamResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); __Message.Finalize; finally __lObjectDisposer := TROObjectDisposer.Create(__Instance); try __lObjectDisposer.Add(lResult); finally __lObjectDisposer.Free(); end; end; end; procedure TMegaDemoService_Invoker.Invoke_RaiseError(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { procedure RaiseError; } begin try (__Instance as IMegaDemoService).RaiseError; __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'RaiseErrorResponse'); __Message.Finalize; __oResponseOptions := [roNoResponse]; finally end; end; procedure TMegaDemoService_Invoker.Invoke_RaiseTestException(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { procedure RaiseTestException; } begin try (__Instance as IMegaDemoService).RaiseTestException; __Message.InitializeResponseMessage(__Transport, 'MegaDemoLibrary', 'MegaDemoService', 'RaiseTestExceptionResponse'); __Message.Finalize; finally end; end; end.