unit VariantsLibrary_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:} VariantsLibrary_Intf; type TVariantsService_Invoker = class(TROInvoker) private protected published procedure Invoke_EchoVariant(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_EchoComplexObject(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); procedure Invoke_EchoVariantArray(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); end; implementation uses {RemObjects:} uRORes, uROClient; { TVariantsService_Invoker } procedure TVariantsService_Invoker.Invoke_EchoVariant(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { procedure EchoVariant(const InputVariant: Variant; out OutputVariant: Variant); } var InputVariant: Variant; OutputVariant: Variant; begin try __Message.Read('InputVariant', TypeInfo(Variant), InputVariant, []); (__Instance as IVariantsService).EchoVariant(InputVariant, OutputVariant); __Message.InitializeResponseMessage(__Transport, 'VariantsLibrary', 'VariantsService', 'EchoVariantResponse'); __Message.Write('OutputVariant', TypeInfo(Variant), OutputVariant, []); __Message.Finalize; finally end; end; procedure TVariantsService_Invoker.Invoke_EchoComplexObject(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { procedure EchoComplexObject(const InComplexObject: TComplexObject; out OutComplexObject: TComplexObject); } var InComplexObject: VariantsLibrary_Intf.TComplexObject; OutComplexObject: VariantsLibrary_Intf.TComplexObject; __lObjectDisposer: TROObjectDisposer; begin InComplexObject := nil; OutComplexObject := nil; try __Message.Read('InComplexObject', TypeInfo(VariantsLibrary_Intf.TComplexObject), InComplexObject, []); (__Instance as IVariantsService).EchoComplexObject(InComplexObject, OutComplexObject); __Message.InitializeResponseMessage(__Transport, 'VariantsLibrary', 'VariantsService', 'EchoComplexObjectResponse'); __Message.Write('OutComplexObject', TypeInfo(VariantsLibrary_Intf.TComplexObject), OutComplexObject, []); __Message.Finalize; finally __lObjectDisposer := TROObjectDisposer.Create(__Instance); try __lObjectDisposer.Add(InComplexObject); __lObjectDisposer.Add(OutComplexObject); finally __lObjectDisposer.Free(); end; end; end; procedure TVariantsService_Invoker.Invoke_EchoVariantArray(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); { procedure EchoVariantArray(const InArray: TVariantArray; out OutArray: TVariantArray); } var InArray: VariantsLibrary_Intf.TVariantArray; OutArray: VariantsLibrary_Intf.TVariantArray; __lObjectDisposer: TROObjectDisposer; begin InArray := nil; OutArray := nil; try __Message.Read('InArray', TypeInfo(VariantsLibrary_Intf.TVariantArray), InArray, []); (__Instance as IVariantsService).EchoVariantArray(InArray, OutArray); __Message.InitializeResponseMessage(__Transport, 'VariantsLibrary', 'VariantsService', 'EchoVariantArrayResponse'); __Message.Write('OutArray', TypeInfo(VariantsLibrary_Intf.TVariantArray), OutArray, []); __Message.Finalize; finally __lObjectDisposer := TROObjectDisposer.Create(__Instance); try __lObjectDisposer.Add(InArray); __lObjectDisposer.Add(OutArray); finally __lObjectDisposer.Free(); end; end; end; end.