LazarusResources.Add('TEMPLATE_INTF_PAS','RCDATA',[ 'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------' +'--------------------------------}'#13#10'{ This unit was automatically gene' +'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa' +'ted with this project . }'#13#10'{ ' +' }'#13#10'{' +' Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{-----------------------------------------------------' +'-----------------------}'#13#10#13#10'{$I RemObjects.inc}'#13#10#13#10'inte' +'rface'#13#10#13#10'uses'#13#10' {vcl:} Classes, TypInfo,'#13#10' // <%%% ' +'START REQUIRED_UNITS %%%>'#13#10' {Required:} %REQUIRED_UNIT_NAME%,'#13#10 +' // <%%% END REQUIRED_UNITS %%%>'#13#10' {RemObjects:} uROXMLIntf, uROCla' +'sses, uROClient, uROTypes, uROClientIntf;'#13#10#13#10'const'#13#10' { Lib' +'rary ID }'#13#10' LibraryUID = ''%LIBRARY_UID%'';'#13#10' TargetNamespace' +' = ''%NAMESPACE_NAME%'';'#13#10#13#10' { Service Interface ID''s }'#13#10 +' // <%%% START SERVICES %%%>'#13#10' I%SERVICE_NAME%_IID : TGUID = ''%SER' +'VICE_UID%'';'#13#10' // <%%% END SERVICES %%%>'#13#10' '#13#10' { Event ' +'ID''s }'#13#10' // <%%% START EVENT_SINKS %%%>'#13#10' EID_%EVENT_SINK_NA' +'ME% = ''%EVENT_SINK_NAME%'';'#13#10' // <%%% END EVENT_SINKS %%%>'#13#10' ' +' '#13#10'type'#13#10' { Forward declarations }'#13#10' // <%%% START SERV' +'ICES %%%>'#13#10' I%SERVICE_NAME% = interface;'#13#10' // <%%% END SERVIC' +'ES %%%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' %ARRAY_NAME% = class;' +#13#10' // <%%% END ARRAYS %%%>'#13#10' // <%%% START STRUCTS %%%>'#13#10 +' %STRUCT_NAME% = class;'#13#10' // <%%% END STRUCTS %%%>'#13#10' // <%%%' +' START EXCEPTIONS %%%>'#13#10' %EXCEPTION_NAME% = class;'#13#10' // <%%% ' +'END EXCEPTIONS %%%>'#13#10' // <%%% START EVENT_SINKS %%%>'#13#10' I%EVEN' +'T_SINK_NAME% = interface;'#13#10' // <%%% END EVENT_SINKS %%%>'#13#10#13#10 +' { Enumerateds }'#13#10' // <%%% START ENUMS %%%>'#13#10' // <%%% START ' +'DOCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10' %CONTENT% }' +#13#10' // <%%% END DOCUMENTATION %%%>'#13#10' %ENUM_NAME% = ('#13#10' ' +' // <%%% START VALUES %%%>'#13#10' %VALUE_NAME%,' +#13#10' // <%%% END VALUES %%%>'#13#10' );'#13 +#10#13#10' // <%%% END ENUMS %%%>'#13#10' // <%%% START STRUCTS %%%>'#13#10 +' { %STRUCT_NAME% }'#13#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10 +' { Description:'#13#10' %CONTENT% }'#13#10' // <%%% END DOCUMENTATIO' +'N %%%>'#13#10' %STRUCT_NAME% = class(%STRUCT_ANCESTOR_NAME%)'#13#10' priv' +'ate'#13#10' FDestroying: Boolean;'#13#10#13#10' // <%%% START FIELDS_' +'NO_STRIP %%%>'#13#10' f%FIELD_NAME%: %FIELD_TYPE%;'#13#10' // <%%% EN' +'D FIELDS_NO_STRIP %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10 +' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' function Get%FIELD_' +'NAME%: %FIELD_TYPE%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13 +#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' public'#13#10' // <%%% ' +'START STRUCT_GENERATE_DEFAULT_VALUES %%%>'#13#10' constructor Create(aCo' +'llection : TCollection); override;'#13#10' // <%%% END STRUCT_GENERATE_D' +'EFAULT_VALUES %%%>'#13#10' // <%%% START IF_STRUCT_HAS_ATTRIBUTES %%%>' +#13#10' class function GetAttributeCount: Integer; override;'#13#10' c' +'lass function GetAttributeName(aIndex: Integer): string; override;'#10' ' +'class function GetAttributeValue(aIndex: Integer): string; override;'#10' ' +' // <%%% END IF_STRUCT_HAS_ATTRIBUTES %%%>'#13#10' procedure Assign(iSo' +'urce: TPersistent); override;'#13#10' destructor Destroy; override;'#13 +#10' // <%%% START IF_HAS_FIELDS %%%>'#13#10' procedure ReadComplex(AS' +'erializer: TObject); override;'#13#10' procedure WriteComplex(ASerialize' +'r: TObject); override;'#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10' p' +'ublished'#13#10' // Fields must be published for the ancestor destructor' +' to find and destroy them.'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13 +#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' property %FIELD_N' +'AME%:%FIELD_TYPE% read f%FIELD_NAME% write f%FIELD_NAME%;'#13#10' // <%%' +'% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMP' +'LEX %%%>'#13#10' property %FIELD_NAME%:%FIELD_TYPE% read Get%FIELD_NAME%' +' write f%FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13 +#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' end;'#13#10#13#10' { %STR' +'UCT_COLLECTION_NAME% }'#13#10' %STRUCT_COLLECTION_NAME% = class(%STRUCT_AN' +'CESTOR_COLLECTION_NAME%)'#13#10' protected'#13#10' constructor Create(a' +'ItemClass: TCollectionItemClass); overload;'#13#10' function GetItems(aI' ,'ndex: integer): %STRUCT_NAME%;'#13#10' procedure SetItems(aIndex: intege' +'r; const Value: %STRUCT_NAME%);'#13#10' public'#13#10' constructor Crea' +'te; overload;'#13#10' function Add: %STRUCT_NAME%; reintroduce;'#13#10' ' +' // <%%% START ARRAYS_IS_FOUND %%%>'#13#10' procedure SaveToArray(anAr' +'ray: %ARRAY_NAME%); overload;'#13#10' procedure LoadFromArray(anArray: %' +'ARRAY_NAME%); overload;'#13#10' // <%%% END ARRAYS_IS_FOUND %%%>'#13#10 +' property Items[Index: integer]:%STRUCT_NAME% read GetItems write SetIte' +'ms; default;'#13#10' end;'#13#10#13#10' // <%%% END STRUCTS %%%>'#13#10' ' +' // <%%% START ARRAYS %%%>'#13#10' { %ARRAY_NAME% }'#13#10' // <%%% START' +' DOCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10' %CONTENT% }' +#13#10' // <%%% END DOCUMENTATION %%%>'#13#10' %ARRAY_NAME%_%ARRAY_TYPE% =' +' array of %ARRAY_TYPE%;'#13#10' %ARRAY_NAME% = class(TROArray)'#13#10' pr' +'ivate'#13#10' fCount: Integer;'#13#10' fItems : %ARRAY_NAME%_%ARRAY_T' +'YPE%;'#13#10' protected'#13#10' procedure Grow; virtual;'#13#10' fun' +'ction GetItems(aIndex: integer): %ARRAY_TYPE%;'#13#10' procedure SetItem' +'s(aIndex: integer; const Value: %ARRAY_TYPE%);'#13#10' function GetCount' +': integer; override;'#13#10' public'#13#10' // <%%% START IF_ARRAY_HAS_' +'ATTRIBUTES %%%>'#13#10' class function GetAttributeCount: Integer; overr' +'ide;'#13#10' class function GetAttributeName(aIndex: Integer): string; o' +'verride;'#10' class function GetAttributeValue(aIndex: Integer): string;' +' override;'#10' // <%%% END IF_ARRAY_HAS_ATTRIBUTES %%%>'#13#10' clas' +'s function GetItemType: PTypeInfo; override;'#13#10' // <%%% START IF_AR' +'RAY_TYPE_COMPLEX %%%>'#13#10' class function GetItemClass: TClass; overr' +'ide;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' class fun' +'ction GetItemSize: integer; override;'#13#10#13#10' function GetItemRef(' +'aIndex: integer): pointer; override;'#13#10' // <%%% START IF_ARRAY_TYPE' +'_COMPLEX %%%>'#13#10' procedure SetItemRef(aIndex: integer; Ref: pointer' +'); override;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' p' +'rocedure Clear; override;'#13#10' procedure Delete(aIndex: integer); ove' +'rride;'#13#10' procedure Resize(ElementCount: integer); override;'#13#10 +#13#10' procedure Assign(iSource:TPersistent); override;'#13#10' proce' +'dure ReadComplex(ASerializer: TObject); override;'#13#10' procedure Writ' +'eComplex(ASerializer: TObject); override;'#13#10' // <%%% START IF_ARRAY' +'_TYPE_COMPLEX %%%>'#13#10' function Add: %ARRAY_TYPE%; overload;'#13#10 +' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' function Add(const Va' +'lue: %ARRAY_TYPE%):integer; overload;'#13#10' // <%%% START IF_ARRAY_TYP' +'E_SIMPLE %%%>'#13#10' function GetIndex(const aPropertyName : string;'#13 +#10' const aPropertyValue : Variant;'#13#10' ' +' StartFrom : integer = 0;'#13#10' Options : ' +'TROSearchOptions = [soIgnoreCase]) : integer; override;'#13#10' // <%%% ' +'END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10#13#10' property Count : integer rea' +'d GetCount;'#13#10' property Items[Index: integer]:%ARRAY_TYPE% read Get' +'Items write SetItems; default;'#13#10' property InnerArray: %ARRAY_NAME%' +'_%ARRAY_TYPE% read fItems;'#13#10' end;'#13#10#13#10' // <%%% END ARRAYS ' +'%%%>'#13#10' { Exceptions }'#13#10' // <%%% START EXCEPTIONS %%%>'#13#10 +' // <%%% START DOCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10' ' +' %CONTENT% }'#13#10' // <%%% END DOCUMENTATION %%%>'#13#10' %EXCEPTION_' +'NAME% = class(%EXCEPTION_ANCESTOR_NAME%)'#13#10' private'#13#10' // <%%' +'% START FIELDS_NO_STRIP %%%>'#13#10' f%FIELD_NAME%: %FIELD_TYPE%;'#13#10 +' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' public'#13#10' constructor' +' Create(anExceptionMessage : string'#13#10' // <%%% S' +'TART ANCESTOR_FIELDS %%%>'#13#10' ; a%FIELD_NAME%: %F' +'IELD_TYPE%'#13#10' // <%%% END ANCESTOR_FIELDS %%%>' +#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' ' +' ; a%FIELD_NAME%: %FIELD_TYPE%'#13#10' ' +' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' );'#13#10 +' // <%%% START IF_HAS_FIELDS %%%>'#13#10' procedure ReadException(ASe' +'rializer: TObject); override;'#13#10' procedure WriteException(ASerializ' +'er: TObject); override;'#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10' ' +'published'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' property' +' %FIELD_NAME%: %FIELD_TYPE% read f%FIELD_NAME% write f%FIELD_NAME%;'#13#10 +' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' end;'#13#10#13#10' // <%%% E' +'ND EXCEPTIONS %%%>'#13#10' // <%%% START SERVICES %%%>'#13#10' { I%SERVIC' +'E_NAME% }'#13#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10' { Descri' ,'ption:'#13#10' %CONTENT% }'#13#10' // <%%% END DOCUMENTATION %%%>'#13 +#10' I%SERVICE_NAME% = interface%SERVICE_ANCESTOR_NAME%'#13#10' [''%SERV' +'ICE_UID%'']'#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' fu' +'nction %OPERATION_NAME%('#13#10' // <%%% START PARAMS %%%>'#13 +#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10 +' // <%%% END PARAMS %%%>'#13#10' ): %OPERATION_' +'RESULT%;'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10' // <%%%' +' START PROCEDURE_OPERATIONS %%%>'#13#10' procedure %OPERATION_NAME%('#13 +#10' // <%%% START PARAMS %%%>'#13#10' %PARAM_' +'FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% ' +'END PARAMS %%%>'#13#10' );'#13#10' // <%%% END PROCEDURE_' +'OPERATIONS %%%>'#13#10' end;'#13#10#13#10' { Co%SERVICE_NAME% }'#13#10' ' +'Co%SERVICE_NAME% = class'#13#10' class function Create(const aMessage: I' +'ROMessage; aTransportChannel: IROTransportChannel): I%SERVICE_NAME%;'#13#10 +' end;'#13#10#13#10' { T%SERVICE_NAME%_Proxy }'#13#10' T%SERVICE_NAME%_Pr' +'oxy = class(%SERVICE_PROXY_ANCESTOR_NAME%, I%SERVICE_NAME%)'#13#10' protec' +'ted'#13#10' function __GetInterfaceName:string; override;'#13#10#13#10' ' +' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' function %OPERATION_NA' +'ME%('#13#10' // <%%% START PARAMS %%%>'#13#10' ' +'%PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' //' +' <%%% END PARAMS %%%>'#13#10' ): %OPERATION_RESULT%;'#13#10' ' +' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10' // <%%% START PROCEDURE_' +'OPERATIONS %%%>'#13#10' procedure %OPERATION_NAME%('#13#10' ' +' // <%%% START PARAMS %%%>'#13#10' %PARAM_FRONT_MODIFIER% ' +'%PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END PARAMS %%%>' +#13#10' );'#13#10' // <%%% END PROCEDURE_OPERATIONS %%%>' +#13#10' end;'#13#10#13#10' // <%%% END SERVICES %%%>'#13#10' // <%%% STAR' +'T EVENT_SINKS %%%>'#13#10' { I%EVENT_SINK_NAME% }'#13#10' // <%%% START D' +'OCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10' %CONTENT% }'#13 +#10' // <%%% END DOCUMENTATION %%%>'#13#10' I%EVENT_SINK_NAME% = interface' +'%EVENT_SINK_ANCESTOR_NAME%'#13#10' [''%EVENT_SINK_UID%'']'#13#10' // ' +'<%%% START OPERATIONS %%%>'#13#10' procedure %OPERATION_NAME%('#13#10' ' +' // <%%% START PARAMS %%%>'#13#10' %PARAM_FRONT' +'_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END P' +'ARAMS %%%>'#13#10' );'#13#10' // <%%% END OPERATIONS %%%>' +#13#10' end;'#13#10#13#10' { I%EVENT_SINK_NAME%_Writer }'#13#10' // <%%% ' +'START DOCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10' %CONTEN' +'T% }'#13#10' // <%%% END DOCUMENTATION %%%>'#13#10' I%EVENT_SINK_NAME%_Wr' +'iter = interface(I%EVENT_SINK_WRITER_ANCESTOR_NAME%)'#13#10' [''%EVENT_S' +'INK_UID%'']'#13#10' // <%%% START OPERATIONS %%%>'#13#10' procedure %' +'OPERATION_NAME%(const __Sender : TGUID'#13#10' // <%%% START' +' PARAMS %%%>'#13#10' ; %PARAM_FRONT_MODIFIER% %PARAM_NAME%: ' +'%PARAM_TYPE%'#13#10' // <%%% END PARAMS %%%>'#13#10' ' +' );'#13#10' // <%%% END OPERATIONS %%%>'#13#10' end;'#13#10#13#10 +' // <%%% END EVENT_SINKS %%%>'#13#10'implementation'#13#10#13#10'uses'#13 +#10' {vcl:} SysUtils,'#13#10' {RemObjects:} uROEventRepository, uROSeriali' +'zer, uRORes;'#13#10#13#10'// <%%% START EXCEPTIONS %%%>'#13#10'{ %EXCEPTION' +'_NAME% }'#13#10'constructor %EXCEPTION_NAME%.Create(anExceptionMessage : st' +'ring'#13#10' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' ; a%FIELD_NAME%: ' +'%FIELD_TYPE%'#13#10' // <%%% END ANCESTOR_FIELDS %%%>'#13#10' // <%%% STA' +'RT FIELDS_NO_STRIP %%%>'#13#10' ; a%FIELD_NAME%: %FIELD_TYPE%'#13#10' // ' +'<%%% END FIELDS_NO_STRIP %%%>'#13#10' );'#13#10'begin'#13#10' inherited C' +'reate(anExceptionMessage'#13#10' // <%%% START ANCESTOR_F' +'IELDS %%%>'#13#10' , a%FIELD_NAME%'#13#10' ' +' // <%%% END ANCESTOR_FIELDS %%%>'#13#10' );'#13#10#13 +#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' f%FIELD_NAME% := a%FIELD_N' +'AME%;'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'end;'#13#10#13#10'//' +' <%%% START IF_HAS_FIELDS %%%>'#13#10'procedure %EXCEPTION_NAME%.ReadExcept' +'ion(ASerializer: TObject);'#13#10'var'#13#10' // <%%% START ENTIRE_HIERARC' +'HY_FIELDS %%%>'#13#10' l_%FIELD_NAME%: %FIELD_TYPE%;'#13#10' // <%%% END ' +'ENTIRE_HIERARCHY_FIELDS %%%>'#13#10'begin'#13#10' if TROSerializer(ASerial' +'izer).RecordStrictOrder then begin'#13#10' // <%%% START IF_STRUCT_HAS_A' +'NCESTOR %%%>'#13#10' inherited;'#13#10' // <%%% END IF_STRUCT_HAS_ANC' +'ESTOR %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' l_%FIEL' ,'D_NAME% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>' +#13#10' TROSerializer(ASerializer).ReadBinary(''%FIELD_ORIGINALNAME%'', l' +'_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NA' +'ME%.Free;'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%' +'%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).R' +'eadEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble' +'(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END ' +'IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE' +' %%%>'#13#10' TROSerializer(ASerializer).ReadDateTime(''%FIELD_ORIGINALN' +'AME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer' +'(ASerializer).ReadDecimal(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''%FIEL' +'D_ORIGINALNAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIE' +'LD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadGuid(''%FIELD_ORIGINALNAME%'', l_%FIELD_' +'NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadInt' +'64(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIE' +'LD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).ReadInteger(''%FIELD_ORIGINALNAME%'', otS' +'Long, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer' +'(ASerializer).ReadAnsiString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadUTF8' +'String(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF' +'_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE ' +'%%%>'#13#10' TROSerializer(ASerializer).ReadVariant(''%FIELD_ORIGINALNAM' +'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer' +'(ASerializer).ReadWideString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadXml(''%FIEL' +'D_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYP' +'E %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSeri' +'alizer(ASerializer).ReadArray(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FI' +'ELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.' +'Free;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadEnume' +'rated(''%FIELD_ORIGINALNAME%'', TypeInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadStruct(''%FIEL' +'D_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME' +'% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD' +'_STRUCT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).ReadStruct(''%FIELD_ORIGINALNAME%'', %FIE' +'LD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% the' +'n %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>' +#13#10' %FIELD_NAME% := l_%FIELD_NAME%;'#13#10' // <%%% END FIELDS_NO_' +'STRIP %%%>'#13#10' end'#13#10' else begin'#13#10' // <%%% START ENTIRE' +'_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' ' +' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' TROSerializer(ASeriali' +'zer).ReadBinary(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' if %F' +'IELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END' +' IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %' +'%%>'#13#10' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_ORIGINALN' +'AME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD' +'_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).ReadDouble(''%FIELD_ORIGINALNAME%'', ftCu' +'rr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13 ,#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(A' +'Serializer).ReadDateTime(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIE' +'LD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDecimal(''%F' +'IELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECI' +'MAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).ReadDouble(''%FIELD_ORIGINALNAME%'', ftDouble, ' +'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerialize' +'r).ReadGuid(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% E' +'ND IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%' +'>'#13#10' TROSerializer(ASerializer).ReadInt64(''%FIELD_ORIGINALNAME%'',' +' l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerial' +'izer).ReadInteger(''%FIELD_ORIGINALNAME%'', otSLong, l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadAnsiString' +'(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD' +'_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%' +'>'#13#10' TROSerializer(ASerializer).ReadUTF8String(''%FIELD_ORIGINALNAM' +'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSerializer' +'(ASerializer).ReadVariant(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadWideString' +'(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD' +'_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_N' +'AME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% STA' +'RT IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadArray' +'(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FI' +'ELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END ' +'IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>' +#13#10' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_ORIGINALNAME%' +''', TypeInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL' +'D_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadStruct(''%FIELD_ORIGINALNAME%'', %FIELD_' +'TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %' +'FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' TROSerializer(ASe' +'rializer).ReadStruct(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%' +');'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13 +#10' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' %FIELD_NAME% :=' +' l_%FIELD_NAME%;'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10 +' end;'#13#10'end;'#13#10#13#10'procedure %EXCEPTION_NAME%.WriteException(A' +'Serializer: TObject);'#13#10'var'#13#10' // <%%% START ENTIRE_HIERARCHY_FI' +'ELDS %%%>'#13#10' l_%FIELD_NAME%: %FIELD_TYPE%;'#13#10' // <%%% END ENTIR' +'E_HIERARCHY_FIELDS %%%>'#13#10'begin'#13#10' if TROSerializer(ASerializer)' +'.RecordStrictOrder then begin'#13#10' // <%%% START IF_STRUCT_HAS_ANCEST' +'OR %%%>'#13#10' inherited;'#13#10' // <%%% END IF_STRUCT_HAS_ANCESTOR' +' %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' l_%FIELD_NAM' +'E% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).WriteBinary(''%FIELD_ORIGINALNAME%'', l_%' +'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerialize' +'r).WriteEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%FIELD_NA' +'ME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% ' +'START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).Wri' +'teDouble(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <' +'%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATET' +'IME_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDateTime(''%FIELD_' +'ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_' +'TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TR' +'OSerializer(ASerializer).WriteDecimal(''%FIELD_ORIGINALNAME%'', l_%FIELD_NA' ,'ME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% ' +'START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).Write' +'Double(''%FIELD_ORIGINALNAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <' +'%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TY' +'PE %%%>'#13#10' TROSerializer(ASerializer).WriteGuid(''%FIELD_ORIGINALNA' +'ME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASer' +'ializer).WriteInt64(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' /' +'/ <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEG' +'ER_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInteger(''%FIELD_OR' +'IGINALNAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_IN' +'TEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).WriteAnsiString(''%FIELD_ORIGINALNAME%'',' +' l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer' +'(ASerializer).WriteUTF8String(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_VARIANT_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteVarian' +'t(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL' +'D_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>' +#13#10' TROSerializer(ASerializer).WriteWideString(''%FIELD_ORIGINALNAME%' +''', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSerializer(ASe' +'rializer).WriteXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' //' +' <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TY' +'PE %%%>'#13#10' TROSerializer(ASerializer).WriteArray(''%FIELD_ORIGINALN' +'AME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_ARRA' +'Y_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TRO' +'Serializer(ASerializer).WriteEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(' +'%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %' +'%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerial' +'izer(ASerializer).WriteStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FI' +'ELD_TYPE%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializ' +'er).WriteStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13 +#10' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' // <%%% END FIE' +'LDS_NO_STRIP %%%>'#13#10' end'#13#10' else begin'#13#10' // <%%% START' +' ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME% := %FIELD_NAME%;'#13 +#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' TROSerializer(ASe' +'rializer).WriteBinary(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BO' +'OLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteEnumerated(''%FI' +'ELD_ORIGINALNAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' // <%%%' +' END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_' +'TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDouble(''%FIELD_ORIGIN' +'ALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENC' +'Y_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).WriteDateTime(''%FIELD_ORIGINALNAME%'', l_%FIEL' +'D_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer)' +'.WriteDecimal(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%%' +' END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TY' +'PE %%%>'#13#10' TROSerializer(ASerializer).WriteDouble(''%FIELD_ORIGINAL' +'NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_' +'TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSe' +'rializer(ASerializer).WriteGuid(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_F' +'IELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInt64(''%FI' +'ELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' T' +'ROSerializer(ASerializer).WriteInteger(''%FIELD_ORIGINALNAME%'', otSLong, l' +'_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASer' +'ializer).WriteAnsiString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10 ,' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_F' +'IELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteUTF8St' +'ring(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_F' +'IELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%' +'%>'#13#10' TROSerializer(ASerializer).WriteVariant(''%FIELD_ORIGINALNAME' +'%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer' +'(ASerializer).WriteWideString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteXml(''%FIE' +'LD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TY' +'PE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSer' +'ializer(ASerializer).WriteArray(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %' +'FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' //' +' <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer(ASerializer).W' +'riteEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(%FIELD_TYPE%), l_%FIELD_N' +'AME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteSt' +'ruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' //' +' <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XSDAT' +'ETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteStruct(''%FIELD_' +'ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_F' +'IELD_XSDATETIME_TYPE %%%>'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%' +'%>'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% END IF_HAS_FIELDS %%%>'#13 +#10'// <%%% END EXCEPTIONS %%%>'#13#10'// <%%% START ARRAYS %%%>'#13#10'{ %A' +'RRAY_NAME% }'#13#10#13#10'// <%%% START IF_ARRAY_HAS_ATTRIBUTES %%%>'#13#10 +'class function %ARRAY_NAME%.GetAttributeCount: Integer;'#13#10'begin'#13#10 +' Result := %ATTRIBUTES_COUNT%;'#13#10'end;'#13#10#13#10'class function %AR' +'RAY_NAME%.GetAttributeName(aIndex: Integer): string;'#10'begin'#10' case a' +'Index of'#10'// <%%% START ATTRIBUTES_NO_STRIP %%%>'#10' %ATTRIBUTE_INDE' +'X%: Result := %ATTRIBUTE_NAME%;'#10'// <%%% END ATTRIBUTES_NO_STRIP %%%>'#10 +' end;'#10'end;'#10#10'class function %ARRAY_NAME%.GetAttributeValue(aIndex' +': Integer): string;'#10'begin'#10' case aIndex of'#10'// <%%% START ATTRIB' +'UTES_NO_STRIP %%%>'#10' %ATTRIBUTE_INDEX%: Result := %ATTRIBUTE_VALUE%;' +#10'// <%%% END ATTRIBUTES_NO_STRIP %%%>'#10' end;'#10'end;'#10'// <%%% END' +' IF_ARRAY_HAS_ATTRIBUTES %%%>'#13#10#13#10'procedure %ARRAY_NAME%.Assign(iS' +'ource: TPersistent);'#13#10'var lSource:%ARRAY_NAME%;'#13#10' i:integer;' +#13#10'begin'#13#10' if (iSource is %ARRAY_NAME%) then begin'#13#10' lSo' +'urce := %ARRAY_NAME%(iSource);'#13#10' Clear();'#13#10' Resize(lSourc' +'e.Count);'#13#10' '#13#10' for i := 0 to Count-1 do begin'#13#10' ' +' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' if Assigned(lSource' +'.Items[i]) then begin'#13#10' Items[i].Assign(lSource.Items[i]);'#13 +#10' end;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' ' +' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' Items[i] := lSourc' +'e.Items[i];'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' e' +'nd;'#13#10' end'#13#10' else begin'#13#10' inherited Assign(iSource);' +#13#10' end;'#13#10'end;'#13#10#13#10'class function %ARRAY_NAME%.GetItemTy' +'pe: PTypeInfo;'#13#10'begin'#13#10' result := TypeInfo(%ARRAY_TYPE%);'#13 +#10'end;'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'class ' +'function %ARRAY_NAME%.GetItemClass: TClass;'#13#10'begin'#13#10' result :=' +' %ARRAY_TYPE%;'#13#10'end;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13 +#10#13#10'class function %ARRAY_NAME%.GetItemSize: integer;'#13#10'begin'#13 +#10' result := SizeOf(%ARRAY_TYPE%);'#13#10'end;'#13#10#13#10'function %ARR' +'AY_NAME%.GetItems(aIndex: integer): %ARRAY_TYPE%;'#13#10'begin'#13#10' if ' +'(aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds' +',[aIndex]);'#13#10' result := fItems[aIndex];'#13#10'end;'#13#10#13#10'fun' +'ction %ARRAY_NAME%.GetItemRef(aIndex: integer): pointer;'#13#10'begin'#13#10 +' if (aIndex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfB' +'ounds,[aIndex]);'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' ' +' result := fItems[aIndex];'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>' +#13#10' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' result := @fItems[' +'aIndex];'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'end;'#13#10 +#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'procedure %ARRAY_NAME' +'%.SetItemRef(aIndex: integer; Ref: pointer);'#13#10'begin'#13#10' if (aInd' ,'ex < 0) or (aIndex >= Count) then RaiseError(err_ArrayIndexOutOfBounds,[aIn' +'dex]);'#13#10' if Ref <> fItems[aIndex] then begin'#13#10' if fItems[aI' +'ndex] <> nil then fItems[aIndex].Free;'#13#10' fItems[aIndex] := Ref;'#13 +#10' end;'#13#10'end;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10 +#13#10'procedure %ARRAY_NAME%.Clear;'#13#10'// <%%% START IF_ARRAY_TYPE_COMP' +'LEX %%%>'#13#10'var i: integer;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%' +'%>'#13#10'begin'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' ' +'for i := 0 to (Count-1) do fItems[i].Free();'#13#10' // <%%% END IF_ARRAY_' +'TYPE_COMPLEX %%%>'#13#10' SetLength(fItems, 0);'#13#10' FCount := 0;'#13 +#10'end;'#13#10#13#10'procedure %ARRAY_NAME%.Delete(aIndex: integer);'#13#10 +'var i: integer;'#13#10'begin'#13#10' if (aIndex>=Count) then RaiseError(er' +'r_InvalidIndex, [aIndex]);'#13#10#13#10' // <%%% START IF_ARRAY_TYPE_COMPL' +'EX %%%>'#13#10' fItems[aIndex].Free();'#13#10' // <%%% END IF_ARRAY_TYPE_' +'COMPLEX %%%>'#13#10' '#13#10' if (aIndex= Count) then RaiseError(err_Array' +'IndexOutOfBounds,[aIndex]);'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%' +'%> '#13#10' if fItems[aIndex] <> Value then begin'#13#10' fItems[aInde' +'x].Free; '#13#10' fItems[aIndex] := Value;'#13#10' end;'#13#10' // ' +'<%%% END IF_ARRAY_TYPE_COMPLEX %%%> '#13#10' // <%%% START IF_ARRAY_TYPE_' +'SIMPLE %%%>'#13#10' fItems[aIndex] := Value; '#13#10' // <%%% END IF_ARR' +'AY_TYPE_SIMPLE %%%> '#13#10'end;'#13#10#13#10'procedure %ARRAY_NAME%.Resiz' +'e(ElementCount: integer);'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>' +#13#10'var i: Integer;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10 +'begin'#13#10' if fCount = ElementCount then Exit;'#13#10'// <%%% START IF_' +'ARRAY_TYPE_COMPLEX %%%>'#13#10' for i := FCount -1 downto ElementCount do' +#13#10' FItems[i].Free;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13 +#10' SetLength(fItems, ElementCount);'#13#10'// <%%% START IF_ARRAY_TYPE_CO' +'MPLEX %%%>'#13#10' for i := FCount to ElementCount -1 do'#13#10' FItems' +'[i] := %ARRAY_TYPE%.Create;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>' +#13#10' FCount := ElementCount;'#13#10'end;'#13#10#13#10'function %ARRAY_NA' +'ME%.GetCount: integer;'#13#10'begin'#13#10' result := FCount;'#13#10'end;' +#13#10#13#10'procedure %ARRAY_NAME%.Grow;'#13#10'var'#13#10' Delta, Capacit' +'y: Integer;'#13#10'begin'#13#10' Capacity := Length(fItems);'#13#10' if C' +'apacity > 64 then'#13#10' Delta := Capacity div 4'#13#10' else'#13#10' ' +' if Capacity > 8 then'#13#10' Delta := 16'#13#10' else'#13#10' ' +' Delta := 4;'#13#10' SetLength(fItems, Capacity + Delta);'#13#10'end;'#13 +#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'function %ARRAY_NA' +'ME%.Add: %ARRAY_TYPE%;'#13#10'begin'#13#10' result := %ARRAY_TYPE%.Create;' +#13#10' Add(Result);'#13#10'end;'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %' +'%%>'#13#10#13#10'function %ARRAY_NAME%.Add(const Value:%ARRAY_TYPE%): integ' +'er;'#13#10'begin'#13#10' Result := Count;'#13#10' if Length(fItems) = Res' +'ult then'#13#10' Grow;'#13#10' fItems[result] := Value;'#13#10' Inc(fC' +'ount);'#13#10'end;'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13 +#10'function %ARRAY_NAME%.GetIndex(const aPropertyName : string;'#13#10' co' +'nst aPropertyValue : Variant; StartFrom : integer;'#13#10' Options : TROSe' +'archOptions) : integer;'#13#10'begin'#13#10' result := -1;'#13#10'end;'#13 +#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10#13#10'procedure %ARRAY_NAME' +'%.ReadComplex(ASerializer: TObject);'#13#10'var'#13#10' lval: %ARRAY_TYPE%' +';'#13#10' i: integer;'#13#10'begin'#13#10' for i := 0 to Count-1 do begin' +#13#10' with TROSerializer(ASerializer) do'#13#10' // <%%% START IF_' +'ARRAY_BINARY_TYPE %%%>'#13#10' ReadBinary(GetArrayElementName(GetItemT' +'ype, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_BINARY_TYP' +'E %%%>'#13#10' // <%%% START IF_ARRAY_BOOLEAN_TYPE %%%>'#13#10' R' +'eadEnumerated(GetArrayElementName(GetItemType, GetItemRef(i)), TypeInfo(boo' +'lean), lval, i);'#13#10' // <%%% END IF_ARRAY_BOOLEAN_TYPE %%%>'#13#10 +' // <%%% START IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' ReadDouble(Get' +'ArrayElementName(GetItemType, GetItemRef(i)), ftCurr, lval, i);'#13#10' ' +' // <%%% END IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_ARR' +'AY_DATETIME_TYPE %%%>'#13#10' ReadDateTime(GetArrayElementName(GetItem' +'Type, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_DATETIME_' +'TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' ' ,' ReadDecimal(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13 +#10' // <%%% END IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' // <%%% START ' +'IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' ReadDouble(GetArrayElementName(GetIt' +'emType, GetItemRef(i)), ftDouble, lval, i);'#13#10' // <%%% END IF_ARR' +'AY_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_GUID_TYPE %%%>'#13 +#10' ReadGuid(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i)' +';'#13#10' // <%%% END IF_ARRAY_GUID_TYPE %%%>'#13#10' // <%%% STA' +'RT IF_ARRAY_INT64_TYPE %%%>'#13#10' ReadInt64(GetArrayElementName(GetI' +'temType, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_INT64_' +'TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INTEGER_TYPE %%%>'#13#10' ' +' ReadInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSLong, lva' +'l, i);'#13#10' // <%%% END IF_ARRAY_INTEGER_TYPE %%%>'#13#10' // ' +'<%%% START IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' ReadUTF8String(GetArr' +'ayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10' // <%%% E' +'ND IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_UTF8ST' +'RING_TYPE %%%>'#13#10' ReadUTF8String(GetArrayElementName(GetItemType,' +' GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_UTF8STRING_TYP' +'E %%%>'#13#10' // <%%% START IF_ARRAY_VARIANT_TYPE %%%>'#13#10' R' +'eadVariant(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10 +' // <%%% END IF_ARRAY_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_' +'ARRAY_WIDESTRING_TYPE %%%>'#13#10' ReadWideString(GetArrayElementName(' +'GetItemType, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_WI' +'DESTRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_XML_TYPE %%%>'#13#10 +' ReadXml(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13 +#10' // <%%% END IF_ARRAY_XML_TYPE %%%>'#13#10' // <%%% START IF_A' +'RRAY_ARRAY_TYPE %%%>'#13#10' ReadArray(GetArrayElementName(GetItemType' +', GetItemRef(i)), %ARRAY_TYPE%, lval, i);'#13#10' // <%%% END IF_ARRAY' +'_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ENUM_TYPE %%%>'#13#10 +' ReadEnumerated(GetArrayElementName(GetItemType, GetItemRef(i)), TypeI' +'nfo(%ARRAY_TYPE%), lval, i);'#13#10' // <%%% END IF_ARRAY_ENUM_TYPE %%' +'%>'#13#10' // <%%% START IF_ARRAY_STRUCT_TYPE %%%>'#13#10' ReadSt' +'ruct(GetArrayElementName(GetItemType, GetItemRef(i)), %ARRAY_TYPE%, lval, i' +');'#13#10' // <%%% END IF_ARRAY_STRUCT_TYPE %%%>'#13#10' Items[i] :' +'= lval;'#13#10' end;'#13#10'end;'#13#10#13#10'procedure %ARRAY_NAME%.Write' +'Complex(ASerializer: TObject);'#13#10'var'#13#10' i: integer;'#13#10'begin' +#13#10' for i := 0 to Count-1 do'#13#10' with TROSerializer(ASerializer)' +' do'#13#10' // <%%% START IF_ARRAY_BINARY_TYPE %%%>'#13#10' Write' +'Binary(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13 +#10' // <%%% END IF_ARRAY_BINARY_TYPE %%%>'#13#10' // <%%% START I' +'F_ARRAY_BOOLEAN_TYPE %%%>'#13#10' WriteEnumerated(GetArrayElementName(' +'GetItemType, GetItemRef(i)), TypeInfo(boolean), fItems[i], i);'#13#10' ' +' // <%%% END IF_ARRAY_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_ARRAY' +'_CURRENCY_TYPE %%%>'#13#10' WriteDouble(GetArrayElementName(GetItemTyp' +'e, GetItemRef(i)), ftCurr, fItems[i], i);'#13#10' // <%%% END IF_ARRAY' +'_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DATETIME_TYPE %%%>' +#13#10' WriteDateTime(GetArrayElementName(GetItemType, GetItemRef(i)), ' +'fItems[i], i);'#13#10' // <%%% END IF_ARRAY_DATETIME_TYPE %%%>'#13#10 +' // <%%% START IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' WriteDecimal(Ge' +'tArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' ' +'// <%%% END IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_' +'DOUBLE_TYPE %%%>'#13#10' WriteDouble(GetArrayElementName(GetItemType, ' +'GetItemRef(i)), ftDouble, fItems[i], i);'#13#10' // <%%% END IF_ARRAY_' +'DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_GUID_TYPE %%%>'#13#10 +' WriteGuid(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i],' +' i);'#13#10' // <%%% END IF_ARRAY_GUID_TYPE %%%>'#13#10' // <%%% ' +'START IF_ARRAY_INT64_TYPE %%%>'#13#10' WriteInt64(GetArrayElementName(' +'GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARR' +'AY_INT64_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INTEGER_TYPE %%%>'#13 +#10' WriteInteger(GetArrayElementName(GetItemType, GetItemRef(i)), otSL' +'ong, fItems[i], i);'#13#10' // <%%% END IF_ARRAY_INTEGER_TYPE %%%>'#13 +#10' // <%%% START IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' WriteUTF8' +'String(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13 +#10' // <%%% END IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' // <%%% STA' +'RT IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' WriteUTF8String(GetArrayEleme' ,'ntName(GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END' +' IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_VARIANT_' +'TYPE %%%>'#13#10' WriteVariant(GetArrayElementName(GetItemType, GetIte' +'mRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_VARIANT_TYPE %%%' +'>'#13#10' // <%%% START IF_ARRAY_WIDESTRING_TYPE %%%>'#13#10' Wri' +'teWideString(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i)' +';'#13#10' // <%%% END IF_ARRAY_WIDESTRING_TYPE %%%>'#13#10' // <%' +'%% START IF_ARRAY_XML_TYPE %%%>'#13#10' WriteXml(GetArrayElementName(G' +'etItemType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRA' +'Y_XML_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ARRAY_TYPE %%%>'#13#10 +' WriteArray(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i]' +', , %ARRAY_TYPE%, i);'#13#10' // <%%% END IF_ARRAY_ARRAY_TYPE %%%>'#13 +#10' // <%%% START IF_ARRAY_ENUM_TYPE %%%>'#13#10' WriteEnumerated' +'(GetArrayElementName(GetItemType, GetItemRef(i)), TypeInfo(%ARRAY_TYPE%), f' +'Items[i], i);'#13#10' // <%%% END IF_ARRAY_ENUM_TYPE %%%>'#13#10' ' +' // <%%% START IF_ARRAY_STRUCT_TYPE %%%>'#13#10' WriteStruct(GetArrayE' +'lementName(GetItemType, GetItemRef(i)), fItems[i], %ARRAY_TYPE%, i);'#13#10 +' // <%%% END IF_ARRAY_STRUCT_TYPE %%%>'#13#10'end;'#13#10#13#10'// <%%' +'% END ARRAYS %%%>'#13#10'// <%%% START STRUCTS %%%>'#13#10'{ %STRUCT_NAME% ' +'}'#13#10'// <%%% START IF_STRUCT_HAS_ATTRIBUTES %%%>'#13#10'class function ' +'%STRUCT_NAME%.GetAttributeCount: Integer;'#13#10'begin'#13#10' Result := %' +'ATTRIBUTES_COUNT%;'#13#10'end;'#13#10#13#10'class function %STRUCT_NAME%.Ge' +'tAttributeName(aIndex: Integer): string;'#10'begin'#10' case aIndex of'#10 +'// <%%% START ATTRIBUTES_NO_STRIP %%%>'#10' %ATTRIBUTE_INDEX%: Result :=' +' %ATTRIBUTE_NAME%;'#10'// <%%% END ATTRIBUTES_NO_STRIP %%%>'#10' end;'#10 +'end;'#10#10'class function %STRUCT_NAME%.GetAttributeValue(aIndex: Integer)' +': string;'#10'begin'#10' case aIndex of'#10'// <%%% START ATTRIBUTES_NO_ST' +'RIP %%%>'#10' %ATTRIBUTE_INDEX%: Result := %ATTRIBUTE_VALUE%;'#10'// <%%' +'% END ATTRIBUTES_NO_STRIP %%%>'#10' end;'#10'end;'#10'// <%%% END IF_STRUC' +'T_HAS_ATTRIBUTES %%%>'#13#10#13#10'procedure %STRUCT_NAME%.Assign(iSource: ' +'TPersistent);'#13#10'// <%%% START IF_HAS_FIELDS %%%>'#13#10'var'#13#10' l' +'Source: %STRUCT_NAME%;'#13#10'// <%%% END IF_HAS_FIELDS %%%>'#13#10'begin' +#13#10' inherited Assign(iSource);'#13#10' // <%%% START IF_HAS_FIELDS %%%' +'>'#13#10' if (iSource is %STRUCT_NAME%) then begin'#13#10' lSource := %' +'STRUCT_NAME%(iSource);'#13#10#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10 +' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TY' +'PE_SIMPLE %%%>'#13#10' %FIELD_NAME% := lSource.%FIELD_NAME%;'#13#10' ' +'// <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYP' +'E_COMPLEX %%%>'#13#10' // <%%% START IF_NOT_AUTO_CREATE_FIELDS %%%>'#13 +#10' if Assigned(f%FIELD_NAME%) then begin'#13#10' if Assigned(lSour' +'ce.%FIELD_NAME%) then'#13#10' %FIELD_NAME%.Assign(lSource.%FIELD_NAM' +'E%)'#13#10' else'#13#10' FreeAndNil(f%FIELD_NAME%);'#13#10' ' +'end;'#13#10' // <%%% END IF_NOT_AUTO_CREATE_FIELDS %%%>'#13#10' // <%' +'%% START IF_AUTO_CREATE_FIELDS %%%>'#13#10' %FIELD_NAME%.Assign(lSource.' +'%FIELD_NAME%);'#13#10' // <%%% END IF_AUTO_CREATE_FIELDS %%%>'#13#10' ' +' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELDS_NO_ST' +'RIP %%%>'#13#10' // <%%% START IF_HAS_FIELDS %%%>'#13#10' end;'#13#10' /' +'/ <%%% END IF_HAS_FIELDS %%%>'#13#10'end;'#13#10#13#10'// <%%% START STRUCT' +'_GENERATE_DEFAULT_VALUES %%%>'#13#10'constructor %STRUCT_NAME%.Create(aColl' +'ection : TCollection);'#13#10'begin'#13#10' inherited Create(aCollection);' +#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_' +'HAS_DEFAULT_VALUE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13 +#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_BOOLEA' +'N_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' f%F' +'IELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE ' +'%%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' f%FIELD_NA' +'ME% := StrToDateTimeDef(''%DEFAULT_VALUE%'',0);'#13#10' // <%%% END IF_FIE' +'LD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13 +#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_DECIMA' +'L_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' f%FIE' +'LD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%' +'DEFAULT_VALUE%'';'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALU' ,'E%;'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF' +'_FIELD_INTEGER_TYPE %%%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10 +' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_AN' +'SISTRING_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' ' +'// <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_U' +'TF8STRING_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' ' +' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_' +'VARIANT_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' /' +'/ <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDES' +'TRING_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' // ' +'<%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% END IF_FIELD_HAS_DE' +'FAULT_VALUE %%%>'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'end;'#13 +#10'// <%%% END STRUCT_GENERATE_DEFAULT_VALUES %%%>'#13#10#13#10'destructor ' +'%STRUCT_NAME%.Destroy;'#13#10'begin'#13#10' FDestroying := True;'#13#10' ' +'try'#13#10' inherited Destroy;'#13#10' finally'#13#10' FDestroying :' +'= False;'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% START FIELDS_NO_STR' +'IP %%%>'#13#10'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10'function %ST' +'RUCT_NAME%.Get%FIELD_NAME%: %FIELD_TYPE%;'#13#10'begin'#13#10' // <%%% STA' +'RT IF_AUTO_CREATE_FIELDS %%%>'#13#10' if not Assigned(f%FIELD_NAME%) and n' +'ot FDestroying then'#13#10' f%FIELD_NAME% := %FIELD_TYPE%.Create();'#13 +#10' // <%%% END IF_AUTO_CREATE_FIELDS %%%>'#13#10' Result := f%FIELD_NAME' +'%;'#13#10'end;'#13#10'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10'// <%%%' +' END FIELDS_NO_STRIP %%%>'#13#10#13#10'// <%%% START IF_HAS_FIELDS %%%>'#13 +#10'procedure %STRUCT_NAME%.ReadComplex(ASerializer: TObject);'#13#10'var'#13 +#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME%: %F' +'IELD_TYPE%;'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10'begin' +#13#10' if TROSerializer(ASerializer).RecordStrictOrder then begin'#13#10' ' +' // <%%% START IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' inherited;'#13#10' ' +' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS_' +'NO_STRIP %%%>'#13#10' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' // <%%%' +' START IF_FIELD_BINARY_TYPE %%%>'#13#10' TROSerializer(ASerializer).Read' +'Binary(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' if %FIELD_NAME' +'% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD' +'_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_ORIGINALNAME%'', Typ' +'eInfo(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TY' +'PE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TRO' +'Serializer(ASerializer).ReadDouble(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIE' +'LD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' //' +' <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerialize' +'r).ReadDateTime(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%' +'%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMA' +'L_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDecimal(''%FIELD_ORIG' +'INALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE ' +'%%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSeria' +'lizer(ASerializer).ReadDouble(''%FIELD_ORIGINALNAME%'', ftDouble, l_%FIELD_' +'NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%%' +' START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadGu' +'id(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIE' +'LD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadInt64(''%FIELD_ORIGINALNAME%'', l_%FIELD' +'_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%%' +' START IF_FIELD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).Rea' +'dInteger(''%FIELD_ORIGINALNAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // ' +'<%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSIS' +'TRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadAnsiString(''%FIE' +'LD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSIST' +'RING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadUTF8String(''%FIELD_ORIGINALNAME%'', l_%' +'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSerializer(ASeria' +'lizer).ReadVariant(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' //' +' <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDE' +'STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadWideString(''%FI' ,'ELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDES' +'TRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' ' +'TROSerializer(ASerializer).ReadXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%' +');'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadArray(''%' +'FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_' +'NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_F' +'IELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_ORIGINALNAME%'', Typ' +'eInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_' +'TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TRO' +'Serializer(ASerializer).ReadStruct(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, ' +'l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_N' +'AME%.Free;'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <' +'%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' TROSerializer(ASerialize' +'r).ReadStruct(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13 +#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' ' +' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' %FIELD_NAME% := l_%FI' +'ELD_NAME%;'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' end'#13#10 +' else begin'#13#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' ' +' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY' +'_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadBinary(''%FIELD_ORIGIN' +'ALNAME%'', l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% th' +'en %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(AS' +'erializer).ReadEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%F' +'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializ' +'er).ReadDouble(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD' +'_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDateTime(''%F' +'IELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATE' +'TIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).ReadDecimal(''%FIELD_ORIGINALNAME%'', l_%FIEL' +'D_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <' +'%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).R' +'eadDouble(''%FIELD_ORIGINALNAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' /' +'/ <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID' +'_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadGuid(''%FIELD_ORIGINAL' +'NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASer' +'ializer).ReadInt64(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' //' +' <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGE' +'R_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadInteger(''%FIELD_ORIG' +'INALNAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTE' +'GER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).ReadAnsiString(''%FIELD_ORIGINALNAME%'', l_%' +'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASe' +'rializer).ReadUTF8String(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_F' +'IELD_VARIANT_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadVariant(''' +'%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VA' +'RIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).ReadWideString(''%FIELD_ORIGINALNAME%'', ' +'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerializ' +'er).ReadXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% E' +'ND IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>' +#13#10' TROSerializer(ASerializer).ReadArray(''%FIELD_ORIGINALNAME%'', %F' +'IELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% t' +'hen %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer(ASeri' +'alizer).ReadEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(%FIELD_TYPE%), l_' ,'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' //' +' <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer)' +'.ReadStruct(''%FIELD_ORIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10 +' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' //' +' <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XSDAT' +'ETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadStruct(''%FIELD_O' +'RIGINALNAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <' +'> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_XS' +'DATETIME_TYPE %%%>'#13#10' %FIELD_NAME% := l_%FIELD_NAME%;'#13#10' //' +' <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' end;'#13#10'end;'#13#10#13 +#10'procedure %STRUCT_NAME%.WriteComplex(ASerializer: TObject);'#13#10'var' +#13#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME%:' +' %FIELD_TYPE%;'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10'beg' +'in'#13#10' if TROSerializer(ASerializer).RecordStrictOrder then begin'#13 +#10' // <%%% START IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' inherited;'#13 +#10' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' TROSerializer(ASe' +'rializer).ChangeClass(%STRUCT_NAME%);'#13#10' // <%%% START FIELDS_NO_ST' +'RIP %%%>'#13#10' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' // <%%% STAR' +'T IF_FIELD_BINARY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteBina' +'ry(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIE' +'LD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).WriteEnumerated(''%FIELD_ORIGINALNAME%'',' +' TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEA' +'N_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' ' +' TROSerializer(ASerializer).WriteDouble(''%FIELD_ORIGINALNAME%'', ftCurr, l' +'_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASeri' +'alizer).WriteDateTime(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_' +'DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDecimal(''%FIE' +'LD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMA' +'L_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' T' +'ROSerializer(ASerializer).WriteDouble(''%FIELD_ORIGINALNAME%'', ftDouble, l' +'_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer' +').WriteGuid(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% E' +'ND IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%' +'>'#13#10' TROSerializer(ASerializer).WriteInt64(''%FIELD_ORIGINALNAME%''' +', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASeria' +'lizer).WriteInteger(''%FIELD_ORIGINALNAME%'', otSLong, l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_F' +'IELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteAnsiSt' +'ring(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_F' +'IELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE' +' %%%>'#13#10' TROSerializer(ASerializer).WriteUTF8String(''%FIELD_ORIGIN' +'ALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE' +' %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSer' +'ializer(ASerializer).WriteVariant(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%)' +';'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% STAR' +'T IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).Write' +'WideString(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% EN' +'D IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE ' +'%%%>'#13#10' TROSerializer(ASerializer).WriteXml(''%FIELD_ORIGINALNAME%' +''', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASeriali' +'zer).WriteArray(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13 +#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIE' +'LD_ENUM_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteEnumerated(''%' +'FIELD_ORIGINALNAME%'', TypeInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' ' +'// <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUC' +'T_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteStruct(''%FIELD_ORIG' +'INALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD' +'_STRUCT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13 ,#10' TROSerializer(ASerializer).WriteStruct(''%FIELD_ORIGINALNAME%'', l_%' +'FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_XSDATETIME_TYPE' +' %%%>'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' end'#13#10' els' +'e begin'#13#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' l_' +'%FIELD_NAME% := %FIELD_NAME%;'#13#10' // <%%% START IF_FIELD_BINARY_TYPE' +' %%%>'#13#10' TROSerializer(ASerializer).WriteBinary(''%FIELD_ORIGINALNA' +'ME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(AS' +'erializer).WriteEnumerated(''%FIELD_ORIGINALNAME%'', TypeInfo(boolean), l_%' +'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' ' +'// <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASeriali' +'zer).WriteDouble(''%FIELD_ORIGINALNAME%'', ftCurr, l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIE' +'LD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDateTime(' +'''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_' +'DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13 +#10' TROSerializer(ASerializer).WriteDecimal(''%FIELD_ORIGINALNAME%'', l_' +'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializ' +'er).WriteDouble(''%FIELD_ORIGINALNAME%'', ftDouble, l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD' +'_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteGuid(''%FIELD_OR' +'IGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %' +'%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSeriali' +'zer(ASerializer).WriteInt64(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE' +'LD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInteger(''%' +'FIELD_ORIGINALNAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_' +'FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %' +'%%>'#13#10' TROSerializer(ASerializer).WriteAnsiString(''%FIELD_ORIGINAL' +'NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %' +'%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSe' +'rializer(ASerializer).WriteUTF8String(''%FIELD_ORIGINALNAME%'', l_%FIELD_NA' +'ME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%' +'%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSerializer(ASerializer).W' +'riteVariant(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% E' +'ND IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_' +'TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteWideString(''%FIELD_OR' +'IGINALNAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_' +'TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSer' +'ializer(ASerializer).WriteXml(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD' +'_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteArray(''%FIELD_' +'ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_F' +'IELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10 +' TROSerializer(ASerializer).WriteEnumerated(''%FIELD_ORIGINALNAME%'', Ty' +'peInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TR' +'OSerializer(ASerializer).WriteStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAM' +'E%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' TROSerializer(AS' +'erializer).WriteStruct(''%FIELD_ORIGINALNAME%'', l_%FIELD_NAME%, %FIELD_TYP' +'E%);'#13#10' // <%%% END IF_FIELD_XSDATETIME_TYPE %%%>'#13#10' // <%%' +'% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'/' +'/ <%%% END IF_HAS_FIELDS %%%>'#13#10'{ %STRUCT_COLLECTION_NAME% }'#13#10'co' +'nstructor %STRUCT_COLLECTION_NAME%.Create;'#13#10'begin'#13#10' inherited ' +'Create(%STRUCT_NAME%);'#13#10'end;'#13#10#13#10'constructor %STRUCT_COLLECT' +'ION_NAME%.Create(aItemClass: TCollectionItemClass);'#13#10'begin'#13#10' i' +'nherited Create(aItemClass);'#13#10'end;'#13#10#13#10'function %STRUCT_COLL' +'ECTION_NAME%.Add: %STRUCT_NAME%;'#13#10'begin'#13#10' result := %STRUCT_NA' +'ME%(inherited Add);'#13#10'end;'#13#10#13#10'function %STRUCT_COLLECTION_NA' +'ME%.GetItems(aIndex: integer): %STRUCT_NAME%;'#13#10'begin'#13#10' result ' +':= %STRUCT_NAME%(inherited Items[aIndex]);'#13#10'end;'#13#10#13#10'// <%%%' +' START ARRAYS_IS_FOUND %%%>'#13#10'procedure %STRUCT_COLLECTION_NAME%.LoadF' ,'romArray(anArray: %ARRAY_NAME%);'#13#10'var'#13#10' i : integer;'#13#10'be' +'gin'#13#10' Clear;'#13#10' for i := 0 to (anArray.Count-1) do'#13#10' ' +'Add.Assign(anArray[i]);'#13#10'end;'#13#10#13#10'procedure %STRUCT_COLLECTI' +'ON_NAME%.SaveToArray(anArray: %ARRAY_NAME%);'#13#10'var'#13#10' i : intege' +'r;'#13#10'begin'#13#10' anArray.Clear;'#13#10' anArray.Resize(Count);'#13 +#10' for i := 0 to (Count-1) do begin'#13#10' anArray[i] := %STRUCT_NAME' +'%.Create;'#13#10' anArray[i].Assign(Items[i]);'#13#10' end;'#13#10'end;' +#13#10#13#10'// <%%% END ARRAYS_IS_FOUND %%%>'#13#10#13#10'procedure %STRUCT' +'_COLLECTION_NAME%.SetItems(aIndex: integer; const Value: %STRUCT_NAME%);'#13 +#10'begin'#13#10' %STRUCT_NAME%(inherited Items[aIndex]).Assign(Value);'#13 +#10'end;'#13#10#13#10'// <%%% END STRUCTS %%%>'#13#10'// <%%% START SERVICES' +' %%%>'#13#10'{ Co%SERVICE_NAME% }'#13#10#13#10'class function Co%SERVICE_NA' +'ME%.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChann' +'el): I%SERVICE_NAME%;'#13#10'begin'#13#10' result := T%SERVICE_NAME%_Proxy' +'.Create(aMessage, aTransportChannel);'#13#10'end;'#13#10#13#10'{ T%SERVICE_' +'NAME%_Proxy }'#13#10#13#10'function T%SERVICE_NAME%_Proxy.__GetInterfaceNam' +'e:string;'#13#10'begin'#13#10' result := ''%SERVICE_NAME%'';'#13#10'end;' +#13#10#13#10'// <%%% START FUNCTION_OPERATIONS %%%>'#13#10'function T%SERVIC' +'E_NAME%_Proxy.%OPERATION_NAME%('#13#10' // <%%% START PARAMS %%%>' +#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10 +' // <%%% END PARAMS %%%>'#13#10' ): %OPERATION_RESULT%;' +#13#10'begin'#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%' +'% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' /' +'/ <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_ST' +'RIP %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' Result := n' +'il;'#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' try'#13#10' __M' +'essage.InitializeRequestMessage(__TransportChannel, ''%LIBRARY_NAME%'', __I' +'nterfaceName, ''%OPERATION_NAME%'');'#13#10' // <%%% START IN_PARAMS_NO_' +'STRIP %%%>'#13#10' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_TYP' +'E%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_N' +'O_STRIP %%%>'#13#10' __Message.Finalize;'#13#10#13#10' __TransportCha' +'nnel.Dispatch(__Message);'#13#10#13#10' __Message.Read(''Result'', TypeI' +'nfo(%OPERATION_RESULT%), result, [%OPERATION_RESULT_ATTRIBUTE%]);'#13#10' ' +' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM' +'_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10 +' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' __Mess' +'age.FreeStream;'#13#10' end'#13#10'end;'#13#10#13#10'// <%%% END FUNCTION_' +'OPERATIONS %%%>'#13#10'// <%%% START PROCEDURE_OPERATIONS %%%>'#13#10'proce' +'dure T%SERVICE_NAME%_Proxy.%OPERATION_NAME%('#13#10' // <%%% STAR' +'T PARAMS %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM' +'_TYPE%;'#13#10' // <%%% END PARAMS %%%>'#13#10' );'#13 +#10'begin'#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% S' +'TART IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <' +'%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP' +' %%%>'#13#10' try'#13#10' __Message.InitializeRequestMessage(__Transpor' +'tChannel, ''%LIBRARY_NAME%'', __InterfaceName, ''%OPERATION_NAME%'');'#13#10 +' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' __Message.Write(''%PAR' +'AM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13 +#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' __Message.Finalize;' +#13#10#13#10' __TransportChannel.Dispatch(__Message);'#13#10#13#10' //' +' <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAM' +'E%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' ' +' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' __Messag' +'e.FreeStream;'#13#10' end'#13#10'end;'#13#10#13#10'// <%%% END PROCEDURE_O' +'PERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13#10'// <%%% START EVENT_' +'SINKS %%%>'#13#10'type'#13#10' { T%EVENT_SINK_NAME%_Writer }'#13#10' T%EV' +'ENT_SINK_NAME%_Writer = class(T%EVENT_SINK_WRITER_ANCESTOR_NAME%, I%EVENT_S' +'INK_NAME%_Writer)'#13#10' protected'#13#10' // <%%% START OPERATIONS %%' +'%>'#13#10' procedure %OPERATION_NAME%(const __Sender : TGUID'#13#10' ' +' // <%%% START PARAMS %%%>'#13#10' ; %PARAM_FRONT' +'_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%'#13#10' // <%%% END PA' +'RAMS %%%>'#13#10' );'#13#10' // <%%% END OPERATIONS %%%>' +#13#10' end;'#13#10#13#10'// <%%% START OPERATIONS %%%>'#13#10'procedure T%' +'EVENT_SINK_NAME%_Writer.%OPERATION_NAME%(const __Sender : TGUID'#13#10' //' ,' <%%% START PARAMS %%%>'#13#10' ; %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PA' +'RAM_TYPE%'#13#10' // <%%% END PARAMS %%%>'#13#10' );'#13#10'var __eventda' +'ta : Binary;'#13#10'begin'#13#10' __eventdata := Binary.Create;'#13#10' t' +'ry'#13#10' __Message.InitializeEventMessage(NIL, ''%LIBRARY_NAME%'', EID' +'_%EVENT_SINK_NAME%, ''%OPERATION_NAME%'');'#13#10' // <%%% START PARAMS_' +'NO_STRIP %%%>'#13#10' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_' +'TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END PARAMS_N' +'O_STRIP %%%>'#13#10' __Message.Finalize;'#13#10#13#10' __Message.Writ' +'eToStream(__eventdata);'#13#10#13#10' Repository.StoreEventData(__Sender' +', __eventdata, ExcludeSender, ExcludeSessionList, SessionList.CommaText);' +#13#10' finally'#13#10' __eventdata.Free;'#13#10' end;'#13#10'end;'#13 +#10#13#10'// <%%% END OPERATIONS %%%>'#13#10'type'#13#10' { T%EVENT_SINK_NA' +'ME%_Invoker }'#13#10' T%EVENT_SINK_NAME%_Invoker = class(T%EVENT_SINK_INVO' +'KER_ANCESTOR_NAME%)'#13#10' published'#13#10' // <%%% START OPERATIONS ' +'%%%>'#13#10' procedure Invoke_%OPERATION_NAME%(__EventReceiver : TROEven' +'tReceiver; const __Message : IROMessage; const __Target : IUnknown);'#13#10 +' // <%%% END OPERATIONS %%%>'#13#10' end;'#13#10#13#10'// <%%% START OP' +'ERATIONS %%%>'#13#10'procedure T%EVENT_SINK_NAME%_Invoker.Invoke_%OPERATION' +'_NAME%(__EventReceiver : TROEventReceiver; const __Message : IROMessage; co' +'nst __Target : IUnknown);'#13#10'var'#13#10' // <%%% START PARAMS_NO_STRIP' +' %%%>'#13#10' %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END PARAMS_NO_S' +'TRIP %%%>'#13#10' // <%%% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjec' +'tDisposer: TROObjectDisposer;'#13#10' // <%%% END IF_HAS_COMPLEX_TYPE %%%>' +#13#10' __%EVENT_SINK_NAME%Instance: I%EVENT_SINK_NAME%;'#13#10'begin'#13#10 +' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_C' +'OMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF_PARAM_TYP' +'E_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' try'#13#10 +' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_N' +'AME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10 +' // <%%% END PARAMS_NO_STRIP %%%>'#13#10#13#10' __%EVENT_SINK_NAME%In' +'stance := (__Target as I%EVENT_SINK_NAME%);'#13#10' __%EVENT_SINK_NAME%I' +'nstance.%OPERATION_NAME%('#13#10' // <%%% ' +'START PARAMS %%%>'#13#10' %PARAM_NAME%,'#13 +#10' // <%%% END PARAMS %%%>'#13#10' ' +' );'#13#10#13#10' finally'#13#10' // <%%% STA' +'RT IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjectDisposer := TROObjectDispos' +'er.Create(__EventReceiver);'#13#10' try'#13#10' // <%%% START PARAM' +'S_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10 +' __lObjectDisposer.Add(%PARAM_NAME%);'#13#10' // <%%% END IF_PARA' +'M_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' ' +' finally'#13#10' __lObjectDisposer.Free();'#13#10' end;'#13#10' ' +' // <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' end'#13#10'end;'#13#10#13#10 +'// <%%% END OPERATIONS %%%>'#13#10'// <%%% END EVENT_SINKS %%%>'#13#10'init' +'ialization'#13#10' // <%%% START STRUCTS %%%>'#13#10' RegisterROClass(%ST' +'RUCT_NAME%);'#13#10' // <%%% END STRUCTS %%%>'#13#10' // <%%% START ARRAY' +'S %%%>'#13#10' RegisterROClass(%ARRAY_NAME%);'#13#10' // <%%% END ARRAYS ' +'%%%>'#13#10' // <%%% START EXCEPTIONS %%%>'#13#10' RegisterExceptionClass' +'(%EXCEPTION_NAME%);'#13#10' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% S' +'TART SERVICES %%%>'#13#10' RegisterProxyClass(I%SERVICE_NAME%_IID, T%SERVI' +'CE_NAME%_Proxy);'#13#10' // <%%% END SERVICES %%%> '#13#10' // <%%% S' +'TART EVENT_SINKS %%%>'#13#10' RegisterEventWriterClass(I%EVENT_SINK_NAME%_' +'Writer, T%EVENT_SINK_NAME%_Writer);'#13#10' RegisterEventInvokerClass(EID_' +'%EVENT_SINK_NAME%, T%EVENT_SINK_NAME%_Invoker);'#13#10' // <%%% END EVENT_' +'SINKS %%%> '#13#10#13#10'finalization'#13#10' // <%%% START STRUCTS %%' +'%>'#13#10' UnregisterROClass(%STRUCT_NAME%);'#13#10' // <%%% END STRUCTS ' +'%%%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' UnregisterROClass(%ARRAY_N' +'AME%);'#13#10' // <%%% END ARRAYS %%%>'#13#10' // <%%% START EXCEPTIONS %' +'%%>'#13#10' UnregisterExceptionClass(%EXCEPTION_NAME%);'#13#10' // <%%% E' +'ND EXCEPTIONS %%%>'#13#10' // <%%% START SERVICES %%%>'#13#10' Unregister' +'ProxyClass(I%SERVICE_NAME%_IID);'#13#10' // <%%% END SERVICES %%%>'#13#10 +' // <%%% START EVENT_SINKS %%%>'#13#10' UnregisterEventWriterClass(I%EVEN' +'T_SINK_NAME%_Writer);'#13#10' UnregisterEventInvokerClass(EID_%EVENT_SINK_' +'NAME%);'#13#10' // <%%% END EVENT_SINKS %%%> '#13#10#13#10'end.'#13#10 ]); LazarusResources.Add('TEMPLATE_INVK_PAS','RCDATA',[ 'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------' +'--------------------------------}'#13#10'{ This unit was automatically gene' +'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa' +'ted with this project . }'#13#10'{ ' +' }'#13#10'{' +' Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{-----------------------------------------------------' +'-----------------------}'#13#10#13#10'{$I RemObjects.inc}'#13#10#13#10'inte' +'rface'#13#10#13#10'uses'#13#10' {vcl:} Classes,'#13#10' {RemObjects:} uRO' +'XMLIntf, uROServer, uROServerIntf, uROTypes, uROClientIntf,'#13#10' // <%%' +'% START REQUIRED_UNITS %%%>'#13#10' {Required:} %REQUIRED_UNIT_NAME%,'#13 +#10' // <%%% END REQUIRED_UNITS %%%>'#13#10' {Generated:} %LIBRARY_NAME%_I' +'ntf;'#13#10#13#10'type'#13#10' TSeekOrigin = Classes.TSeekOrigin; // fake ' +'declaration'#13#10#13#10' // <%%% START SERVICES %%%>'#13#10' T%SERVICE_N' +'AME%_Invoker = class(T%SERVICE_INVOKER_ANCESTOR_NAME%)'#13#10' private'#13 +#10' protected'#13#10' constructor Create; override;'#13#10' published' +#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' procedure Invok' +'e_%OPERATION_NAME%(const __Instance:IInterface; const __Message:IROMessage;' +' const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions)' +';'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10' // <%%% START ' +'PROCEDURE_OPERATIONS %%%>'#13#10' procedure Invoke_%OPERATION_NAME%(cons' +'t __Instance:IInterface; const __Message:IROMessage; const __Transport:IROT' +'ransport; out __oResponseOptions:TROResponseOptions);'#13#10' // <%%% EN' +'D PROCEDURE_OPERATIONS %%%>'#13#10' end;'#13#10#13#10' // <%%% END SERVIC' +'ES %%%>'#13#10'implementation'#13#10#13#10'uses'#13#10' {RemObjects:} uROR' +'es, uROClient;'#13#10#13#10'// <%%% START SERVICES %%%>'#13#10'{ T%SERVICE_' +'NAME%_Invoker }'#13#10#13#10'constructor T%SERVICE_NAME%_Invoker.Create;'#13 +#10'begin'#13#10' inherited Create;'#13#10' FAbstract := %IS_ABSTRACT%;'#13 +#10'end;'#13#10#13#10'// <%%% START FUNCTION_OPERATIONS %%%>'#13#10'procedur' +'e T%SERVICE_NAME%_Invoker.Invoke_%OPERATION_NAME%(const __Instance:IInterfa' +'ce; const __Message:IROMessage; const __Transport:IROTransport; out __oResp' +'onseOptions:TROResponseOptions);'#13#10'{ function %OPERATION_NAME%('#13#10 +' // <%%% START PARAMS %%%>'#13#10' %PARAM_FRONT_M' +'ODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END PARAM' +'S %%%>'#13#10' ): %OPERATION_RESULT%; }'#13#10'var'#13#10' //' +' <%%% START PARAMS_NO_STRIP %%%>'#13#10' %PARAM_NAME%: %PARAM_TYPE%;'#13#10 +' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' lResult: %OPERATION_RESULT%;'#13 +#10' // <%%% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjectDisposer: TRO' +'ObjectDisposer;'#13#10' // <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' __%S' +'ERVICE_NAME%Instance: I%SERVICE_NAME%;'#13#10'begin'#13#10' // <%%% START ' +'PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13 +#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>' +#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_RESULT_C' +'OMPLEX %%%>'#13#10' lResult := nil;'#13#10' // <%%% END IF_RESULT_COMPLEX' +' %%%>'#13#10' try'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10 +' __Message.Read(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, ' +'[%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10 +#13#10' __%SERVICE_NAME%Instance := __Instance as I%SERVICE_NAME%; '#13#10 +' lResult := __%SERVICE_NAME%Instance.%OPERATION_NAME%('#13#10' ' +' // <%%% START PARAMS %%%>'#13#10' ' +' %PARAM_NAME%,'#13#10' ' +' // <%%% END PARAMS %%%>'#13#10' ' +' );'#13#10#13#10' __Message.InitializeResponseMessage(_' +'_Transport, ''%LIBRARY_NAME%'', ''%SERVICE_NAME%'', ''%OPERATION_NAME%Respo' +'nse'');'#13#10' __Message.Write(''Result'', TypeInfo(%OPERATION_RESULT%)' +', lResult, [%OPERATION_RESULT_ATTRIBUTE%]);'#13#10' // <%%% START OUT_PA' +'RAMS_NO_STRIP %%%>'#13#10' __Message.Write(''%PARAM_NAME%'', TypeInfo(%P' +'ARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT' +'_PARAMS_NO_STRIP %%%>'#13#10' __Message.Finalize;'#13#10' __Message.U' +'nsetAttributes(__Transport);'#13#10' '#13#10' finally'#13#10' // <%%' +'% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjectDisposer := TROObjectD' +'isposer.Create(__Instance);'#13#10' try'#13#10' // <%%% START PARAM' +'S_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10 ,' __lObjectDisposer.Add(%PARAM_NAME%);'#13#10' // <%%% END IF_PARA' +'M_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' ' +' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' __lObjectDisposer.Add' +'(lResult);'#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' final' +'ly'#13#10' __lObjectDisposer.Free();'#13#10' end;'#13#10' // <%%' +'% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'// <%' +'%% END FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START PROCEDURE_OPERATIONS %' +'%%>'#13#10'procedure T%SERVICE_NAME%_Invoker.Invoke_%OPERATION_NAME%(const ' +'__Instance:IInterface; const __Message:IROMessage; const __Transport:IROTra' +'nsport; out __oResponseOptions:TROResponseOptions);'#13#10'{ procedure %OPE' +'RATION_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' ' +' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' ' +' // <%%% END PARAMS %%%>'#13#10' ); }'#13#10'var'#13#10' /' +'/ <%%% START PARAMS_NO_STRIP %%%>'#13#10' %PARAM_NAME%: %PARAM_TYPE%;'#13 +#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_HAS_COMPLEX' +'_TYPE %%%>'#13#10' __lObjectDisposer: TROObjectDisposer;'#13#10' // <%%% ' +'END IF_HAS_COMPLEX_TYPE %%%>'#13#10' __%SERVICE_NAME%Instance: I%SERVICE_N' +'AME%;'#13#10'begin'#13#10' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' // ' +'<%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10 +' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STR' +'IP %%%>'#13#10' try'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10 +' __Message.Read(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, ' +'[%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10 +#13#10' __%SERVICE_NAME%Instance := __Instance as I%SERVICE_NAME%; '#13#10 +' __%SERVICE_NAME%Instance.%OPERATION_NAME%('#13#10' ' +' // <%%% START PARAMS %%%>'#13#10' %' +'PARAM_NAME%,'#13#10' // <%%% END PARAMS %%%>' +#13#10' );'#13#10#13#10' __Message.Initiali' +'zeResponseMessage(__Transport, ''%LIBRARY_NAME%'', ''%SERVICE_NAME%'', ''%O' +'PERATION_NAME%Response'');'#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%' +'>'#13#10' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PAR' +'AM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT_PARAMS_NO_STRIP ' +'%%%>'#13#10' __Message.Finalize;'#13#10' __Message.UnsetAttributes(__' +'Transport);'#13#10' '#13#10' // <%%% START IF_NO_OUT_PARAMS %%%>'#13 +#10' __oResponseOptions := [roNoResponse];'#13#10#13#10' // <%%% END I' +'F_NO_OUT_PARAMS %%%>'#13#10' finally'#13#10' // <%%% START IF_HAS_COMPL' +'EX_TYPE %%%>'#13#10' __lObjectDisposer := TROObjectDisposer.Create(__Ins' +'tance);'#13#10' try'#13#10' // <%%% START PARAMS_NO_STRIP %%%>'#13 +#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __lObjectDis' +'poser.Add(%PARAM_NAME%);'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%' +'>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' ' +' __lObjectDisposer.Free();'#13#10' end;'#13#10' // <%%% END IF_HA' +'S_COMPLEX_TYPE %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% END PROC' +'EDURE_OPERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13#10'end.'#13#10 ]); LazarusResources.Add('TEMPLATE_IMPL_PAS','RCDATA',[ 'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------' +'--------------------------------}'#13#10'{ This unit was automatically gene' +'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa' +'ted with this project . }'#13#10'{ ' +' }'#13#10'{' +' This is where you are supposed to code the implementation of your objects.' +' }'#13#10'{----------------------------------------------------------------' +'------------}'#13#10#13#10'{$I RemObjects.inc}'#13#10#13#10'interface'#13#10 +#13#10'uses'#13#10' {vcl:} Classes, SysUtils,'#13#10' {RemObjects:} uROXML' +'Intf, uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,'#13#10 +' // <%%% START REQUIRED_UNITS %%%>'#13#10' {Required:} %REQUIRED_UNIT_NAM' +'E%,'#13#10' // <%%% END REQUIRED_UNITS %%%>'#13#10' {Generated:} %LIBRARY' +'_NAME%_Intf;'#13#10#13#10'// <%%% START SERVICES %%%>'#13#10'type'#13#10' ' +'{ T%SERVICE_NAME% }'#13#10' T%SERVICE_NAME% = class(%SERVICE_ANCESTOR_NAME' +'%, I%SERVICE_NAME%)'#13#10' private'#13#10' protected'#13#10' { I%SERV' +'ICE_NAME% methods }'#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10 +' function %OPERATION_NAME%('#13#10' // <%%% START PARAMS %' +'%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%' +';'#13#10' // <%%% END PARAMS %%%>'#13#10' ): %O' +'PERATION_RESULT%;'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10' ' +' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' procedure %OPERATION_N' +'AME%('#13#10' // <%%% START PARAMS %%%>'#13#10' ' +' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' /' +'/ <%%% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END PROC' +'EDURE_OPERATIONS %%%>'#13#10' end;'#13#10'// <%%% END SERVICES %%%>'#13#10 +#13#10'implementation'#13#10#13#10'// <%%% START IF_DATA_MODULE %%%>'#13#10 +'{$R *.dfm}'#13#10#13#10'// <%%% END IF_DATA_MODULE %%%>'#13#10'uses'#13#10 +' {Generated:} %LIBRARY_NAME%_Invk;'#13#10#13#10'// <%%% START SERVICES %%%' +'>'#13#10'procedure Create_%SERVICE_NAME%(out anInstance : IUnknown);'#13#10 +'begin'#13#10' anInstance := T%SERVICE_NAME%.Create('#13#10' // <%%% STA' +'RT IF_DATA_MODULE %%%>'#13#10' nil'#13#10' // <%%% END IF_DATA_MODULE' +' %%%>'#13#10' );'#13#10'end;'#13#10#13#10'{ %SERVICE_NAME% }'#13#10'// <' +'%%% START FUNCTION_OPERATIONS %%%>'#13#10'function T%SERVICE_NAME%.%OPERATI' +'ON_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' %PA' +'RAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% E' +'ND PARAMS %%%>'#13#10' ): %OPERATION_RESULT%;'#13#10'begin'#13#10 +'end;'#13#10#13#10'// <%%% END FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START' +' PROCEDURE_OPERATIONS %%%>'#13#10'procedure T%SERVICE_NAME%.%OPERATION_NAME' +'%('#13#10' // <%%% START PARAMS %%%>'#13#10' %PARAM_FRO' +'NT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END PARA' +'MS %%%>'#13#10' );'#13#10'begin'#13#10'end;'#13#10#13#10'// <%%% ' +'END PROCEDURE_OPERATIONS %%%>'#13#10'initialization'#13#10' TROClassFactor' +'y.Create(''%SERVICE_NAME%'', Create_%SERVICE_NAME%, T%SERVICE_NAME%_Invoker' +');'#13#10#13#10'finalization'#13#10#13#10'// <%%% END SERVICES %%%>'#13#10 +'end.'#13#10 ]); LazarusResources.Add('TEMPLATE_ASYNC_PAS','RCDATA',[ 'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------' +'--------------------------------}'#13#10'{ This unit was automatically gene' +'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa' +'ted with this project . }'#13#10'{ ' +' }'#13#10'{' +' Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{-----------------------------------------------------' +'-----------------------}'#13#10#13#10'{$I RemObjects.inc}'#13#10#13#10'inte' +'rface'#13#10#13#10'uses'#13#10' {vcl:} Classes, TypInfo,'#13#10' {RemObje' +'cts:} uROXMLIntf, uROClasses, uROClient, uROTypes, uROClientIntf, uROAsync' +#13#10' // <%%% START REQUIRED_UNITS %%%>'#13#10' {Required:} %REQUIRED_UN' +'IT_NAME%,'#13#10' // <%%% END REQUIRED_UNITS %%%>'#13#10' {Generated:} %L' +'IBRARY_NAME%_Intf;'#13#10#13#10'type'#13#10' { Forward declarations }'#13 +#10' // <%%% START SERVICES %%%>'#13#10' I%SERVICE_NAME%_Async = interface' +';'#13#10' Co%SERVICE_NAME%_Async = class;'#13#10' T%SERVICE_NAME%_AsyncPr' +'oxy = class;'#13#10' // <%%% END SERVICES %%%>'#13#10#13#10' // <%%% STAR' +'T SERVICES %%%>'#13#10' { I%SERVICE_NAME%_Async }'#13#10' // <%%% START D' +'OCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10' %CONTENT% }'#13 +#10' // <%%% END DOCUMENTATION %%%>'#13#10' I%SERVICE_NAME%_Async = interf' +'ace%SERVICE_ANCESTOR_NAME%'#13#10' [''%ASYNC_SERVICE_UID%'']'#13#10' ' +'// <%%% START FUNCTION_OPERATIONS %%%>'#13#10' procedure Invoke_%OPERATI' +'ON_NAME%('#13#10' // <%%% START IN_PARAMS %%%>'#13#10' ' +' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' ' +' // <%%% END IN_PARAMS %%%>'#13#10' );'#13#10' functi' +'on Retrieve_%OPERATION_NAME%('#13#10' // <%%% START OUT_PARAM' +'S %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TY' +'PE%;'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' ' +' ): %OPERATION_RESULT%;'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13 +#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' procedure Invoke_' +'%OPERATION_NAME%('#13#10' // <%%% START IN_PARAMS %%%>'#13#10 +' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' ' +' // <%%% END IN_PARAMS %%%>'#13#10' );'#13#10 +' // <%%% START IF_OUT_PARAMS %%%>'#13#10' procedure Retrieve_%OPERATI' +'ON_NAME%('#13#10' // <%%% START OUT_PARAMS %%%>'#13#10' ' +' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' ' +' // <%%% END OUT_PARAMS %%%>'#13#10' );'#13#10' // <' +'%%% END IF_OUT_PARAMS %%%>'#13#10' // <%%% END PROCEDURE_OPERATIONS %%%>' +#13#10' end;'#13#10#13#10' { Co%SERVICE_NAME%_Async }'#13#10' Co%SERVICE_' +'NAME%_Async = class'#13#10' class function Create(const aMessage: IROMes' +'sage; aTransportChannel: IROTransportChannel): I%SERVICE_NAME%_Async;'#13#10 +' end;'#13#10#13#10' { T%SERVICE_NAME%_Proxy }'#13#10' T%SERVICE_NAME%_As' +'yncProxy = class(%SERVICE_PROXY_ANCESTOR_NAME%, I%SERVICE_NAME%_Async)'#13 +#10' protected'#13#10' function __GetInterfaceName:string; override;'#13 +#10#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' procedure In' +'voke_%OPERATION_NAME%('#13#10' // <%%% START IN_PARAMS %%%>' +#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13 +#10' // <%%% END IN_PARAMS %%%>'#13#10' );'#13#10 +' function Retrieve_%OPERATION_NAME%('#13#10' // <%%% START' +' OUT_PARAMS %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%:' +' %PARAM_TYPE%;'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' ' +' ): %OPERATION_RESULT%;'#13#10' // <%%% END FUNCTION_OPERATIO' +'NS %%%>'#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' proce' +'dure Invoke_%OPERATION_NAME%('#13#10' // <%%% START IN_PARAM' +'S %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_T' +'YPE%;'#13#10' // <%%% END IN_PARAMS %%%>'#13#10' ' +' );'#13#10' // <%%% START IF_OUT_PARAMS %%%>'#13#10' procedure Ret' +'rieve_%OPERATION_NAME%('#13#10' // <%%% START OUT_PARAMS %%%>' +#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13 +#10' // <%%% END OUT_PARAMS %%%>'#13#10' );'#13 +#10' // <%%% END IF_OUT_PARAMS %%%>'#13#10' // <%%% END PROCEDURE_OPER' +'ATIONS %%%>'#13#10' end;'#13#10#13#10' // <%%% END SERVICES %%%>'#13#10'i' +'mplementation'#13#10#13#10'uses'#13#10' {vcl:} SysUtils,'#13#10' {RemObje' +'cts:} uROEventRepository, uRORes;'#13#10#13#10'// <%%% START SERVICES %%%>' ,#13#10'{ Co%SERVICE_NAME%_Async }'#13#10#13#10'class function Co%SERVICE_NAM' +'E%_Async.Create(const aMessage: IROMessage; aTransportChannel: IROTransport' +'Channel): I%SERVICE_NAME%_Async;'#13#10'begin'#13#10' result := T%SERVICE_' +'NAME%_AsyncProxy.Create(aMessage, aTransportChannel);'#13#10'end;'#13#10#13 +#10'{ T%SERVICE_NAME%_AsyncProxy }'#13#10#13#10'function T%SERVICE_NAME%_Asy' +'ncProxy.__GetInterfaceName:string;'#13#10'begin'#13#10' result := ''%SERVI' +'CE_NAME%'';'#13#10'end;'#13#10#13#10'// <%%% START FUNCTION_OPERATIONS %%%>' +#13#10'procedure T%SERVICE_NAME%_AsyncProxy.Invoke_%OPERATION_NAME%('#13#10 +' // <%%% START IN_PARAMS %%%>'#13#10' %PARAM_FRONT_MODI' +'FIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%% END IN_PARAMS %' +'%%>'#13#10' );'#13#10'begin'#13#10' __AssertProxyNotBusy(''%OPER' +'ATION_NAME%'');'#13#10#13#10' __Message.InitializeRequestMessage(__Transpo' +'rtChannel, ''%LIBRARY_NAME%'', __InterfaceName, ''%OPERATION_NAME%'');'#13 +#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' __Message.Write(''%PARA' +'M_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13 +#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10#13#10' __DispatchAsyncRequ' +'est(''%OPERATION_NAME%'',__Message);'#13#10'end;'#13#10#13#10'function T%SE' +'RVICE_NAME%_AsyncProxy.Retrieve_%OPERATION_NAME%('#13#10' // <%%%' +' START OUT_PARAMS %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME' +'%: %PARAM_TYPE%;'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' ' +' ): %OPERATION_RESULT%;'#13#10'var'#13#10' __response:TStream;'#13#10 +'begin'#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% STAR' +'T IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%%' +' END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%' +'%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' Result := nil;'#13 +#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10#13#10' __response := __Retr' +'ieveAsyncResponse(''%OPERATION_NAME%'');'#13#10' __Message.ReadFromStream(' +'__response);'#13#10#13#10' __Message.Read(''Result'', TypeInfo(%OPERATION_' +'RESULT%), Result, [%OPERATION_RESULT_ATTRIBUTE%]);'#13#10' // <%%% START O' +'UT_PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInfo(' +'%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT' +'_PARAMS_NO_STRIP %%%>'#13#10#13#10' __response.Free();'#13#10'end;'#13#10 +#13#10'// <%%% END FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START PROCEDURE_O' +'PERATIONS %%%>'#13#10'procedure T%SERVICE_NAME%_AsyncProxy.Invoke_%OPERATIO' +'N_NAME%('#13#10' // <%%% START IN_PARAMS %%%>'#13#10' %' +'PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' // <%%%' +' END IN_PARAMS %%%>'#13#10' );'#13#10'var'#13#10' __request:TStr' +'eam;'#13#10'begin'#13#10' __AssertProxyNotBusy(''%OPERATION_NAME%'');'#13 +#10' __request := TMemoryStream.Create;'#13#10#13#10' __Message.Initialize' +'RequestMessage(__TransportChannel, ''%LIBRARY_NAME%'', __InterfaceName, ''%' +'OPERATION_NAME%'');'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' ' +' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAME%, [%' +'PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' _' +'_Message.Finalize;'#13#10#13#10' __Message.WriteToStream(__request);'#13#10 +' __DispatchAsyncRequest(''%OPERATION_NAME%'', __request, False);'#13#10'en' +'d;'#13#10#13#10'// <%%% START IF_OUT_PARAMS %%%>'#13#10'procedure T%SERVICE' +'_NAME%_AsyncProxy.Retrieve_%OPERATION_NAME%('#13#10' // <%%% STAR' +'T OUT_PARAMS %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %P' +'ARAM_TYPE%;'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' ' +' );'#13#10'var'#13#10' __response:TStream;'#13#10'begin'#13#10' // <%%% S' +'TART OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX ' +'%%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF_PARAM_TYPE_COMPL' +'EX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#13#10' __resp' +'onse := __RetrieveAsyncResponse(''%OPERATION_NAME%'');'#13#10' __Message.R' +'eadFromStream(__response);'#13#10#13#10' // <%%% START OUT_PARAMS_NO_STRIP' +' %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PA' +'RAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %' +'%%>'#13#10#13#10' __response.Free();'#13#10'end;'#13#10#13#10'// <%%% END ' +'IF_OUT_PARAMS %%%>'#13#10'// <%%% END PROCEDURE_OPERATIONS %%%>'#13#10'// <' +'%%% END SERVICES %%%>'#13#10'initialization'#13#10#13#10'finalization'#13#10 +#13#10'end.'#13#10 ]); LazarusResources.Add('TEMPLATE_WRAPPER_INTF_PAS','RCDATA',[ 'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------' +'--------------------------------}'#13#10'{ This unit was automatically gene' +'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa' +'ted with this project . }'#13#10'{ ' +' }'#13#10'{' +' Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{-----------------------------------------------------' +'-----------------------}'#13#10#13#10'interface'#13#10#13#10'uses'#13#10' ' +'// <%%% START USES %%%>'#13#10' %USED_UNIT_NAME%,'#13#10' // <%%% END USE' +'S %%%>'#13#10' ;'#13#10#13#10'type'#13#10' // <%%% START TYPES %%%>'#13#10 +' %TYPE_NAME% = %TYPE_UNIT_NAME%.%TYPE_NAME%;'#13#10' // <%%% END TYPES %%' +'%>'#13#10' '#13#10'implementation'#13#10#13#10'end.'#13#10 ]); LazarusResources.Add('TEMPLATE_WRAPPER_INVK_PAS','RCDATA',[ 'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------' +'--------------------------------}'#13#10'{ This unit was automatically gene' +'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa' +'ted with this project . }'#13#10'{ ' +' }'#13#10'{' +' Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{-----------------------------------------------------' +'-----------------------}'#13#10#13#10'interface'#13#10#13#10'uses'#13#10' ' +'// <%%% START USES %%%>'#13#10' %USED_UNIT_NAME%,'#13#10' // <%%% END USE' +'S %%%>'#13#10' ;'#13#10#13#10'type'#13#10' // <%%% START TYPES %%%>'#13#10 +' %TYPE_NAME%_Invoker = %TYPE_UNIT_NAME%.%TYPE_NAME%_Invoker;'#13#10' // <' +'%%% END TYPES %%%>'#13#10' '#13#10'implementation'#13#10#13#10'end.'#13#10 ]); LazarusResources.Add('TEMPLATE_WRAPPER_ASYNC_PAS','RCDATA',[ 'unit %UNIT_NAME%;'#13#10#13#10'{--------------------------------------------' +'--------------------------------}'#13#10'{ This unit was automatically gene' +'rated by the RemObjects SDK after reading }'#13#10'{ the RODL file associa' +'ted with this project . }'#13#10'{ ' +' }'#13#10'{' +' Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{-----------------------------------------------------' +'-----------------------}'#13#10#13#10'interface'#13#10#13#10'uses'#13#10' ' +'// <%%% START USES %%%>'#13#10' %USED_UNIT_NAME%,'#13#10' // <%%% END USE' +'S %%%>'#13#10' ;'#13#10#13#10'type'#13#10' // <%%% START TYPES %%%>'#13#10 +' %TYPE_NAME% = %TYPE_UNIT_NAME%.%TYPE_NAME%;'#13#10' // <%%% END TYPES %%' +'%>'#13#10' '#13#10'implementation'#13#10#13#10'end.'#13#10 ]); LazarusResources.Add('TEMPLATE_IMPL_DFM','RCDATA',[ '// <%%% START SERVICES %%%>'#13#10'object %SERVICE_NAME%: T%SERVICE_NAME%'#13 +#10' OldCreateOrder = False'#13#10' Height = 150'#13#10' Width = 150'#13 +#10'end'#13#10'// <%%% END SERVICES %%%>'#13#10 ]); LazarusResources.Add('TEMPLATE_INTF_CPP','RCDATA',[ '// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------' +'---------------------------------}'#13#10'{ This unit was automatically gen' +'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ' +'ated with this project. }'#13#10'{ ' +' }'#13#10 +'{ Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{----------------------------------------------------' +'-----------------------*/'#13#10#13#10'void __initialization_%UNIT_NAME%();' +#13#10'void __finalization_%UNIT_NAME%();'#13#10#13#10'#pragma startup __ini' +'tialization_%UNIT_NAME%'#13#10'#pragma exit __finalization_%UNIT_NAME%' +#13#10#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10'#include '#13#10'#include '#13#10#13#10'// Implementation of %' +'UNIT_NAME%'#13#10#13#10'// <%%% START ARRAYS %%%>'#13#10'// %ARRAY_NAME%'#13 +#10'void __fastcall %ARRAY_NAME%::Assign(Classes::TPersistent* iSource)'#13 +#10'{'#13#10' %ARRAY_NAME%* lSource = dynamic_cast<%ARRAY_NAME%*>(iSource);' +#13#10' if (lSource)'#13#10' {'#13#10' Clear();'#13#10' Resize(lSour' +'ce->Count);'#13#10' for (int i = 0 ; i < Count ; i++)'#13#10' {'#13#10 +' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' if (lSource->It' +'ems[i] != NULL)'#13#10' {'#13#10' Items[i]->Assign(lSource->Ite' +'ms[i]);'#13#10' }'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>' +#13#10' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' Items[i] =' +' lSource->Items[i];'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13 +#10' }'#13#10' }'#13#10' else'#13#10' {'#13#10' inherited::Assign(i' +'Source);'#13#10' }'#13#10'}'#13#10#13#10'void __fastcall %ARRAY_NAME%::Rea' +'dComplex(TObject* ASerializer)'#13#10'{'#13#10' // <%%% START IF_ARRAY_TYP' +'E_SIMPLE %%%>'#13#10' %ARRAY_TYPE% lval;'#13#10' // <%%% END IF_ARRAY_TYP' +'E_SIMPLE %%%>'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' %A' +'RRAY_TYPE%* lval;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' ' +'TROSerializer* Serializer = dynamic_cast(ASerializer);'#13 +#10' for (int i = 0; i < Count; i++)'#13#10' {'#13#10' // <%%% START IF' +'_ARRAY_BINARY_TYPE %%%>'#13#10' Serializer->ReadBinary(Serializer->GetAr' +'rayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval,' +' i);'#13#10' // <%%% END IF_ARRAY_BINARY_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_ARRAY_BOOLEAN_TYPE %%%>'#13#10' Serializer->ReadEnumerated(Serial' +'izer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(' +'i)), __GetboolInfo, &lval, i);'#13#10' // <%%% END IF_ARRAY_BOOLEAN_TYPE' +' %%%>'#13#10' // <%%% START IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' Seria' +'lizer->ReadDouble(Serializer->GetArrayElementName(GetItemType(__classid(%AR' +'RAY_NAME%)), GetItemRef(i)), ftCurr, &lval, i);'#13#10' // <%%% END IF_A' +'RRAY_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DATETIME_TYPE %%%' +'>'#13#10' Serializer->ReadDateTime(Serializer->GetArrayElementName(GetIt' +'emType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);'#13#10' // <' +'%%% END IF_ARRAY_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DECIM' +'AL_TYPE %%%>'#13#10' Serializer->ReadDecimal(Serializer->GetArrayElement' +'Name(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);'#13#10 +' // <%%% END IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_ARRA' +'Y_DOUBLE_TYPE %%%>'#13#10' Serializer->ReadDouble(Serializer->GetArrayEl' +'ementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), ftDouble, &' +'lval, i);'#13#10' // <%%% END IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' // <%' +'%% START IF_ARRAY_GUID_TYPE %%%>'#13#10' Serializer->ReadGuid(Serializer' +'->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)),' +' &lval, i);'#13#10' // <%%% END IF_ARRAY_GUID_TYPE %%%>'#13#10' // <%' +'%% START IF_ARRAY_INT64_TYPE %%%>'#13#10' Serializer->ReadInt64(Serializ' +'er->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)' +'), &lval, i);'#13#10' // <%%% END IF_ARRAY_INT64_TYPE %%%>'#13#10' //' +' <%%% START IF_ARRAY_INTEGER_TYPE %%%>'#13#10' Serializer->ReadInteger(S' +'erializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetIte' +'mRef(i)), otSLong, &lval, i);'#13#10' // <%%% END IF_ARRAY_INTEGER_TYPE ' +'%%%>'#13#10' // <%%% START IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' Seri' +'alizer->ReadUTF8String(Serializer->GetArrayElementName(GetItemType(__classi' +'d(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);'#13#10' // <%%% END IF_ARRA' +'Y_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_UTF8STRING_TYPE %%' +'%>'#13#10' Serializer->ReadUTF8String(Serializer->GetArrayElementName(Ge' ,'tItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);'#13#10' /' +'/ <%%% END IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_' +'VARIANT_TYPE %%%>'#13#10' Serializer->ReadVariant(Serializer->GetArrayEl' +'ementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &lval, i);' +#13#10' // <%%% END IF_ARRAY_VARIANT_TYPE %%%>'#13#10' // <%%% START I' +'F_ARRAY_WIDESTRING_TYPE %%%>'#13#10' Serializer->ReadWideString(Serializ' +'er->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)' +'), &lval, i);'#13#10' // <%%% END IF_ARRAY_WIDESTRING_TYPE %%%>'#13#10' ' +' // <%%% START IF_ARRAY_XML_TYPE %%%>'#13#10' Serializer->ReadXml(Seri' +'alizer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRe' +'f(i)), &lval, i);'#13#10' // <%%% END IF_ARRAY_XML_TYPE %%%>'#13#10' ' +'// <%%% START IF_ARRAY_ARRAY_TYPE %%%>'#13#10' Serializer->ReadArray(Ser' +'ializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemR' +'ef(i)), __classid(%ARRAY_TYPE%), &lval, i);'#13#10' // <%%% END IF_ARRAY' +'_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ENUM_TYPE %%%>'#13#10' ' +' Serializer->ReadEnumerated(Serializer->GetArrayElementName(GetItemType(__' +'classid(%ARRAY_NAME%)), GetItemRef(i)), __Get%ARRAY_TYPE%Info, &lval, i);' +#13#10' // <%%% END IF_ARRAY_ENUM_TYPE %%%>'#13#10' // <%%% START IF_A' +'RRAY_STRUCT_TYPE %%%>'#13#10' Serializer->ReadStruct(Serializer->GetArra' +'yElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), __classi' +'d(%ARRAY_TYPE%), &lval, i);'#13#10' // <%%% END IF_ARRAY_STRUCT_TYPE %%%' +'>'#13#10' Items[i] = lval;'#13#10' }'#13#10'}'#13#10#13#10'void __fastc' +'all %ARRAY_NAME%::WriteComplex(TObject* ASerializer)'#13#10'{'#13#10' TRO' +'Serializer* Serializer = dynamic_cast(ASerializer);'#13#10 +' for(int i = 0; i < Count; i++)'#13#10' // <%%% START IF_ARRAY_BINARY_T' +'YPE %%%>'#13#10' Serializer->WriteBinary(Serializer->GetArrayElementName' +'(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13 +#10' // <%%% END IF_ARRAY_BINARY_TYPE %%%>'#13#10' // <%%% START IF_AR' +'RAY_BOOLEAN_TYPE %%%>'#13#10' Serializer->WriteEnumerated(Serializer->Ge' +'tArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), __G' +'etboolInfo, &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_BOOLEAN_TYPE ' +'%%%>'#13#10' // <%%% START IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' Serial' +'izer->WriteDouble(Serializer->GetArrayElementName(GetItemType(__classid(%AR' +'RAY_NAME%)), GetItemRef(i)), ftCurr, &(fItems[i]), i);'#13#10' // <%%% E' +'ND IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DATETIME_T' +'YPE %%%>'#13#10' Serializer->WriteDateTime(Serializer->GetArrayElementNa' +'me(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);' +#13#10' // <%%% END IF_ARRAY_DATETIME_TYPE %%%>'#13#10' // <%%% START ' +'IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' Serializer->WriteDecimal(Serializer->' +'GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &' +'(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_DECIMAL_TYPE %%%>'#13#10' ' +' // <%%% START IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' Serializer->WriteDoub' +'le(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), Ge' +'tItemRef(i)), ftDouble, &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_D' +'OUBLE_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_GUID_TYPE %%%>'#13#10' ' +' Serializer->WriteGuid(Serializer->GetArrayElementName(GetItemType(__classi' +'d(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' // <%%% END ' +'IF_ARRAY_GUID_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INT64_TYPE %%%>' +#13#10' Serializer->WriteInt64(Serializer->GetArrayElementName(GetItemTyp' +'e(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' //' +' <%%% END IF_ARRAY_INT64_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INTEGE' +'R_TYPE %%%>'#13#10' Serializer->WriteInteger(Serializer->GetArrayElement' +'Name(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), otSLong, &(fItem' +'s[i]), i);'#13#10' // <%%% END IF_ARRAY_INTEGER_TYPE %%%>'#13#10' // ' +'<%%% START IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' Serializer->WriteUTF8St' +'ring(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), ' +'GetItemRef(i)), &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_ANSISTRIN' +'G_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' ' +' Serializer->WriteUTF8String(Serializer->GetArrayElementName(GetItemType(' +'__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' // <' +'%%% END IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_VAR' +'IANT_TYPE %%%>'#13#10' Serializer->WriteVariant(Serializer->GetArrayElem' +'entName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]),' +' i);'#13#10' // <%%% END IF_ARRAY_VARIANT_TYPE %%%>'#13#10' // <%%% S' ,'TART IF_ARRAY_WIDESTRING_TYPE %%%>'#13#10' Serializer->WriteWideString(S' +'erializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetIte' +'mRef(i)), &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_WIDESTRING_TYPE' +' %%%>'#13#10' // <%%% START IF_ARRAY_XML_TYPE %%%>'#13#10' Serializer' +'->WriteXml(Serializer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAM' +'E%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' // <%%% END IF_ARRAY_XML' +'_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ARRAY_TYPE %%%>'#13#10' Ser' +'ializer->WriteArray(Serializer->GetArrayElementName(GetItemType(__classid(%' +'ARRAY_NAME%)), GetItemRef(i)), &(fItems[i]), i);'#13#10' // <%%% END IF_' +'ARRAY_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ENUM_TYPE %%%>'#13 +#10' Serializer->WriteEnumerated(Serializer->GetArrayElementName(GetItemT' +'ype(__classid(%ARRAY_NAME%)), GetItemRef(i)), __Get%ARRAY_TYPE%Info, &(fIte' +'ms[i]), i);'#13#10' // <%%% END IF_ARRAY_ENUM_TYPE %%%>'#13#10' // <%' +'%% START IF_ARRAY_STRUCT_TYPE %%%>'#13#10' Serializer->WriteStruct(Seria' +'lizer->GetArrayElementName(GetItemType(__classid(%ARRAY_NAME%)), GetItemRef' +'(i)), &(fItems[i]), __classid(%ARRAY_TYPE%), i);'#13#10' // <%%% END IF_' +'ARRAY_STRUCT_TYPE %%%>'#13#10'}'#13#10#13#10'void __fastcall %ARRAY_NAME%::' +'Grow()'#13#10'{'#13#10' int Delta;'#13#10' int Capacity = fItems.Length;' +#13#10' if (Capacity > 64) '#13#10' {'#13#10' Delta = Capacity / 4;'#13 +#10' }'#13#10' else'#13#10' {'#13#10' if (Capacity > 8) '#13#10' ' +'Delta = 16;'#13#10' else'#13#10' Delta = 4;'#13#10' }'#13#10' fIt' +'ems.set_length(Capacity + Delta);'#13#10'}'#13#10#13#10'// <%%% START IF_AR' +'RAY_TYPE_COMPLEX %%%>'#13#10'%ARRAY_TYPE%* __fastcall %ARRAY_NAME%::GetItem' +'s(const int Index)'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'// ' +'<%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'%ARRAY_TYPE% __fastcall %ARRAY_' +'NAME%::GetItems(const int Index)'#13#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%' +'%>'#13#10'{'#13#10' if ((Index < 0) || (Index >= Count))'#13#10' {'#13#10 +' RaiseError(LoadResourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONS' +'T((Index)));'#13#10' }'#13#10' return fItems[Index];'#13#10'}'#13#10#13#10 +'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'void __fastcall %ARRAY_NAME' +'%::SetItems(const int Index, %ARRAY_TYPE%* Value)'#13#10'// <%%% END IF_ARR' +'AY_TYPE_COMPLEX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10 +'void __fastcall %ARRAY_NAME%::SetItems(const int Index, %ARRAY_TYPE% Value)' +#13#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'{'#13#10' if ((Index < ' +'0) || (Index >= Count))'#13#10' {'#13#10' RaiseError(LoadResourceString' +'(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index)));'#13#10' }'#13#10' ' +'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' delete fItems[Index];'#13 +#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' fItems[Index] = Value;' +#13#10'}'#13#10#13#10'int __fastcall %ARRAY_NAME%::GetCount()'#13#10'{'#13#10 +' return fCount;'#13#10'}'#13#10#13#10'void* __fastcall %ARRAY_NAME%::GetIt' +'emRef(const int Index)'#13#10'{'#13#10' if ((Index < 0) || (Index >= Count' +'))'#13#10' {'#13#10' RaiseError(LoadResourceString(&_err_ArrayIndexOutO' +'fBounds), ARRAYOFCONST((Index)));'#13#10' }'#13#10'// <%%% START IF_ARRAY_' +'TYPE_COMPLEX %%%>'#13#10' return fItems[Index];'#13#10'// <%%% END IF_ARRA' +'Y_TYPE_COMPLEX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' ' +' return &fItems[Index];'#13#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10 +'}'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'void __fastc' +'all %ARRAY_NAME%::SetItemRef(const int Index, void* Ref)'#13#10'{'#13#10' ' +'if ((Index < 0) || (Index >= Count))'#13#10' {'#13#10' RaiseError(LoadR' +'esourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index)));'#13#10 +' }'#13#10#13#10' if (Ref != fItems[Index])'#13#10' {'#13#10' delete f' +'Items[Index];'#13#10' fItems[Index] = reinterpret_cast<%ARRAY_TYPE%*>(Re' +'f);'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>' +#13#10'void __fastcall %ARRAY_NAME%::Clear()'#13#10'{'#13#10' // <%%% START' +' IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' for (int i = 0; i < Count; i++)'#13#10 +' delete fItems[i];'#13#10#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>' +#13#10' fItems.set_length(0);'#13#10' fCount = 0;'#13#10'}'#13#10#13#10'vo' +'id __fastcall %ARRAY_NAME%::Delete(const int Index)'#13#10'{'#13#10' if (I' +'ndex >= Count)'#13#10' {'#13#10' RaiseError(LoadResourceString(&_err_In' +'validIndex), ARRAYOFCONST((Index)));'#13#10' }'#13#10#13#10' // <%%% STAR' +'T IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' delete fItems[Index];'#13#10#13#10' ' +'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' if (Index < Count - 1)'#13 +#10' for (int i = Index; i < Count - 1 ; i++)'#13#10' fItems[i] = fI' +'tems[i + 1];'#13#10#13#10' fItems.set_length(Count - 1);'#13#10' fCount--' ,';'#13#10'}'#13#10#13#10'void __fastcall %ARRAY_NAME%::Resize(const int Elem' +'entCount)'#13#10'{'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' ' +' int i;'#13#10' for(i = fCount -1; i >= ElementCount; --i)'#13#10' dele' +'te fItems[i];'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' fItems' +'.set_length(ElementCount);'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>' +#13#10' for(i = fCount; i <= ElementCount -1; ++i)'#13#10' fItems[i] = n' +'ew %ARRAY_TYPE%();'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' f' +'Count = ElementCount;'#13#10'}'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COM' +'PLEX %%%>'#13#10'%ARRAY_TYPE%* __fastcall %ARRAY_NAME%::Add()'#13#10'{'#13 +#10' %ARRAY_TYPE%* result = new %ARRAY_TYPE%();'#13#10' Add(result);'#13#10 +' return result;'#13#10'}'#13#10#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%' +'%>'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'int __fastcall %A' +'RRAY_NAME%::Add(%ARRAY_TYPE%* Value)'#13#10'// <%%% END IF_ARRAY_TYPE_COMPL' +'EX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'int __fastcal' +'l %ARRAY_NAME%::Add(%ARRAY_TYPE% Value)'#13#10'// <%%% END IF_ARRAY_TYPE_SI' +'MPLE %%%>'#13#10'{'#13#10' int result = Count;'#13#10' if (fItems.Length ' +'== result)'#13#10' Grow();'#13#10#13#10' fItems[result] = Value;'#13#10 +' fCount++;'#13#10' return result;'#13#10'}'#13#10'// <%%% END ARRAYS %%%>' +#13#10'// <%%% START EXCEPTIONS %%%>'#13#10'// %EXCEPTION_NAME%'#13#10#13#10 +'%EXCEPTION_NAME%::%EXCEPTION_NAME%(AnsiString anExceptionMessage'#13#10' ' +' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' ' +' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' , %FIEL' +'D_TYPE% a%FIELD_NAME% '#13#10' // <%%% END IF_FIELD_TYPE_' +'SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %' +'%%>'#13#10' , %FIELD_TYPE%* a%FIELD_NAME% '#13#10' ' +' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' ' +' // <%%% END ANCESTOR_FIELDS %%%>'#13#10' // <%%% START ' +'FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_' +'SIMPLE %%%>'#13#10' , %FIELD_TYPE% a%FIELD_NAME% '#13#10 +' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' ' +' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' ' +', %FIELD_TYPE%* a%FIELD_NAME% '#13#10' // <%%% END IF_FIE' +'LD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELDS_NO_STRIP ' +'%%%>'#13#10' ): %EXCEPTION_ANCESTOR_NAME%(anExceptionMess' +'age'#13#10' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' ' +' , a%FIELD_NAME% '#13#10' // <%%% EN' +'D ANCESTOR_FIELDS %%%>'#13#10' )'#13#10'{'#13#10' // <' +'%%% START FIELDS_NO_STRIP %%%>'#13#10' f%FIELD_NAME% = a%FIELD_NAME%;'#13 +#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'}'#13#10#13#10'// <%%% START I' +'F_HAS_FIELDS %%%>'#13#10'void __fastcall %EXCEPTION_NAME%::ReadException(TO' +'bject* ASerializer)'#13#10'{'#13#10' if (dynamic_cast(ASer' +'ializer)->RecordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRUCT_' +'HAS_ANCESTOR %%%>'#13#10' inherited::ReadException(ASerializer);'#13#10 +' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS' +'_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' ' +' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIE' +'LD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13 +#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END ' +'IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%' +'%>'#13#10' dynamic_cast(ASerializer)->ReadBinary("%FIELD' +'_NAME%", &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) d' +'elete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%F' +'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_' +'FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast(ASerialize' +'r)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END I' +'F_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %' +'%%>'#13#10' dynamic_cast(ASerializer)->ReadDecimal("%FIE' +'LD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %' +'%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dynamic_c' ,'ast(ASerializer)->ReadDouble("%FIELD_NAME%", ftDouble, &l_%' +'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%' +'%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE' +' %%%>'#13#10' dynamic_cast(ASerializer)->ReadInt64("%FIE' +'LD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%' +'>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dynamic_ca' +'st(ASerializer)->ReadInteger("%FIELD_NAME%", otSLong, &l_%F' +'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadAnsiString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast(ASeria' +'lizer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%%' +' END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIAN' +'T_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadVaria' +'nt("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIAN' +'T_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' ' +' dynamic_cast(ASerializer)->ReadWideString("%FIELD_NAME%"' +', &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadXml("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY' +'_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadArray(' +'"%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10' if (%' +'FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END ' +'IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>' +#13#10' dynamic_cast(ASerializer)->ReadEnumerated("%FIELD' +'_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13#10' // <%%% END IF' +'_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13 +#10' dynamic_cast(ASerializer)->ReadStruct("%FIELD_NAME%"' +', __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME% !=' +' l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_STRUC' +'T_TYPE %%%>'#13#10' %FIELD_NAME% = l_%FIELD_NAME%;'#13#10' // <%%% EN' +'D FIELDS_NO_STRIP %%%>'#13#10' }'#13#10' else'#13#10' {'#13#10' // <%' +'%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' // <%%% START IF_FIELD_TYP' +'E_SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10 +' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD' +'_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;' +#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START I' +'F_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast(ASerialize' +'r)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME' +'% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_B' +'INARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10 +' dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%' +'", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' ' +'dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftCur' +'r, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START ' +'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_cast(ASeriali' +'zer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END ' +'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%' +'%>'#13#10' dynamic_cast(ASerializer)->ReadDouble("%FIELD' +'_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dyna' +'mic_cast(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_N' +'AME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast(ASeria' +'lizer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END ' +'IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%' ,'>'#13#10' dynamic_cast(ASerializer)->ReadInteger("%FIELD' +'_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' ' +' dynamic_cast(ASerializer)->ReadAnsiString("%FIELD_NAME%",' +' &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast<' +'TROSerializer*>(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME' +'%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%%' +' START IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast(A' +'Serializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%' +'%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTR' +'ING_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadWid' +'eString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_W' +'IDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10 +' dynamic_cast(ASerializer)->ReadXml("%FIELD_NAME%", &l_%' +'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <' +'%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast(' +'ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_' +'NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;' +#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_' +'FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->' +'ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_STRUCT_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->Re' +'adStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10 +' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // ' +'<%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' %FIELD_NAME% = l_%FIELD_NAME%' +';'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' }'#13#10'}' +#13#10#13#10'void __fastcall %EXCEPTION_NAME%::WriteException(TObject* ASeri' +'alizer)'#13#10'{'#13#10' if (dynamic_cast(ASerializer)->Re' +'cordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRUCT_HAS_ANCESTOR' +' %%%>'#13#10' inherited::WriteException(ASerializer);'#13#10' // <%%%' +' END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %' +'%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TY' +'PE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIM' +'PLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FI' +'ELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_T' +'YPE_COMPLEX %%%>'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10 +' dynamic_cast(ASerializer)->WriteBinary("%FIELD_NAME%", ' +'&l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%F' +'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' /' +'/ <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START ' +'IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast(ASerial' +'izer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% E' +'ND IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TY' +'PE %%%>'#13#10' dynamic_cast(ASerializer)->WriteDecimal(' +'"%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_T' +'YPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dyna' +'mic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftDouble' +', &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT6' +'4_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteInt6' +'4("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_T' +'YPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dyn' +'amic_cast(ASerializer)->WriteInteger("%FIELD_NAME%", otSLon' +'g, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' dynamic_cast<' +'TROSerializer*>(ASerializer)->WriteAnsiString("%FIELD_NAME%", &l_%FIELD_NAM' ,'E%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%' +'% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FI' +'ELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast(ASerializer)-' +'>WriteVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_F' +'IELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%' +'%>'#13#10' dynamic_cast(ASerializer)->WriteWideString("%' +'FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_' +'TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' dynami' +'c_cast(ASerializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAM' +'E%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START' +' IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast(ASerializ' +'er)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF' +'_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13 +#10' dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_N' +'AME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_F' +'IELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13 +#10' dynamic_cast(ASerializer)->WriteStruct("%FIELD_NAME%' +'", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10 +' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' }'#13#10' else'#13#10' {'#13 +#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' // <%%% START ' +'IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_N' +'AME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %' +'FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' /' +'/ <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' ' +'// <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOO' +'LEAN_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteE' +'numerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // <%' +'%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENC' +'Y_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteDoub' +'le("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL' +'D_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>' +#13#10' dynamic_cast(ASerializer)->WriteDateTime("%FIELD_' +'NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%' +'>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_ca' +'st(ASerializer)->WriteDecimal("%FIELD_NAME%", &l_%FIELD_NAM' +'E%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dynamic_cast(ASer' +'ializer)->WriteDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_G' +'UID_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteGu' +'id("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_T' +'YPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' dynam' +'ic_cast(ASerializer)->WriteInt64("%FIELD_NAME%", &l_%FIELD_' +'NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% ' +'START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dynamic_cast(AS' +'erializer)->WriteInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_ANSISTRING_TYPE %%%>'#13#10' dynamic_cast(ASerializer)' +'->WriteAnsiString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END ' +'IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_' +'TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteUTF8St' +'ring("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8' +'STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10 +' dynamic_cast(ASerializer)->WriteVariant("%FIELD_NAME%",' +' &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteWideString("%FIELD_NAME%", &l_%FIELD_NAME%)' +';'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_XML_TYPE %%%>'#13#10' dynamic_cast(ASerial' +'izer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF' ,'_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13 +#10' dynamic_cast(ASerializer)->WriteArray("%FIELD_NAME%"' +', &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info,' +' &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteStruct("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% END ENTIRE_HIER' +'ARCHY_FIELDS %%%>'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END IF_HAS_FIELD' +'S %%%>'#13#10'// <%%% END EXCEPTIONS %%%>'#13#10'// <%%% START STRUCTS %%%>' +#13#10'// %STRUCT_NAME%'#13#10#13#10'void __fastcall %STRUCT_NAME%::Assign(C' +'lasses::TPersistent* iSource)'#13#10'{'#13#10' inherited::Assign(iSource);' +' // inherited typedef'#13#10' // <%%% START IF_HAS_FIELDS %%%>'#13#10#13 +#10' %STRUCT_NAME%* lSource = dynamic_cast<%STRUCT_NAME%*>(iSource);'#13#10 +' if (lSource)'#13#10' {'#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10' ' +' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE' +'_SIMPLE %%%>'#13#10' %FIELD_NAME% = lSource->%FIELD_NAME%;'#13#10' //' +' <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_' +'COMPLEX %%%>'#13#10' // <%%% START IF_NOT_AUTO_CREATE_FIELDS %%%>'#13#10 +' if (f%FIELD_NAME% != NULL)'#13#10' {'#13#10' if (lSource->%FIEL' +'D_NAME% != NULL) '#13#10' {'#13#10' %FIELD_NAME%->Assign(lSourc' +'e->%FIELD_NAME%);'#13#10' }'#13#10' else'#13#10' {'#13#10' ' +' delete f%FIELD_NAME%;'#13#10' f%FIELD_NAME% = NULL;'#13#10' ' +' }'#13#10' }'#13#10' // <%%% END IF_NOT_AUTO_CREATE_FIELDS %%%>'#13 +#10' // <%%% START IF_AUTO_CREATE_FIELDS %%%>'#13#10' %FIELD_NAME%->As' +'sign(lSource->%FIELD_NAME%);'#13#10' // <%%% END IF_AUTO_CREATE_FIELDS %' +'%%>'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% EN' +'D FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_HAS_FIELDS %%%>'#13#10' }' +#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10'}'#13#10#13#10'// <%%% START ' +'FIELDS_NO_STRIP %%%>'#13#10'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10 +'%FIELD_TYPE%* __fastcall %STRUCT_NAME%::Get%FIELD_NAME%()'#13#10'{'#13#10' ' +' // <%%% START IF_AUTO_CREATE_FIELDS %%%>'#13#10' if (f%FIELD_NAME% == NUL' +'L) '#13#10' f%FIELD_NAME% = new %FIELD_TYPE%();'#13#10' // <%%% END IF_' +'AUTO_CREATE_FIELDS %%%>'#13#10' return f%FIELD_NAME%;'#13#10'}'#13#10#13#10 +'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10'// <%%% END FIELDS_NO_STRIP %' +'%%>'#13#10'// <%%% START IF_HAS_FIELDS %%%>'#13#10'void __fastcall %STRUCT_' +'NAME%::ReadComplex(TObject* ASerializer)'#13#10'{'#13#10' if (dynamic_cast' +'(ASerializer)->RecordStrictOrder)'#13#10' {'#13#10' // ' +'<%%% START IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' inherited::ReadException(' +'ASerializer);'#13#10' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' ' +' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_' +'SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' ' +' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_' +'TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;' +#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START I' +'F_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast(ASerialize' +'r)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME' +'% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_B' +'INARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10 +' dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%' +'", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' ' +'dynamic_cast(ASerializer)->ReadDouble("%FIELD_NAME%", ftCur' +'r, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START ' +'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_cast(ASeriali' +'zer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END ' +'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%' +'%>'#13#10' dynamic_cast(ASerializer)->ReadDouble("%FIELD' +'_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dyna' ,'mic_cast(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_N' +'AME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast(ASeria' +'lizer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END ' +'IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%' +'>'#13#10' dynamic_cast(ASerializer)->ReadInteger("%FIELD' +'_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' ' +' dynamic_cast(ASerializer)->ReadAnsiString("%FIELD_NAME%",' +' &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast<' +'TROSerializer*>(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME' +'%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%%' +' START IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast(A' +'Serializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%' +'%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTR' +'ING_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadWid' +'eString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_W' +'IDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10 +' dynamic_cast(ASerializer)->ReadXml("%FIELD_NAME%", &l_%' +'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <' +'%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast(' +'ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_' +'NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;' +#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_' +'FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->' +'ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_STRUCT_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->Re' +'adStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10 +' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // ' +'<%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' %FIELD_NAME% = l_%FIELD_NAME%' +';'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' }'#13#10' else'#13 +#10' {'#13#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' // ' +'<%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NAME%' +' = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' ' +' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIEL' +'D_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>' +#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%);' +#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' ' +' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_' +'BOOLEAN_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->Rea' +'dEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // ' +'<%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRE' +'NCY_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadDou' +'ble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIE' +'LD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>' +#13#10' dynamic_cast(ASerializer)->ReadDateTime("%FIELD_N' +'AME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_cast<' +'TROSerializer*>(ASerializer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_DOUBLE_TYPE %%%>'#13#10' dynamic_cast(ASerialize' +'r)->ReadDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%' +'%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYP' +'E %%%>'#13#10' dynamic_cast(ASerializer)->ReadGuid("%FIE' +'LD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE' +'LD_INTEGER_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->' +'ReadInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% E' +'ND IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_' ,'TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadAnsiStr' +'ing("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSIS' +'TRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13 +#10' dynamic_cast(ASerializer)->ReadUTF8String("%FIELD_NA' +'ME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%' +'>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_ca' +'st(ASerializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME' +'%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% ST' +'ART IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' dynamic_cast(A' +'Serializer)->ReadWideString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' //' +' <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_X' +'ML_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadXml(' +'"%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE ' +'%%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_c' +'ast(ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIEL' +'D_TYPE%), &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) ' +'delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, ' +'&l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' ' +' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->ReadStruct("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_' +'%FIELD_NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD' +'_NAME%;'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' %FIELD_' +'NAME% = l_%FIELD_NAME%;'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>' +#13#10' }'#13#10'}'#13#10#13#10'void __fastcall %STRUCT_NAME%::WriteComplex' +'(TObject* ASerializer)'#13#10'{'#13#10' if (dynamic_cast(A' +'Serializer)->RecordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRU' +'CT_HAS_ANCESTOR %%%>'#13#10' inherited::WriteException(ASerializer);'#13 +#10' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIE' +'LDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10 +' %FIELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_F' +'IELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>' +#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% E' +'ND IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_FIELD_BINARY_TYPE' +' %%%>'#13#10' dynamic_cast(ASerializer)->WriteBinary("%F' +'IELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE ' +'%%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic' +'_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Getbo' +'olInfo, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' dynamic_cast' +'(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIEL' +'D_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' ' +' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD' +'_DECIMAL_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->Wr' +'iteDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL' +'D_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13 +#10' dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%' +'", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE ' +'%%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dynamic_ca' +'st(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%)' +';'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast(ASerializer' +')->WriteInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_F' +'IELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13 +#10' dynamic_cast(ASerializer)->WriteInteger("%FIELD_NAME' +'%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE' +' %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' dyn' +'amic_cast(ASerializer)->WriteAnsiString("%FIELD_NAME%", &l_' +'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10 +' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%)' ,';'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast(ASe' +'rializer)->WriteVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%' +'% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRI' +'NG_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteWid' +'eString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_W' +'IDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10 +' dynamic_cast(ASerializer)->WriteXml("%FIELD_NAME%", &l_' +'%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast' +'(ASerializer)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <' +'%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYP' +'E %%%>'#13#10' dynamic_cast(ASerializer)->WriteEnumerate' +'d("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%);'#13#10' // <%' +'%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYP' +'E %%%>'#13#10' dynamic_cast(ASerializer)->WriteStruct("%' +'FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE' +' %%%>'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' }'#13#10' else' +#13#10' {'#13#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' ' +'// <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TYPE% l_%FIELD_NA' +'ME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10 +' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FI' +'ELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>' +#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteBinary("%FIELD_NAME%", &l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF' +'_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic_cast(ASerialize' +'r)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &l_%FIELD_NAME%);'#13#10 +' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIEL' +'D_CURRENCY_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->' +'WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%);'#13#10' // <%%% EN' +'D IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TY' +'PE %%%>'#13#10' dynamic_cast(ASerializer)->WriteDateTime' +'("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DATETIME' +'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10' d' +'ynamic_cast(ASerializer)->WriteDecimal("%FIELD_NAME%", &l_%' +'FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' ' +'// <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteDouble("%FIELD_NAME%", ftDouble, &l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF' +'_FIELD_GUID_TYPE %%%>'#13#10' dynamic_cast(ASerializer)-' +'>WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL' +'D_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' ' +' dynamic_cast(ASerializer)->WriteInt64("%FIELD_NAME%", &l' +'_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' ' +'// <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteInteger("%FIELD_NAME%", otSLong, &l_%FIELD_NAME%);' +#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% START I' +'F_FIELD_ANSISTRING_TYPE %%%>'#13#10' dynamic_cast(ASeria' +'lizer)->WriteAnsiString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%' +'% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8S' +'TRING_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->Write' +'UTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL' +'D_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>' +#13#10' dynamic_cast(ASerializer)->WriteVariant("%FIELD_N' +'AME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>' +#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' dynamic_ca' +'st(ASerializer)->WriteWideString("%FIELD_NAME%", &l_%FIELD_' +'NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // ' +'<%%% START IF_FIELD_XML_TYPE %%%>'#13#10' dynamic_cast(A' +'Serializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% ' +'END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%' +'>'#13#10' dynamic_cast(ASerializer)->WriteArray("%FIELD_' +'NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>' ,#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE' +'%Info, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13 +#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' dynamic_cast(ASerializer)->WriteStruct("%FIELD_NAME%", &l_%FIELD_NAME%);'#13 +#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% END ENTIRE_' +'HIERARCHY_FIELDS %%%>'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END IF_HAS_F' +'IELDS %%%>'#13#10'//%STRUCT_COLLECTION_NAME%'#13#10'%STRUCT_NAME%* __fastca' +'ll %STRUCT_COLLECTION_NAME%::Add()'#13#10'{'#13#10' return dynamic_cast<%S' +'TRUCT_NAME%*>(inherited::Add());'#13#10'}'#13#10#13#10'%STRUCT_NAME%* __fas' +'tcall %STRUCT_COLLECTION_NAME%::GetItems(const int Index)'#13#10'{'#13#10' ' +' return dynamic_cast<%STRUCT_NAME%*>(inherited::Items[Index]);'#13#10'}'#13 +#10#13#10'void __fastcall %STRUCT_COLLECTION_NAME%::SetItems(const int Index' +', %STRUCT_NAME%* Value)'#13#10'{'#13#10' dynamic_cast<%STRUCT_NAME%*>(inhe' +'rited::Items[Index])->Assign(Value);'#13#10'}'#13#10#13#10'// <%%% START AR' +'RAYS_IS_FOUND %%%>'#13#10'void %STRUCT_COLLECTION_NAME%::LoadFromArray(%ARR' +'AY_NAME%* anArray)'#13#10'{'#13#10' Clear();'#13#10' '#13#10' for(int i ' +'= 0; i <= anArray->Count-1; ++i)'#13#10' Add()->Assign((*anArray)[i]);' +#13#10'}'#13#10#13#10'void %STRUCT_COLLECTION_NAME%::SaveToArray(%ARRAY_NAME' +'%* anArray)'#13#10'{'#13#10' anArray->Clear();'#13#10' anArray->Resize(Co' +'unt);'#13#10' for(int i = 0; i <= Count-1; ++i)'#13#10' {'#13#10' anAr' +'ray->Items[i] = new %STRUCT_NAME%;'#13#10' anArray->Items[i]->Assign(Ite' +'ms[i]);'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END ARRAYS_IS_FOUND %%%>' +#13#10'// <%%% END STRUCTS %%%>'#13#10'// <%%% START SERVICES %%%>'#13#10'//' +' <%%% START FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START IF_RESULT_SIMPLE ' +'%%%>'#13#10'%OPERATION_RESULT% __fastcall T%SERVICE_NAME%_Proxy::%OPERATION' +'_NAME%('#13#10'// <%%% END IF_RESULT_SIMPLE %%%>'#13#10'// <%%% START IF_RE' +'SULT_COMPLEX %%%>'#13#10'%OPERATION_RESULT%* __fastcall T%SERVICE_NAME%_Pro' +'xy::%OPERATION_NAME%('#13#10'// <%%% END IF_RESULT_COMPLEX %%%>'#13#10' //' +' <%%% START PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13 +#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%' +','#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_' +'PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARA' +'M_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %' +'%%>'#13#10' // <%%% END PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // <%%% S' +'TART IF_RESULT_SIMPLE %%%>'#13#10' %OPERATION_RESULT% result;'#13#10' // ' +'<%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%' +'>'#13#10' %OPERATION_RESULT%* result;'#13#10' // <%%% END IF_RESULT_COMPL' +'EX %%%>'#13#10#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <' +'%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% = NULL;'#13#10' ' +' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_' +'STRIP %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' result = ' +'NULL;'#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' try'#13#10' {' +#13#10' __Message->InitializeRequestMessage(__TransportChannel, "%LIBRARY' +'_NAME%", __InterfaceName, "%OPERATION_NAME%");'#13#10' // <%%% START IN_' +'PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13 +#10' __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME' +'%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TY' +'PE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' ' +' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%' +', TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYP' +'E_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' __' +'Message->Finalize();'#13#10#13#10' __TransportChannel->Dispatch(__Messag' +'e);'#13#10#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' __Messa' +'ge->Read("Result", __Get%OPERATION_RESULT%Info, &result, TParamAttributes(%' +'OPERATION_RESULT_ATTRIBUTE%));'#13#10' // <%%% END IF_RESULT_SIMPLE %%%>' +#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' __Message->Read("' +'Result", __typeinfo(%OPERATION_RESULT%), &result, TParamAttributes(%OPERATI' +'ON_RESULT_ATTRIBUTE%));'#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10 +' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARA' +'M_TYPE_SIMPLE %%%>'#13#10' __Message->Read("%PARAM_NAME%", __Get%PARAM_T' +'YPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' /' +'/ <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE' +'_COMPLEX %%%>'#13#10' __Message->Read("%PARAM_NAME%", __typeinfo(%PARAM_' ,'TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // ' +'<%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_ST' +'RIP %%%>'#13#10' }'#13#10' __finally'#13#10' {'#13#10' __Message->Fre' +'eStream();'#13#10' }'#13#10' return result;'#13#10'}'#13#10#13#10'// <%%%' +' END FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START PROCEDURE_OPERATIONS %%%' +'>'#13#10'void __fastcall T%SERVICE_NAME%_Proxy::%OPERATION_NAME%('#13#10' ' +'// <%%% START PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>' +#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NA' +'ME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START ' +'IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %P' +'ARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLE' +'X %%%>'#13#10' // <%%% END PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // <%%' +'% START OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPL' +'EX %%%>'#13#10' %PARAM_NAME% = NULL;'#13#10' // <%%% END IF_PARAM_TYPE_CO' +'MPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' try'#13#10 +' {'#13#10' __Message->InitializeRequestMessage(__TransportChannel, "%LI' +'BRARY_NAME%", __InterfaceName, "%OPERATION_NAME%");'#13#10' // <%%% STAR' +'T IN_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%' +'>'#13#10' __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARA' +'M_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PA' +'RAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13 +#10' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), &%PARAM_N' +'AME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM' +'_TYPE_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' ' +' __Message->Finalize();'#13#10#13#10' __TransportChannel->Dispatch(__Me' +'ssage);'#13#10#13#10' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10' ' +'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Message->Read("%PARAM_' +'NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRI' +'BUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%' +'% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Read("%PARAM_NAME%' +'", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBU' +'TE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%%' +' END OUT_PARAMS_NO_STRIP %%%>'#13#10' }'#13#10' __finally'#13#10' {'#13 +#10' __Message->FreeStream();'#13#10' }'#13#10'}'#13#10#13#10'// <%%% EN' +'D PROCEDURE_OPERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13#10'// <%%%' +' START EVENT_SINKS %%%>'#13#10#13#10'namespace %NAMESPACE_NAME%'#13#10'{'#13 +#10'// T%EVENT_SINK_NAME%_Writer'#13#10'class DELPHICLASS T%EVENT_SINK_NAME%' +'_Writer;'#13#10'class T%EVENT_SINK_NAME%_Writer : public T%EVENT_SINK_WRITE' +'R_ANCESTOR_NAME%, I%EVENT_SINK_NAME%_Writer'#13#10'{'#13#10' typedef T%EVE' +'NT_SINK_WRITER_ANCESTOR_NAME% inherited;'#13#10'protected:'#13#10' // <%%%' +' START OPERATIONS %%%>'#13#10' void __fastcall %OPERATION_NAME%(const GUID' +' __Sender'#13#10#9#9#9#9#9'// <%%% START PARAMS %%%>'#13#10#9#9#9#9#9'// <%' +'%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9#9#9#9#9', %PARAM_FRONT_MODIFIER' +'% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%'#13#10#9#9#9#9#9'// <%%% ' +'END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9#9#9#9#9'// <%%% START IF_PARAM_TYPE_' +'COMPLEX %%%>'#13#10#9#9#9#9#9', %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM' +'_BACK_MODIFIER% %PARAM_NAME%'#13#10#9#9#9#9#9'// <%%% END IF_PARAM_TYPE_COM' +'PLEX %%%>'#13#10#9#9#9#9#9'// <%%% END PARAMS %%%>'#13#10#9#9#9#9#9');'#13 +#10' // <%%% END OPERATIONS %%%>'#13#10'public:'#13#10' virtual HRESULT __' +'stdcall QueryInterface(const GUID& IID, void **Obj) {'#13#10#9'return inher' +'ited::QueryInterface(IID, (void *)Obj); }'#13#10#13#10' virtual ULONG __st' +'dcall AddRef() {'#13#10#9'return inherited::_AddRef(); }'#13#10#13#10' vi' +'rtual ULONG __stdcall Release() {'#13#10#9'return inherited::_Release(); }' +#13#10'};'#13#10#13#10'} // namespace %NAMESPACE_NAME%'#13#10#13#10'// <%%%' +' START OPERATIONS %%%>'#13#10'void __fastcall T%EVENT_SINK_NAME%_Writer::%O' +'PERATION_NAME%(const GUID __Sender'#13#10' // <%%% START PARAMS %%%>'#13#10 +' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' , %PARAM_FRONT_MODIFIER%' +' %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%'#13#10' // <%%% END IF_PA' +'RAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13 +#10' , %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NA' +'ME%'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PA' +'RAMS %%%>'#13#10' )'#13#10'{'#13#10' Binary* __eventdata = new Binary("")' +';'#13#10' try'#13#10' {'#13#10' __Message->InitializeEventMessage(NULL' +', "%LIBRARY_NAME%", EID_%EVENT_SINK_NAME%, "%OPERATION_NAME%");'#13#10' ' ,'// <%%% START PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_S' +'IMPLE %%%>'#13#10' __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Inf' +'o, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% ' +'END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLE' +'X %%%>'#13#10' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%)' +', %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% EN' +'D IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13 +#10' __Message->Finalize();'#13#10#13#10' __Message->WriteToStream(__e' +'ventdata);'#13#10#13#10' Repository->StoreEventData(__Sender, __eventdat' +'a, TROEventWriter::ExcludeSender, TROEventWriter::ExcludeSessionList, TROEv' +'entWriter::SessionList->CommaText);'#13#10' }'#13#10' __finally'#13#10' ' +'{'#13#10' delete __eventdata;'#13#10' }'#13#10'}'#13#10#13#10'// <%%% E' +'ND OPERATIONS %%%>'#13#10'/* T%EVENT_SINK_NAME%_Invoker */'#13#10'namespace' +' %NAMESPACE_NAME%'#13#10'{'#13#10'class DELPHICLASS T%EVENT_SINK_NAME%_Invo' +'ker;'#13#10'class T%EVENT_SINK_NAME%_Invoker : public T%EVENT_SINK_INVOKER_' +'ANCESTOR_NAME%'#13#10'{'#13#10'__published:'#13#10' // <%%% START OPERATIO' +'NS %%%>'#13#10' void __fastcall Invoke_%OPERATION_NAME%(TROEventReceiver* ' +'__EventReceiver, IROMessage* __Message, IUnknown* __Target);'#13#10' // <%' +'%% END OPERATIONS %%%>'#13#10'};'#13#10'} // namespace %NAMESPACE_NAME%'#13 +#10#13#10'// <%%% START OPERATIONS %%%>'#13#10'void __fastcall T%EVENT_SINK_' +'NAME%_Invoker::Invoke_%OPERATION_NAME%(TROEventReceiver* __EventReceiver, I' +'ROMessage* __Message, IUnknown* __Target)'#13#10'{'#13#10' // <%%% START P' +'ARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10 +' %PARAM_TYPE% %PARAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>' +#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_TYPE%* %PA' +'RAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%%' +' END PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_HAS_COMPLEX_TYPE %%%>' +#13#10' TROObjectDisposer* __lObjectDisposer;'#13#10' // <%%% END IF_HAS_C' +'OMPLEX_TYPE %%%>'#13#10' _di_I%EVENT_SINK_NAME% __%EVENT_SINK_NAME%Instanc' +'e;'#13#10#13#10' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' // <%%% START' +' IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_NAME% = NULL;'#13#10' // <%%% ' +'END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13 +#10' try'#13#10' {'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10 +' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Message->Read("%PA' +'RAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_A' +'TTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' //' +' <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Read("%PARAM_N' +'AME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTR' +'IBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <' +'%%% END IN_PARAMS_NO_STRIP %%%>'#13#10#13#10' if (__Target->QueryInterfa' +'ce(I%EVENT_SINK_NAME%_IID, reinterpret_cast(&__%EVENT_SINK_NAME%Ins' +'tance)) == S_OK)'#13#10' {'#13#10' __%EVENT_SINK_NAME%Instance->%OP' +'ERATION_NAME%('#13#10' // <%%% START P' +'ARAMS %%%>'#13#10' %PARAM_NAME%,'#13#10 +' // <%%% END PARAMS %%%>'#13#10' ' +' );'#13#10' }'#13#10' else'#13#10' {' +#13#10' throw EIntfCastError::EIntfCastError("I%EVENT_SINK_NAME% not su' +'pported");'#13#10' }'#13#10#13#10' // <%%% START OUT_PARAMS_NO_STRIP ' +'%%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Messag' +'e->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttrib' +'utes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>' +#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Wr' +'ite("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttribute' +'s(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13 +#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' }'#13#10' __finally' +#13#10' {'#13#10' // <%%% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lO' +'bjectDisposer = new TROObjectDisposer(__EventReceiver->operator IInterface ' +'*());'#13#10' try'#13#10' {'#13#10' // <%%% START PARAMS_NO_STRI' +'P %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' _' +'_lObjectDisposer->Add(%PARAM_NAME%);'#13#10' // <%%% END IF_PARAM_TYPE' +'_COMPLEX %%%>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' }'#13 +#10' __finally'#13#10' {'#13#10' delete __lObjectDisposer;'#13#10 +' }'#13#10' // <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' }'#13#10'}' +#13#10#13#10'// <%%% END OPERATIONS %%%>'#13#10'// <%%% END EVENT_SINKS %%%>' ,#13#10'void __initialization_%UNIT_NAME%()'#13#10'{'#13#10' // <%%% START S' +'TRUCTS %%%>'#13#10' RegisterROClass(__classid(%STRUCT_NAME%));'#13#10' //' +' <%%% END STRUCTS %%%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' Register' +'ROClass(__classid(%ARRAY_NAME%));'#13#10' // <%%% END ARRAYS %%%>'#13#10' ' +' // <%%% START EXCEPTIONS %%%>'#13#10' RegisterExceptionClass(__classid(%E' +'XCEPTION_NAME%));'#13#10' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% STA' +'RT SERVICES %%%>'#13#10' RegisterProxyClass(I%SERVICE_NAME%_IID, __classid' +'(T%SERVICE_NAME%_Proxy));'#13#10' // <%%% END SERVICES %%%>'#13#10' // <%' +'%% START EVENT_SINKS %%%>'#13#10' RegisterEventWriterClass(I%EVENT_SINK_NA' +'ME%_IID, __classid(T%EVENT_SINK_NAME%_Writer));'#13#10' RegisterEventInvok' +'erClass(EID_%EVENT_SINK_NAME%, __classid(T%EVENT_SINK_NAME%_Invoker));'#13 +#10' // <%%% END EVENT_SINKS %%%> '#13#10'}'#13#10#13#10'void __finaliz' +'ation_%UNIT_NAME%()'#13#10'{'#13#10' // <%%% START STRUCTS %%%>'#13#10' U' +'nregisterROClass(__classid(%STRUCT_NAME%));'#13#10' // <%%% END STRUCTS %%' +'%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' UnregisterROClass(__classid(' +'%ARRAY_NAME%));'#13#10' // <%%% END ARRAYS %%%>'#13#10' // <%%% START EXC' +'EPTIONS %%%>'#13#10' UnregisterExceptionClass(__classid(%EXCEPTION_NAME%))' +';'#13#10' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% START SERVICES %%%>' +#13#10' UnregisterProxyClass(I%SERVICE_NAME%_IID);'#13#10' // <%%% END SER' +'VICES %%%>'#13#10' // <%%% START EVENT_SINKS %%%>'#13#10' UnregisterEvent' +'WriterClass(I%EVENT_SINK_NAME%_IID);'#13#10' UnregisterEventInvokerClass(E' +'ID_%EVENT_SINK_NAME%);'#13#10' // <%%% END EVENT_SINKS %%%> '#13#10'}' +#13#10#13#10 ]); LazarusResources.Add('TEMPLATE_INTF_H','RCDATA',[ '// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------' +'---------------------------------}'#13#10'{ This unit was automatically gen' +'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ' +'ated with this project. }'#13#10'{ ' +' }'#13#10 +'{ Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{----------------------------------------------------' +'-----------------------*/'#13#10#13#10'#ifndef %UNIT_NAME%H'#13#10'#define ' +'%UNIT_NAME%H'#13#10#13#10'#pragma delphiheader begin'#13#10'#pragma option ' +'push'#13#10'#pragma option -w- // All warnings off'#13#10'#pragm' +'a option -Vx // Zero-length empty class member functions'#13#10 +'#pragma pack(push,8)'#13#10#13#10'#include // Pascal u' +'nit'#13#10'#include // Pascal unit'#13#10'#include // Pascal unit'#13#10'#include // Pa' +'scal unit'#13#10'#include // Pascal unit'#13#10'#inclu' +'de // Pascal unit'#13#10'// <%%% START REQUIRED_UNITS ' +'%%%>'#13#10'#include <%REQUIRED_UNIT_NAME%.hpp>'#13#10'// <%%% END REQUIRED' +'_UNITS %%%>'#13#10#13#10'namespace %NAMESPACE_NAME%'#13#10'{'#13#10'// Libr' +'ary ID'#13#10'#define LibraryUID "%LIBRARY_UID%"'#13#10'#define TargetNames' +'pace "%NAMESPACE_NAME%"'#13#10#13#10'// Service Interface ID''s'#13#10'// <' +'%%% START SERVICES %%%>'#13#10'const GUID I%SERVICE_NAME%_IID = Sysutils::S' +'tringToGUID("%SERVICE_UID%");'#13#10'// <%%% END SERVICES %%%>'#13#10#13#10 +'// Event ID''s'#13#10'// <%%% START EVENT_SINKS %%%>'#13#10'#define EID_%EV' +'ENT_SINK_NAME% "%EVENT_SINK_NAME%"'#13#10'const GUID I%EVENT_SINK_NAME%_IID' +' = Sysutils::StringToGUID("%EVENT_SINK_UID%");'#13#10'// <%%% END EVENT_SIN' +'KS %%%>'#13#10#13#10'// Forward declarations'#13#10'// <%%% START SERVICES ' +'%%%>'#13#10'__interface I%SERVICE_NAME%; // = interface;'#13#10'// <%%% END' +' SERVICES %%%>'#13#10'// <%%% START ARRAYS %%%>'#13#10'class DELPHICLASS %A' +'RRAY_NAME%;'#13#10'// <%%% END ARRAYS %%%>'#13#10'// <%%% START STRUCTS %%%' +'>'#13#10'class DELPHICLASS %STRUCT_NAME%;'#13#10'// <%%% END STRUCTS %%%>' +#13#10'// <%%% START EXCEPTIONS %%%>'#13#10'class DELPHICLASS %EXCEPTION_NAM' +'E%;'#13#10'// <%%% END EXCEPTIONS %%%>'#13#10'// <%%% START EVENT_SINKS %%%' +'>'#13#10'__interface I%EVENT_SINK_NAME%; // = interface;'#13#10'// <%%% END' +' EVENT_SINKS %%%>'#13#10#13#10'/* Enumerateds */'#13#10'// <%%% START ENUMS' +' %%%>'#13#10'// <%%% START DOCUMENTATION %%%>'#13#10#13#10'/* Description:' +#13#10' %CONTENT% */'#13#10'// <%%% END DOCUMENTATION %%%>'#13#10'#pragma' +' option push -b-'#13#10'enum %ENUM_NAME% {'#13#10' // <%%% ' +'START VALUES %%%>'#13#10' %VALUE_NAME%, '#13 +#10' // <%%% END VALUES %%%> '#13#10' ' +' };'#13#10'#pragma option pop'#13#10' '#13#10'// <%%% ' +'END ENUMS %%%>'#13#10'/* Simple type holders */'#13#10'// Note: In order to' +' get type info for a simple type, we MUST have it from the'#13#10'// publis' +'hed property of a Delphi class. There is no other way as __typeinfo'#13#10 +'// requires the type to actually derive from TObject. Hence the reason why' +#13#10'// we create these dummy classes with a simple property of the correc' +'t type.'#13#10'// <%%% START SIMPLE_TYPES %%%>'#13#10'#ifndef __Get%TYPE_NA' +'ME%Info'#13#10'class DELPHICLASS %TYPE_NAME%TypeHolder;'#13#10'class %TYPE_' +'NAME%TypeHolder : public TPersistent'#13#10'{'#13#10'private:'#13#10' %TYP' +'E_NAME% FHolderField;'#13#10'__published:'#13#10' __property %TYPE_NAME% H' +'olderField = {read=FHolderField, write=FHolderField};'#13#10'};'#13#10'#def' +'ine __Get%TYPE_NAME%Info *::GetPropInfo(__typeinfo(%TYPE_NAME%TypeHolder), ' +'"HolderField")->PropType'#13#10'#endif // __Get%TYPE_NAME%Info'#13#10#13#10 +'// <%%% END SIMPLE_TYPES %%%>'#13#10'// <%%% START STRUCTS %%%>'#13#10'// %' +'STRUCT_NAME%'#13#10'class DELPHICLASS %STRUCT_NAME%;'#13#10'class %STRUCT_N' +'AME% : public Urotypes::TROComplexType'#13#10'{'#13#10' // Allow the use o' +'f "inherited" in our class as Delphi allows'#13#10' typedef Urotypes::TROC' +'omplexType inherited;'#13#10' '#13#10'private:'#13#10' // <%%% START FIEL' +'DS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' ' +'%FIELD_TYPE% f%FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>' +#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* f%F' +'IELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%' +'% END FIELDS_NO_STRIP %%%>'#13#10#13#10' // <%%% START FIELDS_NO_STRIP %%%' +'>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* ' ,'__fastcall Get%FIELD_NAME%();'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%' +'%>'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'public:'#13#10' virtua' +'l void __fastcall Assign(Classes::TPersistent* iSource);'#13#10' // <%%% S' +'TART IF_HAS_FIELDS %%%>'#13#10' virtual void __fastcall ReadComplex(TObjec' +'t* ASerializer);'#13#10' virtual void __fastcall WriteComplex(TObject* ASe' +'rializer);'#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10#13#10'__published' +':'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIE' +'LD_TYPE_SIMPLE %%%>'#13#10' __property %FIELD_TYPE% %FIELD_NAME% = {read=f' +'%FIELD_NAME%, write=f%FIELD_NAME%}; '#13#10' // <%%% END IF_FIELD_TYPE_SIM' +'PLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' __prope' +'rty %FIELD_TYPE%* %FIELD_NAME% = {read=Get%FIELD_NAME%, write=f%FIELD_NAME%' +'};'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIE' +'LDS_NO_STRIP %%%>'#13#10'public:'#13#10' // Pascal constructor/destructor' +#13#10' #pragma option push -w-inl'#13#10' /* TROComplexType.Create */ inl' +'ine __fastcall virtual %STRUCT_NAME%()/* overload */ : Urotypes::TROComplex' +'Type() {}'#13#10' #pragma option pop'#13#10' #pragma option push -w-inl' +#13#10' /* TROComplexType.Destroy */ inline __fastcall virtual ~%STRUCT_NAM' +'E%() {}'#13#10' #pragma option pop'#13#10'};'#13#10#13#10'// %STRUCT_COLLE' +'CTION_NAME%'#13#10'class DELPHICLASS %STRUCT_COLLECTION_NAME%;'#13#10'class' +' %STRUCT_COLLECTION_NAME% : public Uroclasses::TROCollection'#13#10'{'#13#10 +' typedef Uroclasses::TROCollection inherited;'#13#10#13#10'public:'#13#10 +' %STRUCT_NAME%* operator[](int Index) { return Items[Index]; }'#13#10#13#10 +'protected:'#13#10' __fastcall %STRUCT_COLLECTION_NAME%(TMetaClass* aItemCl' +'ass) : Uroclasses::TROCollection(aItemClass) {} /*overload*/'#13#10' %STRU' +'CT_NAME%* __fastcall GetItems(const int Index);'#13#10' void __fastcall Se' +'tItems(const int Index, %STRUCT_NAME%* Value);'#13#10#13#10'public:'#13#10 +' __fastcall %STRUCT_COLLECTION_NAME%() : Uroclasses::TROCollection(__class' +'id(%STRUCT_NAME%)) {} /*overload*/'#13#10' HIDESBASE %STRUCT_NAME%* __fast' +'call Add(); /*reintroduce*/'#13#10' // <%%% START ARRAYS_IS_FOUND %%%>'#13 +#10' void SaveToArray(%ARRAY_NAME%* anArray);'#13#10' void LoadFromArray(%' +'ARRAY_NAME%* anArray);'#13#10' // <%%% END ARRAYS_IS_FOUND %%%>'#13#10' _' +'_property %STRUCT_NAME%* Items[int Index] = {read=GetItems, write=SetItems ' +'/*default*/};'#13#10' #pragma option push -w-inl'#13#10' /* TCollection.D' +'estroy */ inline __fastcall virtual ~%STRUCT_COLLECTION_NAME%() {}'#13#10' ' +' #pragma option pop'#13#10'};'#13#10#13#10'typedef DynamicArray<%STRUCT_NAM' +'E%* > %UNIT_NAME%_%STRUCT_NAME%__4;'#13#10#13#10'// <%%% END STRUCTS %%%>' +#13#10'// <%%% START ARRAYS %%%>'#13#10'// %ARRAY_NAME%'#13#10#13#10'// <%%%' +' START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'typedef DynamicArray<%ARRAY_TYPE%> ' +'%ARRAY_NAME%_%ARRAY_TYPE%;'#13#10'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13 +#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'typedef DynamicArray<%AR' +'RAY_TYPE%* > %ARRAY_NAME%_%ARRAY_TYPE%;'#13#10'// <%%% END IF_ARRAY_TYPE_CO' +'MPLEX %%%>'#13#10#13#10'class DELPHICLASS %ARRAY_NAME%;'#13#10'class %ARRAY' +'_NAME% : public Urotypes::TROArray'#13#10'{'#13#10' typedef Urotypes::TROA' +'rray inherited;'#13#10#13#10'public:'#13#10' // <%%% START IF_ARRAY_TYPE_C' +'OMPLEX %%%>'#13#10' %ARRAY_TYPE%* operator[](const int Index) { return Ite' +'ms[Index]; }'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' // <%' +'%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' %ARRAY_TYPE% operator[](const i' +'nt Index) { return Items[Index]; }'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPL' +'E %%%>'#13#10#13#10'private:'#13#10' int fCount;'#13#10' %ARRAY_NAME%_%AR' +'RAY_TYPE% fItems;'#13#10#13#10'protected:'#13#10' virtual void __fastcall ' +'Grow();'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' %ARRAY_T' +'YPE%* __fastcall GetItems(const int Index);'#13#10' void __fastcall SetIte' +'ms(const int Index, %ARRAY_TYPE%* Value);'#13#10' // <%%% END IF_ARRAY_TYP' +'E_COMPLEX %%%>'#13#10' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' %A' +'RRAY_TYPE% __fastcall GetItems(const int Index);'#13#10' void __fastcall S' +'etItems(const int Index, %ARRAY_TYPE% Value);'#13#10' // <%%% END IF_ARRAY' +'_TYPE_SIMPLE %%%>'#13#10' virtual int __fastcall GetCount();'#13#10#13#10 +'public:'#13#10' /* virtual class method */ '#13#10' // <%%% START IF_ARRA' +'Y_TYPE_SIMPLE %%%>'#13#10' virtual Typinfo::PTypeInfo __fastcall GetItemTy' +'pe(const TMetaClass* vmt) { return __Get%ARRAY_TYPE%Info; }'#13#10' // <%%' +'% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_ARRAY_TYPE_COMPLE' +'X %%%>'#13#10' virtual Typinfo::PTypeInfo __fastcall GetItemType(const TMe' +'taClass* vmt) { return __typeinfo(%ARRAY_TYPE%); }'#13#10' // <%%% END IF_' +'ARRAY_TYPE_COMPLEX %%%>'#13#10#13#10' // <%%% START IF_ARRAY_TYPE_COMPLEX ' ,'%%%>'#13#10' /* virtual class method */ '#13#10' virtual TMetaClass* __fa' +'stcall GetItemClass(const TMetaClass* vmt) { return __classid(%ARRAY_TYPE%)' +'; }'#13#10' '#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' /* v' +'irtual class method */ '#13#10' virtual int __fastcall GetItemSize(const ' +'TMetaClass* vmt) { return sizeof(%ARRAY_TYPE%); }'#13#10' '#13#10' virt' +'ual void * __fastcall GetItemRef(const int Index);'#13#10' // <%%% START I' +'F_ARRAY_TYPE_COMPLEX %%%>'#13#10' virtual void __fastcall SetItemRef(const' +' int Index, void* Ref);'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13 +#10' virtual void __fastcall Clear();'#13#10' virtual void __fastcall Dele' +'te(const int Index);'#13#10' virtual void __fastcall Resize(const int Elem' +'entCount);'#13#10' virtual void __fastcall Assign(Classes::TPersistent* iS' +'ource);'#13#10' virtual void __fastcall ReadComplex(TObject* ASerializer);' +#13#10' virtual void __fastcall WriteComplex(TObject* ASerializer);'#13#10 +' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' %ARRAY_TYPE%* __fastcal' +'l Add()/* overload */;'#13#10' int __fastcall Add(%ARRAY_TYPE%* Value)/* o' +'verload */;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' // <%%' +'% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' int __fastcall Add(%ARRAY_TYPE% ' +'Value)/* overload */;'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10 +' __property int Count = {read=GetCount, nodefault};'#13#10' // <%%% START' +' IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' __property %ARRAY_TYPE%* Items[int Ind' +'ex] = {read=GetItems, write=SetItems/*, default*/};'#13#10' // <%%% END IF' +'_ARRAY_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_ARRAY_TYPE_SIMPLE %%%>' +#13#10' __property %ARRAY_TYPE% Items[int Index] = {read=GetItems, write=Se' +'tItems/*, default*/};'#13#10' // <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#13#10 +' __property %ARRAY_NAME%_%ARRAY_TYPE% InnerArray = {read=fItems, nodefault' +'};'#13#10'public:'#13#10' #pragma option push -w-inl'#13#10' /* TROArray.' +'Destroy */ inline __fastcall virtual ~%ARRAY_NAME%() {Clear();}'#13#10' #p' +'ragma option pop'#13#10#13#10'public:'#13#10' #pragma option push -w-inl' +#13#10' /* TROComplexType.Create */ inline __fastcall virtual %ARRAY_NAME%(' +')/* overload */ : Urotypes::TROArray() {}'#13#10' #pragma option pop'#13#10 +'};'#13#10#13#10'// <%%% END ARRAYS %%%>'#13#10'// <%%% START EXCEPTIONS %%%' +'>'#13#10'// <%%% START DOCUMENTATION %%%>'#13#10#13#10'/* Description:'#13 +#10' %CONTENT% */'#13#10'// <%%% END DOCUMENTATION %%%>'#13#10'class DELP' +'HICLASS %EXCEPTION_NAME%;'#13#10'class %EXCEPTION_NAME% : public %EXCEPTION' +'_ANCESTOR_NAME%'#13#10'{'#13#10' typedef %EXCEPTION_ANCESTOR_NAME% inherit' +'ed;'#13#10' '#13#10'private:'#13#10' // <%%% START FIELDS_NO_STRIP %%%>' +#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_TYPE% f%FIE' +'LD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% S' +'TART IF_FIELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* f%FIELD_NAME%;'#13#10 +' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELDS_NO_STR' +'IP %%%>'#13#10'public:'#13#10' %EXCEPTION_NAME%(AnsiString anExceptionMess' +'age'#13#10' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' ' +' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' ' +' , %FIELD_TYPE% a%FIELD_NAME% '#13#10' // <%%% END ' +'IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_' +'TYPE_COMPLEX %%%>'#13#10' , %FIELD_TYPE%* a%FIELD_NAME% ' +#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' ' +' // <%%% END ANCESTOR_FIELDS %%%>'#13#10' /' +'/ <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START I' +'F_FIELD_TYPE_SIMPLE %%%>'#13#10' , %FIELD_TYPE% a%FIELD_N' +'AME% '#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10 +' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' ' +' , %FIELD_TYPE%* a%FIELD_NAME% '#13#10' // <%%%' +' END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELD' +'S_NO_STRIP %%%>'#13#10' );'#13#10' // <%%% START IF_HAS_' +'FIELDS %%%>'#13#10' virtual void __fastcall ReadException(TObject* ASerial' +'izer);'#13#10' virtual void __fastcall WriteException(TObject* ASerializer' +');'#13#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10'__published:'#13#10' // ' +'<%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE' +' %%%>'#13#10' __property %FIELD_TYPE% %FIELD_NAME% = {read=f%FIELD_NAME%, ' +'write=f%FIELD_NAME%}; '#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10 +' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' __property %FIELD_TYPE%' +'* %FIELD_NAME% = {read=f%FIELD_NAME%, write=f%FIELD_NAME%}; '#13#10' // <%' +'%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% END FIELDS_NO_STRIP %%%>' ,#13#10'};'#13#10#13#10'// <%%% END EXCEPTIONS %%%>'#13#10'// <%%% START SERV' +'ICES %%%>'#13#10'__interface I%SERVICE_NAME%;'#13#10'typedef System::Delphi' +'Interface _di_I%SERVICE_NAME%;'#13#10'__interface INTERFAC' +'E_UUID("%SERVICE_UID%") I%SERVICE_NAME% : public %SERVICE_ANCESTOR_NAME%'#13 +#10'{'#13#10'public:'#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10 +' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' virtual %OPERATION_RESULT% _' +'_fastcall %OPERATION_NAME%('#13#10' // <%%% END IF_RESULT_SIMPLE %%%>'#13 +#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' virtual %OPERATION_RESUL' +'T%* __fastcall %OPERATION_NAME%('#13#10' // <%%% END IF_RESULT_COMPLEX %%%' +'>'#13#10' // <%%% START PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TY' +'PE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_M' +'ODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13 +#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MOD' +'IFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%%' +' END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS %%%>'#13#10' ' +' ) = 0; // pure virtual function - interface only'#13#10' // <%%% END FU' +'NCTION_OPERATIONS %%%>'#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13 +#10' virtual void __fastcall %OPERATION_NAME%('#13#10' // <%%% START PAR' +'AMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PAR' +'AM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10 +' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM' +'_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_B' +'ACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%' +'%>'#13#10' // <%%% END PARAMS %%%>'#13#10' ) = 0; // pure virtual fun' +'ction - interface only'#13#10' // <%%% END PROCEDURE_OPERATIONS %%%>'#13#10 +'};'#13#10#13#10'class DELPHICLASS T%SERVICE_NAME%_Proxy;'#13#10'class T%SER' +'VICE_NAME%_Proxy : public %SERVICE_PROXY_ANCESTOR_NAME%, I%SERVICE_NAME%'#13 +#10'{'#13#10' typedef %SERVICE_PROXY_ANCESTOR_NAME% inherited;'#13#10' '#13 +#10'protected:'#13#10' virtual AnsiString __fastcall __GetInterfaceName()' +#13#10' { return "%SERVICE_NAME%"; }'#13#10#13#10' // <%%% START FUNCTIO' +'N_OPERATIONS %%%>'#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' vir' +'tual %OPERATION_RESULT% __fastcall %OPERATION_NAME%('#13#10' // <%%% END I' +'F_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' ' +' virtual %OPERATION_RESULT%* __fastcall %OPERATION_NAME%('#13#10' // <%%% ' +'END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% START PARAMS %%%>'#13#10' ' +'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %' +'PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_P' +'ARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>' +#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM' +'_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%' +'% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END FUNCTION_OPERATIONS %%' +'%>'#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' virtual void _' +'_fastcall %OPERATION_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' ' +' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% ' +'%PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_' +'PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>' +#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM' +'_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%' +'% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END PROCEDURE_OPERATIONS %' +'%%>'#13#10' '#13#10'public:'#13#10' #pragma option push -w-inl'#13#10' /' +'* TROProxy.Create */ inline __fastcall virtual T%SERVICE_NAME%_Proxy(const ' +'Uroclientintf::_di_IROMessage aMessage, const Uroclientintf::_di_IROTranspo' +'rtChannel aTransportChannel)/* overload */ :'#13#10' %SERVICE_PROXY_ANCE' +'STOR_NAME%(aMessage, aTransportChannel) {}'#13#10' #pragma option pop'#13 +#10' '#13#10' virtual HRESULT __stdcall QueryInterface(const GUID& IID, vo' +'id **Obj) {'#13#10' return inherited::QueryInterface(IID, (void *)Obj); ' +'}'#13#10#13#10' virtual ULONG __stdcall AddRef() {'#13#10' return inher' +'ited::_AddRef(); }'#13#10#13#10' virtual ULONG __stdcall Release() {'#13 +#10' return inherited::_Release(); }'#13#10'};'#13#10#13#10'// Co%SERVICE' +'_NAME%'#13#10'class DELPHICLASS Co%SERVICE_NAME%;'#13#10'class Co%SERVICE_N' +'AME% : public System::TObject'#13#10'{'#13#10' typedef System::TObject inh' +'erited;'#13#10#13#10'public:'#13#10' static _di_I%SERVICE_NAME% __fastcall' +' Create(const Uroclientintf::_di_IROMessage aMessage,'#13#10' ' +' Uroclientintf::_di_IROTransportChannel aTransportChannel)'#13#10 ,' {'#13#10' _di_I%SERVICE_NAME% result;'#13#10' T%SERVICE_NAME%_Proxy' +'* proxy = new T%SERVICE_NAME%_Proxy(aMessage, aTransportChannel);'#13#10' ' +' if (proxy->QueryInterface(I%SERVICE_NAME%_IID, reinterpret_cast(&' +'result)) != S_OK)'#13#10' {'#13#10' delete proxy;'#13#10' thro' +'w EIntfCastError::EIntfCastError("I%SERVICE_NAME% not supported");'#13#10' ' +' }'#13#10' return result;'#13#10' };'#13#10#13#10' static _di_I%SERV' +'ICE_NAME% __fastcall Create( Uroclient::TROMessage* aMessage,'#13#10' ' +' Uroclient::TROTransportChannel *aTransportChannel)'#13#10 +' {'#13#10' _di_IROMessage __Message;'#13#10' _di_IROTransportChannel' +' __TransportChannel;'#13#10#13#10' if (aMessage->GetInterface(__Message)' +')'#13#10' {'#13#10' if (aTransportChannel->GetInterface(__Transport' +'Channel))'#13#10' return Create(__Message, __TransportChannel);'#13 +#10' else'#13#10' throw EIntfCastError::EIntfCastError("IROTrans' +'portChannel not supported");'#13#10' }'#13#10' else'#13#10' {'#13 +#10' throw EIntfCastError::EIntfCastError("IROMessage not supported");' +#13#10' }'#13#10' };'#13#10'};'#13#10#13#10'// <%%% END SERVICES %%%>'#13 +#10'// <%%% START EVENT_SINKS %%%>'#13#10'/* I%EVENT_SINK_NAME% */'#13#10'//' +' <%%% START DOCUMENTATION %%%>'#13#10#13#10'/* Description:'#13#10' %CON' +'TENT% */'#13#10'// <%%% END DOCUMENTATION %%%>'#13#10'__interface I%EVENT_S' +'INK_NAME%;'#13#10'typedef System::DelphiInterface _di_I' +'%EVENT_SINK_NAME%;'#13#10'__interface INTERFACE_UUID("%EVENT_SINK_UID%") I%' +'EVENT_SINK_NAME% : public %EVENT_SINK_ANCESTOR_NAME%'#13#10'{'#13#10'public' +':'#13#10' // <%%% START OPERATIONS %%%>'#13#10' virtual void __fastcall %' +'OPERATION_NAME%('#13#10' // <%%% START PARAMS %%%>'#13#10' // <%%% ST' +'ART IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE' +'% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_' +'SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' ' +'%PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13 +#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS' +' %%%>'#13#10' ) = 0; // pure virtual function - interface only'#13#10' ' +'// <%%% END OPERATIONS %%%>'#13#10'};'#13#10#13#10'/* I%EVENT_SINK_NAME%_Wr' +'iter */'#13#10'// <%%% START DOCUMENTATION %%%>'#13#10#13#10'/* Description' +':'#13#10' %CONTENT% */'#13#10'// <%%% END DOCUMENTATION %%%>'#13#10'__in' +'terface I%EVENT_SINK_NAME%_Writer;'#13#10'typedef System::DelphiInterface _di_I%EVENT_SINK_NAME%_Writer;'#13#10'__interface' +' INTERFACE_UUID("%EVENT_SINK_UID%") I%EVENT_SINK_NAME%_Writer : public I%EV' +'ENT_SINK_WRITER_ANCESTOR_NAME%'#13#10'{'#13#10'public:'#13#10' // <%%% STA' +'RT OPERATIONS %%%>'#13#10' virtual void __fastcall %OPERATION_NAME%(GUID _' +'_Sender '#13#10' // <%%% START PARAMS %%%>'#13#10' // <%%% START IF_P' +'ARAM_TYPE_SIMPLE %%%>'#13#10' , %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PAR' +'AM_BACK_MODIFIER% %PARAM_NAME%'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE ' +'%%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' , %PARA' +'M_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%'#13#10' ' +' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END PARAMS %%%' +'>'#13#10' ) = 0; // pure virtual function - interface only'#13#10' // <' +'%%% END OPERATIONS %%%>'#13#10'};'#13#10#13#10'// <%%% END EVENT_SINKS %%%>' +#13#10'} // namespace %NAMESPACE_NAME%'#13#10#13#10'using namespace %NAMESP' +'ACE_NAME%;'#13#10'#pragma pack(pop)'#13#10'#pragma option pop'#13#10#13#10 +'#pragma delphiheader end.'#13#10'#endif // %UNIT_NAME%H'#13#10#13#10 ]); LazarusResources.Add('TEMPLATE_INVK_CPP','RCDATA',[ '// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------' +'---------------------------------}'#13#10'{ This unit was automatically gen' +'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ' +'ated with this project. }'#13#10'{ ' +' }'#13#10 +'{ Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{----------------------------------------------------' +'-----------------------*/'#13#10#13#10'// RemObjects:'#13#10'#include '#13#10'#include '#13#10#13#10'// Interface of %LIBRA' +'RY_NAME%'#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10#13#10'// Implementa' +'tion of %LIBRARY_NAME%'#13#10'#include "%LIBRARY_NAME%_Invk.h"'#13#10#13#10 +'// <%%% START SERVICES %%%>'#13#10'// T%SERVICE_NAME%_Invoker'#13#10#13#10 +'// <%%% START FUNCTION_OPERATIONS %%%>'#13#10'void __fastcall T%SERVICE_NAM' +'E%_Invoker::Invoke_%OPERATION_NAME%('#13#10#9#9'const System::_di_IInterfac' +'e __Instance,'#13#10#9#9'const Uroclientintf::_di_IROMessage __Message,'#13 +#10#9#9'const Uroclientintf::_di_IROTransport __Transport,'#13#10#9#9'/* out' +' */ Uroserverintf::TROResponseOptions& __oResponseOptions)'#13#10'{'#13#10 +'// <%%% START IF_RESULT_SIMPLE %%%>'#13#10'// virtual %OPERATION_RESULT% __' +'fastcall %OPERATION_NAME%('#13#10'// <%%% END IF_RESULT_SIMPLE %%%>'#13#10 +'// <%%% START IF_RESULT_COMPLEX %%%>'#13#10'// virtual %OPERATION_RESULT%* ' +'__fastcall %OPERATION_NAME%('#13#10'// <%%% END IF_RESULT_COMPLEX %%%>'#13 +#10'// <%%% START PARAMS %%%>'#13#10'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>' +#13#10'// %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM' +'_NAME%,'#13#10'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10'// <%%% START I' +'F_PARAM_TYPE_COMPLEX %%%>'#13#10'// %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* ' +'%PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10'// <%%% END IF_PARAM_TYPE_COMPLE' +'X %%%>'#13#10'// <%%% END PARAMS %%%>'#13#10'// );'#13#10#13#10' // <%%%' +' START PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%' +'>'#13#10' %PARAM_TYPE% %PARAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_SI' +'MPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM' +'_TYPE%* %PARAM_NAME% = NULL;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%' +'>'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_RESUL' +'T_SIMPLE %%%>'#13#10' %OPERATION_RESULT% lResult;'#13#10' // <%%% END IF_' +'RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10' %' +'OPERATION_RESULT%* lResult = NULL;'#13#10' // <%%% END IF_RESULT_COMPLEX %' +'%%>'#13#10' try'#13#10' {'#13#10#9'_di_I%SERVICE_NAME% __%SERVICE_NAME%In' +'stance;'#13#10#9'if (__Instance->Supports(__%SERVICE_NAME%Instance))'#13#10 +#9'{'#13#10#9' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10#9' // <%%% STA' +'RT IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' __Message->Read("%PARAM_NAME%", __G' +'et%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13 +#10#9' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' // <%%% START IF_PA' +'RAM_TYPE_COMPLEX %%%>'#13#10#9' __Message->Read("%PARAM_NAME%", __typeinfo' +'(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10 +#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' // <%%% END IN_PARAMS' +'_NO_STRIP %%%>'#13#10#13#10#9' lResult = __%SERVICE_NAME%Instance->%OPERAT' +'ION_NAME%('#13#10#9#9#9#9#9#9#9#9#9#9#9'// <%%% START PARAMS %%%>'#13#10#9#9 +#9#9#9#9#9#9#9#9#9'%PARAM_NAME%,'#13#10#9#9#9#9#9#9#9#9#9#9#9'// <%%% END PA' +'RAMS %%%>'#13#10#9#9#9#9#9#9#9#9#9#9#9');'#13#10#13#10#9' __Message->Initi' +'alizeResponseMessage(__Transport, "%LIBRARY_NAME%", "%SERVICE_NAME%", "%OPE' +'RATION_NAME%Response");'#13#10#9' // <%%% START IF_RESULT_SIMPLE %%%>'#13 +#10#9' __Message->Write("Result", __Get%OPERATION_RESULT%Info, &lResult, TP' +'aramAttributes(%OPERATION_RESULT_ATTRIBUTE%));'#13#10#9' // <%%% END IF_RE' +'SULT_SIMPLE %%%>'#13#10#9' // <%%% START IF_RESULT_COMPLEX %%%>'#13#10#9' ' +' __Message->Write("Result", __typeinfo(%OPERATION_RESULT%), &lResult, TPara' +'mAttributes(%OPERATION_RESULT_ATTRIBUTE%));'#13#10#9' // <%%% END IF_RESUL' +'T_COMPLEX %%%>'#13#10#9' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13#10#9' ' +' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' __Message->Write("%PARA' +'M_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATT' +'RIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' // <' +'%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' __Message->Write("%PARAM_NA' +'ME%", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM_ATTR' +'IBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' // <' +'%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#9' __Message->Finalize();'#13#10#9 ,' __Message->UnsetAttributes(__Transport);'#13#10#9'}'#13#10#9'else'#13#10#9 +'{'#13#10#9' throw new EIntfCastError("Critical error in Invoker: Instance ' +'does not support I%SERVICE_NAME% interface");'#13#10#9'}'#13#10' }'#13#10 +' __finally'#13#10' {'#13#10#9'// <%%% START IF_HAS_COMPLEX_TYPE %%%>'#13 +#10#9'TROObjectDisposer* __lObjectDisposer = new TROObjectDisposer(__Instanc' +'e);'#13#10#9'try'#13#10#9'{'#13#10#9' // <%%% START PARAMS_NO_STRIP %%%>' +#13#10#9' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' __lObjectDisp' +'oser->Add(%PARAM_NAME%);'#13#10#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>' +#13#10#9' // <%%% END PARAMS_NO_STRIP %%%>'#13#10#9' // <%%% START IF_RESU' +'LT_COMPLEX %%%>'#13#10#9' __lObjectDisposer->Add(lResult);'#13#10#9' // <' +'%%% END IF_RESULT_COMPLEX %%%>'#13#10#9'}'#13#10#9'__finally'#13#10#9'{'#13 +#10#9' delete __lObjectDisposer;'#13#10#9'}'#13#10#9'// <%%% END IF_HAS_COM' +'PLEX_TYPE %%%>'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END FUNCTION_OPERAT' +'IONS %%%>'#13#10'// <%%% START PROCEDURE_OPERATIONS %%%>'#13#10'void __fast' +'call T%SERVICE_NAME%_Invoker::Invoke_%OPERATION_NAME%('#13#10#9#9'const Sys' +'tem::_di_IInterface __Instance,'#13#10#9#9'const Uroclientintf::_di_IROMess' +'age __Message,'#13#10#9#9'const Uroclientintf::_di_IROTransport __Transport' +','#13#10#9#9'/* out */ Uroserverintf::TROResponseOptions& __oResponseOption' +'s)'#13#10'{'#13#10'// virtual void __fastcall %OPERATION_NAME%('#13#10'// <' +'%%% START PARAMS %%%>'#13#10'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10 +'// %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%' +','#13#10'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10'// <%%% START IF_PARA' +'M_TYPE_COMPLEX %%%>'#13#10'// %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM' +'_BACK_MODIFIER% %PARAM_NAME%,'#13#10'// <%%% END IF_PARAM_TYPE_COMPLEX %%%>' +#13#10'// <%%% END PARAMS %%%>'#13#10'// );'#13#10#13#10' // <%%% START P' +'ARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10 +' %PARAM_TYPE% %PARAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>' +#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_TYPE%* %PA' +'RAM_NAME%;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%%' +' END PARAMS_NO_STRIP %%%>'#13#10' try'#13#10' {'#13#10#9'_di_I%SERVICE_NA' +'ME% __%SERVICE_NAME%Instance;'#13#10#9'if (__Instance->Supports(__%SERVICE_' +'NAME%Instance))'#13#10#9'{'#13#10#9' // <%%% START IN_PARAMS_NO_STRIP %%%>' +#13#10#9' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' __Message->Rea' +'d("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%P' +'ARAM_ATTRIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9 +' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' __Message->Read("%PAR' +'AM_NAME%", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARAM' +'_ATTRIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' ' +' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10#13#10#9' __%SERVICE_NAME%Insta' +'nce->%OPERATION_NAME%('#13#10#9#9#9#9#9#9#9#9' // <%%% START PARAMS %%%>' +#13#10#9#9#9#9#9#9#9#9' %PARAM_NAME%,'#13#10#9#9#9#9#9#9#9#9' // <%%% END ' +'PARAMS %%%>'#13#10#9#9#9#9#9#9#9#9' );'#13#10#13#10#9' __Message->Initial' +'izeResponseMessage(__Transport, "%LIBRARY_NAME%", "%SERVICE_NAME%", "%OPERA' +'TION_NAME%Response");'#13#10#9' // <%%% START OUT_PARAMS_NO_STRIP %%%>'#13 +#10#9' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9' __Message->Write(' +'"%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PAR' +'AM_ATTRIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10#9 +' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9' __Message->Write("%PA' +'RAM_NAME%", __typeinfo(%PARAM_TYPE%), &%PARAM_NAME%, TParamAttributes(%PARA' +'M_ATTRIBUTE%));'#13#10#9' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10#9 +' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#9' __Message->Finalize();'#13 +#10#9' __Message->UnsetAttributes(__Transport);'#13#10#9' // <%%% START IF' +'_NO_OUT_PARAMS %%%>'#13#10#13#10#9' __oResponseOptions = TROResponseOption' +'s() << roNoResponse;'#13#10#9' // <%%% END IF_NO_OUT_PARAMS %%%>'#13#10#9 +'}'#13#10#9'else'#13#10#9'{'#13#10#9' throw new EIntfCastError("Critical er' +'ror in Invoker: Instance does not support %SERVICE_NAME% interface");'#13#10 +#9'}'#13#10' }'#13#10' __finally'#13#10' {'#13#10#9'// <%%% START IF_HAS_' +'COMPLEX_TYPE %%%>'#13#10#9'TROObjectDisposer* __lObjectDisposer = new TROOb' +'jectDisposer(__Instance);'#13#10#9'try'#13#10#9'{'#13#10#9' // <%%% START ' +'PARAMS_NO_STRIP %%%>'#13#10#9' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13 +#10#9' __lObjectDisposer->Add(%PARAM_NAME%);'#13#10#9' // <%%% END IF_PARA' +'M_TYPE_COMPLEX %%%>'#13#10#9' // <%%% END PARAMS_NO_STRIP %%%>'#13#10#9'}' +#13#10#9'__finally'#13#10#9'{'#13#10#9' delete __lObjectDisposer;'#13#10#9 +'}'#13#10#9'// <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' }'#13#10'}'#13#10 ,'// <%%% END PROCEDURE_OPERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13 +#10#13#10 ]); LazarusResources.Add('TEMPLATE_INVK_H','RCDATA',[ '// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------' +'---------------------------------}'#13#10'{ This unit was automatically gen' +'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ' +'ated with this project. }'#13#10'{ ' +' }'#13#10 +'{ Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{----------------------------------------------------' +'-----------------------*/'#13#10#13#10'#ifndef %UNIT_NAME%H'#13#10'#define ' +'%UNIT_NAME%H'#13#10#13#10'#pragma delphiheader begin'#13#10'#pragma option ' +'push'#13#10'#pragma option -w- // All warnings off'#13#10'#pragma opti' +'on -Vx // Zero-length empty class member functions'#13#10'#pragma pack' +'(push,8)'#13#10#13#10'#include '#9#9#9' // Pascal unit'#13#10 +'#include '#9' // Pascal unit'#13#10'// <%%% START REQUIRE' +'D_UNITS %%%>'#13#10'#include <%REQUIRED_UNIT_NAME%.hpp>'#13#10'// <%%% END ' +'REQUIRED_UNITS %%%>'#13#10#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10#13 +#10'namespace %NAMESPACE_NAME%'#13#10'{'#13#10'//-- type declarations ------' +'-------------------------------------------------'#13#10'typedef Classes::T' +'SeekOrigin TSeekOrigin; // Fake declaration '#13#10#13#10'// <%%% START S' +'ERVICES %%%>'#13#10'class DELPHICLASS T%SERVICE_NAME%_Invoker : public TROI' +'nvoker'#13#10'{'#13#10' typedef Uroserver::TROInvoker inherited;'#13#10#13 +#10' __published:'#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10 +' void __fastcall Invoke_%OPERATION_NAME%('#13#10' const System::_' +'di_IInterface __Instance,'#13#10' const Uroclientintf::_di_IROMessag' +'e __Message,'#13#10' const Uroclientintf::_di_IROTransport __Transpo' +'rt,'#13#10' /* out */ Uroserverintf::TROResponseOptions& __oResponse' +'Options);'#13#10' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10' // <%%' +'% START PROCEDURE_OPERATIONS %%%>'#13#10' void __fastcall Invoke_%OPERAT' +'ION_NAME%('#13#10' const System::_di_IInterface __Instance,'#13#10' ' +' const Uroclientintf::_di_IROMessage __Message,'#13#10' const ' +'Uroclientintf::_di_IROTransport __Transport,'#13#10' /* out */ Urose' +'rverintf::TROResponseOptions& __oResponseOptions);'#13#10' // <%%% END P' +'ROCEDURE_OPERATIONS %%%>'#13#10' public:'#13#10#9'#pragma option push -w-i' +'nl'#13#10#9'/* TROInvoker.Create */ inline __fastcall virtual T%SERVICE_NAM' +'E%_Invoker(): Uroserver::TROInvoker() {}'#13#10#9'#pragma option pop'#13#10 +#9'#pragma option push -w-inl'#13#10#9'/* TROInvoker.Destroy */ inline __fas' +'tcall virtual ~T%SERVICE_NAME%_Invoker() {}'#13#10#9'#pragma option pop'#13 +#10#13#10' protected:'#13#10' private:'#13#10'};'#13#10'// <%%% END SERVIC' +'ES %%%>'#13#10#13#10'}'#9'// namespace %NAMESPACE_NAME%'#13#10'using namesp' +'ace %NAMESPACE_NAME%;'#13#10'#pragma pack(pop)'#13#10'#pragma option pop'#13 +#10'#pragma delphiheader end.'#13#10'//-- end H ----------------------------' +'------------------------------------'#13#10'#endif'#9'// %UNIT_NAME%H'#13#10 +#13#10 ]); LazarusResources.Add('TEMPLATE_IMPL_CPP','RCDATA',[ '// <%%% START SERVICES %%%>'#13#10'// unit %UNIT_NAME%'#13#10'//'#13#10'/*--' +'-------------------------------------------------------------------------}' +#13#10'{ This unit was automatically generated by the RemObjects SDK after r' +'eading }'#13#10'{ the RODL file associated with this project . ' +' }'#13#10'{ ' +' }'#13#10'{ Modify this unit to provide implem' +'entation for your service. */'#13#10#13#10'// Interface of %LI' +'BRARY_NAME%'#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10#13#10'// Our hea' +'der file'#13#10'#include "%UNIT_NAME%.h"'#13#10#13#10'// Invoker interface' +#13#10'#include "%LIBRARY_NAME%_Invk.h"'#13#10#13#10'// <%%% START IF_DATA_M' +'ODULE %%%>'#13#10'#pragma link "Uroremotedatamodule"'#13#10'// <%%% END IF_' +'DATA_MODULE %%%>'#13#10'#pragma link "Uroserver"'#13#10#13#10'// <%%% START' +' IF_DATA_MODULE %%%>'#13#10'//---------------------------------------------' +'------------------------------'#13#10'#pragma package(smart_init)'#13#10'#p' +'ragma resource "*.dfm" '#13#10'T%SERVICE_NAME% *%SERVICE_NAME%;'#13#10'/' +'/--------------------------------------------------------------------------' +'-'#13#10'// <%%% END IF_DATA_MODULE %%%>'#13#10'void __fastcall Create_%SER' +'VICE_NAME%(/*out*/ _di_IInterface& anInstance)'#13#10'{'#13#10' anInstance' +' = new T%SERVICE_NAME%('#13#10' // <%%% START IF_DATA_MODULE %%%>'#13#10 +' NULL'#13#10' // <%%% END IF_DATA_MODULE %%%>'#13#10' )->operator ' +'IROObjectRetainer *();'#13#10'}'#13#10#13#10'// %SERVICE_NAME%'#13#10'// <%' +'%% START IF_DATA_MODULE %%%>'#13#10#13#10'__fastcall T%SERVICE_NAME%::T%SER' +'VICE_NAME%(Classes::TComponent* aOwner)'#13#10' : TRORemoteDataModule(aO' +'wner)'#13#10'{'#13#10'}'#13#10'// <%%% END IF_DATA_MODULE %%%>'#13#10'// <%' +'%% START FUNCTION_OPERATIONS %%%>'#13#10'// <%%% START IF_RESULT_SIMPLE %%%' +'>'#13#10'%OPERATION_RESULT% __fastcall T%SERVICE_NAME%::%OPERATION_NAME%(' +#13#10'// <%%% END IF_RESULT_SIMPLE %%%>'#13#10'// <%%% START IF_RESULT_COMP' +'LEX %%%>'#13#10'%OPERATION_RESULT%* __fastcall T%SERVICE_NAME%::%OPERATION_' +'NAME%('#13#10'// <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% START PAR' +'AMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_F' +'RONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' //' +' <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_CO' +'MPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFI' +'ER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' ' +'// <%%% END PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // Insert your impleme' +'ntation code for %SERVICE_NAME%::%OPERATION_NAME% here'#13#10'}'#13#10'// <' +'%%% END FUNCTION_OPERATIONS %%%>'#13#10#13#10'// <%%% START PROCEDURE_OPERA' +'TIONS %%%>'#13#10'void __fastcall T%SERVICE_NAME%::%OPERATION_NAME%('#13#10 +' // <%%% START PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%' +'>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM' +'_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% STA' +'RT IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%*' +' %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COM' +'PLEX %%%>'#13#10' // <%%% END PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // ' +'Insert your implementation code for %SERVICE_NAME%::%OPERATION_NAME% here' +#13#10'}'#13#10'// <%%% END PROCEDURE_OPERATIONS %%%>'#13#10#13#10'void __in' +'itialization_%UNIT_NAME%();'#13#10#13#10'#pragma startup __initialization_%' +'UNIT_NAME%'#13#10#13#10'void __initialization_%UNIT_NAME%()'#13#10'{'#13#10 +' new TROClassFactory("%SERVICE_NAME%", Create_%SERVICE_NAME%, __classid(T%' +'SERVICE_NAME%_Invoker));'#13#10'}'#13#10#13#10 ]); LazarusResources.Add('TEMPLATE_IMPL_H','RCDATA',[ '// <%%% START SERVICES %%%>'#13#10'// unit %UNIT_NAME%'#13#10'//'#13#10'/*--' +'-------------------------------------------------------------------------}' +#13#10'{ This unit was automatically generated by the RemObjects SDK after r' +'eading }'#13#10'{ the RODL file associated with this project . ' +' }'#13#10'{ ' +' }'#13#10'{ Do not modify this unit manually, ' +'or your changes will be lost when this }'#13#10'{ unit is regenerated the' +' next time you compile your project. }'#13#10'{ ' +' }'#13#10'{ M' +'odify the %UNIT_NAME%.cpp file to change the implementation details of }' +#13#10'{ this service. ' +' }'#13#10'{---------------------------------------------------------' +'------------------*/'#13#10#13#10'#ifndef %UNIT_NAME%H'#13#10'#define %UNIT' +'_NAME%H'#13#10#13#10'#include '#9' // Pascal unit'#13 +#10'// <%%% START IF_DATA_MODULE %%%>'#13#10'#include '#13#10'#' +'include '#13#10'#include '#13#10'#include '#13#10'#include // Pascal unit'#13#10'// ' +'<%%% END IF_DATA_MODULE %%%>'#13#10'#include // Pasc' +'al unit'#13#10'#include "%LIBRARY_NAME%_intf.h"'#13#10#13#10'// T%SERVICE_N' +'AME%'#13#10'class T%SERVICE_NAME% : public %SERVICE_ANCESTOR_NAME%, I%SERVI' +'CE_NAME% // implements I%SERVICE_NAME%'#13#10'{'#13#10' typedef %SERVICE_' +'ANCESTOR_NAME% inherited;'#13#10#13#10'// <%%% START IF_DATA_MODULE %%%>'#13 +#10'__published: // this line is required or the IDE will consider the dec' +'laration of the datamodule is incorrect.'#9#13#10'// <%%% END IF_DATA_MODUL' +'E %%%>'#13#10'protected:'#13#10' // I%SERVICE_NAME% methods'#13#10' // <%' +'%% START FUNCTION_OPERATIONS %%%>'#13#10' // <%%% START IF_RESULT_SIMPLE %' +'%%>'#13#10' virtual %OPERATION_RESULT% __fastcall %OPERATION_NAME%('#13#10 +' // <%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLE' +'X %%%>'#13#10' virtual %OPERATION_RESULT%* __fastcall %OPERATION_NAME%('#13 +#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% START PARAMS %%%' +'>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRON' +'T_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // ' +'<%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_C' +'OMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MOD' +'IFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13 +#10' // <%%% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END FUNCTION_' +'OPERATIONS %%%>'#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13#10' v' +'irtual void __fastcall %OPERATION_NAME%('#13#10' // <%%% START PARAMS %%' +'%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRO' +'NT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' //' +' <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_' +'COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MO' +'DIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13 +#10' // <%%% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END PROCEDURE' +'_OPERATIONS %%%>'#13#10#13#10'public:'#13#10' // <%%% START IF_DATA_MODULE' +' %%%>'#13#10' __fastcall T%SERVICE_NAME%(Classes::TComponent* aOwner);'#13 +#10#13#10' // <%%% END IF_DATA_MODULE %%%>'#13#10' virtual HRESULT __stdca' +'ll QueryInterface(const GUID& IID, void **Obj) {'#13#10' return inherite' +'d::QueryInterface(IID, (void *)Obj); }'#13#10#13#10' virtual ULONG __stdca' +'ll AddRef() {'#13#10' return inherited::_AddRef(); }'#13#10#13#10' vir' +'tual ULONG __stdcall Release() {'#13#10' return inherited::_Release(); }' +#13#10'};'#13#10'// <%%% START IF_DATA_MODULE %%%>'#13#10'//----------------' +'-----------------------------------------------------------'#13#10'extern P' +'ACKAGE T%SERVICE_NAME% *%SERVICE_NAME%;'#13#10'//--------------------------' +'-------------------------------------------------'#13#10'// <%%% END IF_DAT' +'A_MODULE %%%>'#13#10#13#10'#endif'#9'// %UNIT_NAME%H'#13#10#13#10 ]); LazarusResources.Add('TEMPLATE_ASYNC_CPP','RCDATA',[ '// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------' +'---------------------------------}'#13#10'{ This unit was automatically gen' +'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ' +'ated with this project. }'#13#10'{ ' +' }'#13#10 +'{ Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{----------------------------------------------------' +'-----------------------*/'#13#10#13#10'// Implementation of %UNIT_NAME%'#13 +#10'#include "%UNIT_NAME%.h"'#13#10#13#10'// <%%% START SERVICES %%%>'#13#10 +'// <%%% START FUNCTION_OPERATIONS %%%>'#13#10'void __fastcall T%SERVICE_NAM' +'E%_AsyncProxy::Invoke_%OPERATION_NAME%('#13#10' // <%%% START IN' +'_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13 +#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %P' +'ARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10 +' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PA' +'RAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10 +' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%' +'%% END IN_PARAMS %%%>'#13#10' )'#13#10'{'#13#10' __AssertProxyN' +'otBusy("%OPERATION_NAME%");'#13#10#13#10' __Message->InitializeRequestMess' +'age(__TransportChannel, "%LIBRARY_NAME%", __InterfaceName, "%OPERATION_NAME' +'%");'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START ' +'IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Message->Write("%PARAM_NAME%", __Get%P' +'ARAM_TYPE%Info, &%PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10 +' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYP' +'E_COMPLEX %%%>'#13#10' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_' +'TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%' +'% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%' +'%>'#13#10#13#10' __DispatchAsyncRequest("%OPERATION_NAME%", __Message);'#13 +#10'}'#13#10#13#10'// <%%% START IF_RESULT_SIMPLE %%%>'#13#10'%OPERATION_RES' +'ULT% __fastcall T%SERVICE_NAME%_AsyncProxy::Retrieve_%OPERATION_NAME%('#13 +#10'// <%%% END IF_RESULT_SIMPLE %%%>'#13#10'// <%%% START IF_RESULT_COMPLEX' +' %%%>'#13#10'%OPERATION_RESULT%* __fastcall T%SERVICE_NAME%_AsyncProxy::Ret' +'rieve_%OPERATION_NAME%('#13#10'// <%%% END IF_RESULT_COMPLEX %%%>'#13#10' ' +' // <%%% START OUT_PARAMS %%%>'#13#10' // <%%% START IF' +'_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TY' +'PE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_P' +'ARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLE' +'X %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_' +'MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLE' +'X %%%>'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' )' +#13#10'{'#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' %OPERATION_RE' +'SULT% result;'#13#10' // <%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% S' +'TART IF_RESULT_COMPLEX %%%>'#13#10' %OPERATION_RESULT%* result;'#13#10' /' +'/ <%%% END IF_RESULT_COMPLEX %%%>'#13#10#13#10' // <%%% START OUT_PARAMS_N' +'O_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PA' +'RAM_NAME% = NULL;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' ' +'// <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_RESULT_COMPL' +'EX %%%>'#13#10' result = NULL;'#13#10' // <%%% END IF_RESULT_COMPLEX %%%>' +#13#10#13#10' TStream* __response = __RetrieveAsyncResponse("%OPERATION_NAM' +'E%");'#13#10' __Message->ReadFromStream(__response);'#13#10#13#10' // <%%' +'% START IF_RESULT_SIMPLE %%%>'#13#10' __Message->Read("Result", __Get%OPER' +'ATION_RESULT%Info, &result, TParamAttributes(%OPERATION_RESULT_ATTRIBUTE%))' +';'#13#10' // <%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESU' +'LT_COMPLEX %%%>'#13#10' __Message->Read("Result", __typeinfo(%OPERATION_RE' +'SULT%), result, TParamAttributes(%OPERATION_RESULT_ATTRIBUTE%));'#13#10' /' +'/ <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% START OUT_PARAMS_NO_STRI' +'P %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Message-' +'>Read("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttribute' +'s(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10 +' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Read("%PARAM' +'_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PARAM_AT' +'TRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%' +'% END OUT_PARAMS_NO_STRIP %%%>'#13#10#13#10' delete __response;'#13#10' r' ,'eturn result;'#13#10'}'#13#10#13#10'// <%%% END FUNCTION_OPERATIONS %%%>'#13 +#10'// <%%% START PROCEDURE_OPERATIONS %%%>'#13#10'void _fastcall T%SERVICE_' +'NAME%_AsyncProxy::Invoke_%OPERATION_NAME%('#13#10' // <%%% START' +' IN_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>' +#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER%' +' %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13 +#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' ' +'%PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13 +#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' //' +' <%%% END IN_PARAMS %%%>'#13#10' )'#13#10'{'#13#10' __AssertPro' +'xyNotBusy("%OPERATION_NAME%");'#13#10' TStream* __request = new TMemoryStr' +'eam();'#13#10#13#10' __Message->InitializeRequestMessage(__TransportChanne' +'l, "%LIBRARY_NAME%", __InterfaceName, "%OPERATION_NAME%");'#13#10' // <%%%' +' START IN_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE ' +'%%%>'#13#10' __Message->Write("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PAR' +'AM_NAME%, TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PAR' +'AM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10 +' __Message->Write("%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, ' +'TParamAttributes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_CO' +'MPLEX %%%>'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13#10' __Message-' +'>Finalize();'#13#10#13#10' __Message->WriteToStream(__request);'#13#10' _' +'_DispatchAsyncRequest("%OPERATION_NAME%", __request, False);'#13#10'}'#13#10 +#13#10'// <%%% START IF_OUT_PARAMS %%%>'#13#10'void _fastcall T%SERVICE_NAME' +'%_AsyncProxy::Retrieve_%OPERATION_NAME%('#13#10' // <%%% START O' +'UT_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>' +#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER%' +' %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13 +#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' ' +'%PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13 +#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' //' +' <%%% END OUT_PARAMS %%%>'#13#10' )'#13#10'{'#13#10' // <%%% ST' +'ART OUT_PARAMS_NO_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %' +'%%>'#13#10' %PARAM_NAME% = NULL;'#13#10' // <%%% END IF_PARAM_TYPE_COMPLE' +'X %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#13#10' TStream' +'* __response = __RetrieveAsyncResponse("%OPERATION_NAME%");'#13#10' __Mess' +'age->ReadFromStream(__response);'#13#10#13#10' // <%%% START OUT_PARAMS_NO' +'_STRIP %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' __Mes' +'sage->Read("%PARAM_NAME%", __Get%PARAM_TYPE%Info, &%PARAM_NAME%, TParamAttr' +'ibutes(%PARAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>' +#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __Message->Read("' +'%PARAM_NAME%", __typeinfo(%PARAM_TYPE%), %PARAM_NAME%, TParamAttributes(%PA' +'RAM_ATTRIBUTE%));'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' ' +'// <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10#13#10' delete __response;'#13 +#10'}'#13#10#13#10'// <%%% END IF_OUT_PARAMS %%%>'#13#10'// <%%% END PROCEDU' +'RE_OPERATIONS %%%>'#13#10'// <%%% END SERVICES %%%>'#13#10 ]); LazarusResources.Add('TEMPLATE_ASYNC_H','RCDATA',[ '// %UNIT_NAME%'#13#10'//'#13#10'/*------------------------------------------' +'---------------------------------}'#13#10'{ This unit was automatically gen' +'erated by the RemObjects SDK after reading }'#13#10'{ the RODL file associ' +'ated with this project. }'#13#10'{ ' +' }'#13#10 +'{ Do not modify this unit manually, or your changes will be lost when this ' +' }'#13#10'{ unit is regenerated the next time you compile the project. ' +' }'#13#10'{----------------------------------------------------' +'-----------------------*/'#13#10#13#10'#ifndef %UNIT_NAME%H'#13#10'#define ' +'%UNIT_NAME%H'#13#10#13#10'#pragma delphiheader begin'#13#10'#pragma option ' +'push'#13#10'#pragma option -w- '#9#9' // All warnings off'#13#10'#pra' +'gma option -Vx '#9#9' // Zero-length empty class member functions'#13 +#10'#pragma pack(push,8)'#13#10#13#10'#include '#9#9#9' // Pa' +'scal unit'#13#10'#include '#13#10'// <%%% START REQUIRED_UNIT' +'S %%%>'#13#10'#include <%REQUIRED_UNIT_NAME%.hpp>'#13#10'// <%%% END REQUIR' +'ED_UNITS %%%>'#13#10'#include "%LIBRARY_NAME%_Intf.h"'#13#10#13#10#13#10'na' +'mespace %NAMESPACE_NAME%'#13#10'{'#13#10'// Forward declarations'#13#10'// ' +'<%%% START SERVICES %%%>'#13#10'__interface I%SERVICE_NAME%_Async; // = int' +'erface;'#13#10'class DELPHICLASS Co%SERVICE_NAME%_Async;'#13#10'class DELPH' +'ICLASS T%SERVICE_NAME%_AsyncProxy;'#13#10'// <%%% END SERVICES %%%>'#13#10 +#13#10'// <%%% START SERVICES %%%>'#13#10'__interface I%SERVICE_NAME%_Async;' +#13#10'typedef System::DelphiInterface _di_I%SERVICE_' +'NAME%_Async;'#13#10'__interface INTERFACE_UUID("%SERVICE_UID%") I%SERVICE_N' +'AME%_Async : public %SERVICE_ANCESTOR_NAME%'#13#10'{'#13#10'public:'#13#10 +' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' virtual void __fastcall I' +'nvoke_%OPERATION_NAME%('#13#10' // <%%% START IN_PARAMS %%%>' +#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' ' +' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME' +'%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' ' +' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARA' +'M_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10 +' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13#10' /' +'/ <%%% END IN_PARAMS %%%>'#13#10' ) = 0; // pure virtual funct' +'ion - interface only'#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' ' +'virtual %OPERATION_RESULT% __fastcall Retrieve_%OPERATION_NAME%('#13#10' /' +'/ <%%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %' +'%%>'#13#10' virtual %OPERATION_RESULT%* __fastcall Retrieve_%OPERATION_NAM' +'E%('#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%' +'% START OUT_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SI' +'MPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_B' +'ACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_' +'SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>' +#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFI' +'ER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%' +'%>'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' ) ' +'= 0; // pure virtual function - interface only'#13#10' // <%%% END FUNCTIO' +'N_OPERATIONS %%%>'#13#10#13#10' // <%%% START PROCEDURE_OPERATIONS %%%>'#13 +#10' virtual void _fastcall Invoke_%OPERATION_NAME%('#13#10' /' +'/ <%%% START IN_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYP' +'E_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PAR' +'AM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_T' +'YPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%' +'%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MO' +'DIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLE' +'X %%%>'#13#10' // <%%% END IN_PARAMS %%%>'#13#10' ' +' ) = 0; // pure virtual function - interface only'#13#10' // <%%% START IF' +'_OUT_PARAMS %%%>'#13#10' virtual void _fastcall Retrieve_%OPERATION_NAME%(' +#13#10' // <%%% START OUT_PARAMS %%%>'#13#10' // <' +'%%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIF' +'IER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' ' +'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF' +'_PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM' +'_TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% EN' +'D IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS %%' ,'%>'#13#10' ) = 0; // pure virtual function - interface only'#13 +#10' // <%%% END IF_OUT_PARAMS %%%>'#13#10' // <%%% END PROCEDURE_OPERATIO' +'NS %%%>'#13#10'};'#13#10#13#10'// Co%SERVICE_NAME%_Async'#13#10'class DELPH' +'ICLASS Co%SERVICE_NAME%_Async;'#13#10'class Co%SERVICE_NAME%_Async : public' +' System::TObject'#13#10'{'#13#10#9'typedef System::TObject inherited;'#13#10 +#13#10'public:'#13#10#9'static _di_I%SERVICE_NAME%_Async __fastcall Create(c' +'onst Uroclientintf::_di_IROMessage aMessage,'#13#10' ' +' Uroclientintf::_di_IROTransportChannel aTransportChannel)'#13#10' {'#13#10 +' _di_I%SERVICE_NAME%_Async result;'#13#10' T%SERVICE_NAME%_AsyncProxy' +'* proxy = new T%SERVICE_NAME%_AsyncProxy(aMessage, aTransportChannel);'#13 +#10' if (proxy->QueryInterface(I%SERVICE_NAME%_IID, reinterpret_cast(&result)) != S_OK)'#13#10' {'#13#10' delete proxy;'#13#10' ' +' throw EIntfCastError::EIntfCastError("I%SERVICE_NAME%_Async not supported"' +');'#13#10' }'#13#10' return result;'#13#10' };'#13#10#13#10' static' +' _di_I%SERVICE_NAME%_Async __fastcall Create(Uroclient::TROMessage* aMessag' +'e,'#13#10' Uroclient::TROTransportChannel *aTranspor' +'tChannel)'#13#10' {'#13#10' _di_IROMessage __Message;'#13#10' _di_IR' +'OTransportChannel __TransportChannel;'#13#10#13#10' if (aMessage->GetInt' +'erface(__Message))'#13#10' {'#13#10' if (aTransportChannel->GetInte' +'rface(__TransportChannel))'#13#10' return Create(__Message, __Transp' +'ortChannel);'#13#10' else'#13#10' throw EIntfCastError::EIntfCa' +'stError("IROTransportChannel not supported");'#13#10' }'#13#10' else' +#13#10' {'#13#10' throw EIntfCastError::EIntfCastError("IROMessage n' +'ot supported");'#13#10' }'#13#10' };'#13#10'};'#13#10#13#10'class DELPH' +'ICLASS T%SERVICE_NAME%_AsyncProxy;'#13#10'class T%SERVICE_NAME%_AsyncProxy ' +': public %SERVICE_PROXY_ANCESTOR_NAME%, I%SERVICE_NAME%_Async'#13#10'{'#13 +#10#9'typedef %SERVICE_PROXY_ANCESTOR_NAME% inherited;'#13#10#9#13#10'protec' +'ted:'#13#10#9'virtual AnsiString __fastcall __GetInterfaceName()'#13#10' ' +' { return "%SERVICE_NAME%"; }'#13#10#13#10' // <%%% START FUNCTION_OPERATI' +'ONS %%%>'#13#10' virtual void __fastcall Invoke_%OPERATION_NAME%('#13#10' ' +' // <%%% START IN_PARAMS %%%>'#13#10' // <%%% STAR' +'T IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PA' +'RAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% ' +'END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_T' +'YPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* ' +'%PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PAR' +'AM_TYPE_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS %%%>'#13#10 +' );'#13#10' // <%%% START IF_RESULT_SIMPLE %%%>'#13#10' virt' +'ual %OPERATION_RESULT% __fastcall Retrieve_%OPERATION_NAME%('#13#10' // <%' +'%% END IF_RESULT_SIMPLE %%%>'#13#10' // <%%% START IF_RESULT_COMPLEX %%%>' +#13#10' virtual %OPERATION_RESULT%* __fastcall Retrieve_%OPERATION_NAME%(' +#13#10' // <%%% END IF_RESULT_COMPLEX %%%>'#13#10' // <%%% STA' +'RT OUT_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_SIMPLE ' +'%%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_M' +'ODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_SIMPL' +'E %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10 +' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% %P' +'ARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#13 +#10' // <%%% END OUT_PARAMS %%%>'#13#10' );'#13#10 +' // <%%% END FUNCTION_OPERATIONS %%%>'#13#10#13#10' // <%%% START PROCEDU' +'RE_OPERATIONS %%%>'#13#10' virtual void _fastcall Invoke_%OPERATION_NAME%(' +#13#10' // <%%% START IN_PARAMS %%%>'#13#10' // <%' +'%% START IF_PARAM_TYPE_SIMPLE %%%>'#13#10' %PARAM_FRONT_MODIFI' +'ER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' /' +'/ <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#13#10' // <%%% START IF_' +'PARAM_TYPE_COMPLEX %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_' +'TYPE%* %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END' +' IF_PARAM_TYPE_COMPLEX %%%>'#13#10' // <%%% END IN_PARAMS %%%>' +#13#10' );'#13#10' // <%%% START IF_OUT_PARAMS %%%>'#13#10' v' +'irtual void _fastcall Retrieve_%OPERATION_NAME%('#13#10' // <%' +'%% START OUT_PARAMS %%%>'#13#10' // <%%% START IF_PARAM_TYPE_S' +'IMPLE %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_' +'BACK_MODIFIER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE' +'_SIMPLE %%%>'#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>' ,#13#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFI' +'ER% %PARAM_NAME%,'#13#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%' +'%>'#13#10' // <%%% END OUT_PARAMS %%%>'#13#10' );' +#13#10' // <%%% END IF_OUT_PARAMS %%%>'#13#10' // <%%% END PROCEDURE_OPERA' +'TIONS %%%>'#13#10'public:'#13#10#9'#pragma option push -w-inl'#13#10#9'/* T' +'ROProxy.Create */ inline __fastcall virtual T%SERVICE_NAME%_AsyncProxy(cons' +'t Uroclientintf::_di_IROMessage aMessage, const Uroclientintf::_di_IROTrans' +'portChannel aTransportChannel)/* overload */ :'#13#10' %SERVICE_PROXY_AN' +'CESTOR_NAME%(aMessage, aTransportChannel) {}'#13#10#9'#pragma option pop'#13 +#10#9#13#10' virtual HRESULT __stdcall QueryInterface(const GUID& IID, void' +' **Obj) {'#13#10' return inherited::QueryInterface(IID, (void *)Obj); }' +#13#10#13#10' virtual ULONG __stdcall AddRef() {'#13#10' return inherite' +'d::_AddRef(); }'#13#10#13#10' virtual ULONG __stdcall Release() {'#13#10 +' return inherited::_Release(); }'#13#10'};'#13#10'// <%%% END SERVICES %' +'%%>'#13#10#13#10'}'#9'// namespace %NAMESPACE_NAME%'#13#10#13#10'using name' +'space %NAMESPACE_NAME%;'#13#10'#pragma pack(pop)'#13#10'#pragma option pop' +#13#10#13#10'#pragma delphiheader end.'#13#10'#endif'#9'// %UNIT_NAME%H'#13 +#10#13#10 ]); LazarusResources.Add('TEMPLATE_WRAPPER_INTF_H','RCDATA',[ '{---------------------------------------------------------------------------' +'-}'#13#10'{ This unit was automatically generated by the RemObjects SDK aft' +'er reading }'#13#10'{ the RODL file associated with this project . ' +' }'#13#10'{ ' +' }'#13#10'{ Do not modify this unit manual' +'ly, or your changes will be lost when this }'#13#10'{ unit is regenerated' +' the next time you compile the project. }'#13#10'{---------' +'-------------------------------------------------------------------}'#13#10 +'#ifndef %UNIT_NAME%_H'#13#10'#define %UNIT_NAME%_H'#13#10#13#10'// <%%% STA' +'RT USES %%%>'#13#10'#include "%USED_UNIT_NAME%.h"'#13#10'// <%%% END USES %' +'%%>'#13#10#13#10'#endif'#13#10 ]); LazarusResources.Add('TEMPLATE_WRAPPER_INVK_H','RCDATA',[ '{---------------------------------------------------------------------------' +'-}'#13#10'{ This unit was automatically generated by the RemObjects SDK aft' +'er reading }'#13#10'{ the RODL file associated with this project . ' +' }'#13#10'{ ' +' }'#13#10'{ Do not modify this unit manual' +'ly, or your changes will be lost when this }'#13#10'{ unit is regenerated' +' the next time you compile the project. }'#13#10'{---------' +'-------------------------------------------------------------------}'#13#10 +'#ifndef %UNIT_NAME%_H'#13#10'#define %UNIT_NAME%_H'#13#10#13#10'// <%%% STA' +'RT USES %%%>'#13#10'#include "%USED_UNIT_NAME%.h"'#13#10'// <%%% END USES %' +'%%>'#13#10#13#10'#endif'#13#10 ]); LazarusResources.Add('TEMPLATE_WRAPPER_ASYNC_H','RCDATA',[ '{---------------------------------------------------------------------------' +'-}'#13#10'{ This unit was automatically generated by the RemObjects SDK aft' +'er reading }'#13#10'{ the RODL file associated with this project . ' +' }'#13#10'{ ' +' }'#13#10'{ Do not modify this unit manual' +'ly, or your changes will be lost when this }'#13#10'{ unit is regenerated' +' the next time you compile the project. }'#13#10'{---------' +'-------------------------------------------------------------------}'#13#10 +'#ifndef %UNIT_NAME%_H'#13#10'#define %UNIT_NAME%_H'#13#10#13#10'// <%%% STA' +'RT USES %%%>'#13#10'#include "%USED_UNIT_NAME%.h"'#13#10'// <%%% END USES %' +'%%>'#13#10#13#10'#endif'#13#10 ]); LazarusResources.Add('TEMPLATE_OBJC_INTF_M','RCDATA',[ '//----------------------------------------------------------------------'#10 +'// This file was automatically generated by the RemObjects SDK from a'#10'/' +'/ RODL file associated with this project. '#10'// ' +' ' +#10'// Do not modify this file manually, or your changes will be lost when' +#10'// it is regenerated the next time you update your RODL. ' +#10'//----------------------------------------------------------------------' +#10#10'#include "%LIBRARY_NAME%_Intf.h"'#10#10'#pragma mark enums'#10#10'// ' +'<%%% START ENUMS %%%>'#10'@implementation %ENUM_NAME%_EnumMetaData : ROEnum' +'MetaData'#10#10'static %ENUM_NAME%_EnumMetaData *%ENUM_NAME%_EnumMetaDataIn' +'stance = nil;'#10#10'+ (%ENUM_NAME%_EnumMetaData *)instance'#10'{'#10#9'if ' +'(!%ENUM_NAME%_EnumMetaDataInstance)'#10#9'{'#10#9#9'%ENUM_NAME%_EnumMetaDat' +'aInstance = [[%ENUM_NAME%_EnumMetaData alloc] init];'#10#9'}'#10#9'return %' +'ENUM_NAME%_EnumMetaDataInstance;'#10'}'#10#10'- (void)dealloc'#10'{'#10#9'[' +'stringToValueLookup release];'#10#9'[super dealloc];'#10'}'#10#10'- (NSStri' +'ng *)typeName'#10'{'#10#9'return @"%ENUM_NAME%";'#10'}'#10#10'- (NSString *' +')stringFromValue:(int32) value'#10'{'#10#9'switch (value)'#10#9'{'#10#9#9' ' +'// <%%% START VALUES_NO_STRIP %%%>'#10#9#9' case %VALUE_NAME%: return @"%VA' +'LUE_NAME%";'#10#9#9' // <%%% END VALUES_NO_STRIP %%%>'#10#9#9' default: ret' +'urn [NSString stringWithFormat:@"Invalid value %u for enum %ENUM_NAME%", va' +'lue];'#10#9'}'#10'}'#10#10'- (int32)valueFromString:(NSString *) string'#10 +'{'#10#9'if (!stringToValueLookup)'#10#9'{'#10#9#9'stringToValueLookup = [[N' +'SDictionary alloc] initWithObjectsAndKeys:'#10#9#9#9'// <%%% START VALUES_F' +'ROM_STRING %%%>'#10#9#9#9'[NSNumber numberWithInt:%VALUE_NAME%], @"%VALUE_N' +'AME%",'#10#9#9#9'// <%%% END VALUES_FROM_STRING %%%>'#10#9#9#9'nil];'#10#9 +'}'#9#10#9'NSNumber *result = [stringToValueLookup valueForKey:string];'#10#9 +'if (result) return [result intValue];'#10#9'return -1;'#10'}'#10'@end;'#10 +#10'NSString *%ENUM_NAME%ToString(enum %ENUM_NAME% value)'#10'{'#10#9'return' +' [[%ENUM_NAME%_EnumMetaData instance] stringFromValue:value];'#10'}'#10#10 +'// <%%% END ENUMS %%%>'#10'#pragma mark structs'#10#10'// <%%% START STRUCT' +'S %%%>'#10'@implementation %STRUCT_NAME%'#10#10'// <%%% START FIELDS_NO_STR' +'IP %%%>'#10'@synthesize %FIELD_NAME%;'#10'// <%%% END FIELDS_NO_STRIP %%%>' +#10#10'// <%%% START IF_HAS_FIELDS %%%>'#10'-(id) init'#10'{'#10#9'self = [s' +'uper init];'#10#9'return self;'#10'}'#10#10'-(void) dealloc'#10'{'#10#9'// ' +'<%%% START FIELDS_NO_STRIP %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %' +'%%>'#10#9'[%FIELD_NAME% release];'#10#9'// <%%% END IF_FIELD_TYPE_COMPLEX %' +'%%>'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10#9'[super dealloc];'#10'}'#10 +'// <%%% END IF_HAS_FIELDS %%%>'#10#10'-(void) assignFrom:(ROComplexType*) a' +'Source'#10'{'#10'}'#10#10'// <%%% START IF_HAS_FIELDS %%%>'#10'-(void)write' +'ToMessage:(ROMessage *) aMessage withName:(NSString *) aName'#10'{'#10' ' +' if ([aMessage useStrictFieldOrderForStructs])'#10' {'#10' ' +' // <%%% START IF_STRUCT_HAS_ANCESTOR %%%>'#10' [sup' +'er writeToMessage:aMessage withName:aName];'#10' // <%%% END' +' IF_STRUCT_HAS_ANCESTOR %%%>'#10' // <%%% START FIELDS_NO_ST' +'RIP %%%>'#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10' ' +' [aMessage write%FIELD_READER_WRITER%:%FIELD_NAME% withName:@' +'"%FIELD_NAME%"];'#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>' +#10' // <%%% START IF_FIELD_TYPE_ENUM %%%>'#10' ' +' [aMessage write%FIELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_NAME%' +'" asEnum:[%FIELD_TYPE_RAW%_EnumMetaData instance]];'#10' // ' +'<%%% END IF_FIELD_TYPE_ENUM %%%>'#10' // <%%% START IF_FIELD' +'_TYPE_SIMPLE %%%>'#10' [aMessage write%FIELD_READER_WRITER%:' +'%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10' // <%%% END IF_' +'FIELD_TYPE_SIMPLE %%%>'#10' // <%%% END FIELDS_NO_STRIP %%%>' +#10' }'#10' else'#10' {'#10' '#9' // <%%% STA' +'RT ENTIRE_HIERARCHY_FIELDS %%%>'#10' // <%%% START IF_FIELD_' +'TYPE_COMPLEX %%%>'#10' [aMessage write%FIELD_READER_WRITER%:' +'%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10' // <%%% END IF_' +'FIELD_TYPE_COMPLEX %%%>'#10' // <%%% START IF_FIELD_TYPE_ENU' +'M %%%>'#10' [aMessage write%FIELD_READER_WRITER%:%FIELD_NAME' +'% withName:@"%FIELD_NAME%" asEnum:[%FIELD_TYPE_RAW%_EnumMetaData instance]]' +';'#10' // <%%% END IF_FIELD_TYPE_ENUM %%%>'#10' ' +' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10' [aMessage wr' +'ite%FIELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10' ' ,' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10' '#9'// <%%% END' +' ENTIRE_HIERARCHY_FIELDS %%%>'#10' }'#10'}'#10#10'-(void)readFromMes' +'sage:(ROMessage *) aMessage withName:(NSString *) aName'#10'{'#10' i' +'f ([aMessage useStrictFieldOrderForStructs])'#10' {'#10' ' +' // <%%% START IF_STRUCT_HAS_ANCESTOR %%%>'#10' [super re' +'adFromMessage:aMessage withName:aName];'#10' // <%%% END IF_' +'STRUCT_HAS_ANCESTOR %%%>'#10' // <%%% START FIELDS_NO_STRIP ' +'%%%>'#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10' ' +' [aMessage read%FIELD_READER_WRITER%:&%FIELD_NAME% withName:@"%FI' +'ELD_NAME%" asClass:[%FIELD_TYPE_NAME% class]];'#10' // <%%% ' +'END IF_FIELD_TYPE_COMPLEX %%%>'#10' // <%%% START IF_FIELD_T' +'YPE_ENUM %%%>'#10' [aMessage read%FIELD_READER_WRITER%:(int3' +'2 *)&%FIELD_NAME% withName:@"%FIELD_NAME%" asEnum:[%FIELD_TYPE_RAW%_EnumMet' +'aData instance]];'#10' // <%%% END IF_FIELD_TYPE_ENUM %%%>' +#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10' ' +' [aMessage read%FIELD_READER_WRITER%:&%FIELD_NAME% withName:@"%FIELD_NAM' +'E%"];'#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10' ' +' // <%%% END FIELDS_NO_STRIP %%%>'#10' // <%%% START' +' FIELDS_NO_STRIP %%%>'#10' // <%%% START IF_FIELD_TYPE_COMPL' +'EX %%%>'#10' [%FIELD_NAME% retain];'#10' // <' +'%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10' // <%%% END FIELDS_N' +'O_STRIP %%%>'#10' }'#10' else'#10' {'#10' ' +' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10' // <%%% S' +'TART IF_FIELD_TYPE_COMPLEX %%%>'#10' [aMessage read%FIELD_RE' +'ADER_WRITER%:&%FIELD_NAME% withName:@"%FIELD_NAME%" asClass:[%FIELD_TYPE_NA' +'ME% class]];'#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10 +' // <%%% START IF_FIELD_TYPE_ENUM %%%>'#10' [' +'aMessage read%FIELD_READER_WRITER%:(int32 *)&%FIELD_NAME% withName:@"%FIELD' +'_NAME%" asEnum:[%FIELD_TYPE_RAW%_EnumMetaData instance]];'#10' ' +' // <%%% END IF_FIELD_TYPE_ENUM %%%>'#10' // <%%% START IF' +'_FIELD_TYPE_SIMPLE %%%>'#10' [aMessage read%FIELD_READER_WRI' +'TER%:&%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10' // <%%% E' +'ND IF_FIELD_TYPE_SIMPLE %%%>'#10' // <%%% END ENTIRE_HIERARC' +'HY_FIELDS %%%>'#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%' +'%>'#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10' ' +' [%FIELD_NAME% retain];'#10' // <%%% END IF_FIELD_TY' +'PE_COMPLEX %%%>'#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%' +'>'#10' }'#10'}'#10#10'/* ToDo: Copy this to the Exceptions section, ' +'once working & approved */'#10#10'- (id)copyWithZone:(NSZone *)zone '#10'{' +#10#9'%STRUCT_NAME% *__result = [super copyWithZone:zone];'#10#9'// <%%% STA' +'RT FIELDS_NO_STRIP %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10#9 +'[__result set%FIELD_NAME_PASCAL_CASED%:[%FIELD_NAME% copyWithZone:zone]];' +#10#9'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_FIELD_TY' +'PE_ENUM %%%>'#10#9'[__result set%FIELD_NAME_PASCAL_CASED%:%FIELD_NAME%];'#10 +#9'// <%%% END IF_FIELD_TYPE_ENUM %%%>'#10#9'// <%%% START IF_FIELD_TYPE_SIM' +'PLE %%%>'#10#9'[__result set%FIELD_NAME_PASCAL_CASED%:%FIELD_NAME%];'#10#9 +'// <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10#9'// <%%% END FIELDS_NO_STRIP %%%' +'>'#10#9'return __result;'#10'}'#10#10'- (void)encodeWithCoder:(NSCoder *) e' +'ncoder '#10'{'#10#9'[super encodeWithCoder:encoder];'#10#9'// <%%% START FI' +'ELDS_NO_STRIP %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[en' +'coder encodeObject:%FIELD_NAME% forKey:@"%FIELD_NAME%"];'#10#9'// <%%% END ' +'IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_FIELD_TYPE_ENUM %%%>'#10#9 +'[encoder encodeInt32:(int32)%FIELD_NAME% forKey:@"%FIELD_NAME%"];'#10#9'// ' +'<%%% END IF_FIELD_TYPE_ENUM %%%>'#10#9'// <%%% START IF_FIELD_TYPE_SIMPLE %' +'%%>'#10#9'[encoder encode%FIELD_TYPE_CODING_READER_WRITER%:(int32)%FIELD_NA' +'ME% forKey:@"%FIELD_NAME%"];'#10#9'// <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10 +#9'// <%%% END FIELDS_NO_STRIP %%%>'#10'}'#10#10'- (id)initWithCoder:(NSCode' +'r *) decoder '#10'{'#10#9'self = [super init];'#10#9'if (self)'#10#9'{'#10#9 +#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9#9'// <%%% START IF_FIELD_TYPE_CO' +'MPLEX %%%>'#10#9#9'%FIELD_NAME% = [[decoder decodeObjectForKey:@"%FIELD_NAM' +'E%"] retain];'#10#9#9'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10#9#9'// <%%' +'% START IF_FIELD_TYPE_ENUM %%%>'#10#9#9'%FIELD_NAME% = (%FIELD_TYPE%)[decod' +'er decodeInt32ForKey:@"%FIELD_NAME%"];'#10#9#9'// <%%% END IF_FIELD_TYPE_EN' +'UM %%%>'#10#9#9'// <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10#9#9'%FIELD_NAME' ,'% = [decoder decode%FIELD_TYPE_CODING_READER_WRITER%ForKey:@"%FIELD_NAME%"]' +';'#10#9#9'// <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10#9#9'// <%%% END FIELDS_' +'NO_STRIP %%%>'#10#9'}'#10#9'return self;'#10'}'#10'// <%%% END IF_HAS_FIELD' +'S %%%>'#10#10'@end'#10#10'// <%%% END STRUCTS %%%>'#10#10'#pragma mark arra' +'ys'#10#10'// <%%% START ARRAYS %%%>'#10'@implementation %ARRAY_NAME% '#10#10 +'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10'- (%ARRAY_TYPE%) add'#10'{'#10 +#9'%ARRAY_TYPE% __new = [[%ARRAY_TYPE_NAME% alloc] init];'#10#9'[super addIt' +'em:__new];'#10#9'[__new release];'#10#9'return __new;'#10'}'#10'// <%%% END' +' IF_ARRAY_TYPE_COMPLEX %%%>'#10#10'- (void)addItem:(%ARRAY_TYPE%)object'#10 +'{'#10#9'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'[super addItem:objec' +'t];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_ARR' +'AY_TYPE_SIMPLE %%%>'#10#9'[super addItem:[NSNumber numberWith%ARRAY_TYPE_NS' +'NUMBER%:object]];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'// <%%%' +' START IF_ARRAY_TYPE_ENUM %%%>'#10#9'[super addItem:[NSNumber numberWithInt' +':object]];'#10#9'// <%%% END IF_ARRAY_TYPE_ENUM %%%>'#10'}'#10#10'- (void)i' +'nsertItem:(%ARRAY_TYPE%)object atIndex:(NSUInteger)index'#10'{'#10#9'// <%%' +'% START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'[super insertItem:object atIndex:i' +'ndex];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_' +'ARRAY_TYPE_SIMPLE %%%>'#10#9'[super insertItem:[NSNumber numberWith%ARRAY_T' +'YPE_NSNUMBER%:object] atIndex:index];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPL' +'E %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_ENUM %%%>'#10#9'[super insertItem:' +'[NSNumber numberWithInt:object] atIndex:index];'#10#9'// <%%% END IF_ARRAY_' +'TYPE_ENUM %%%>'#10'}'#10#10'- (void)replaceItemAtIndex:(NSUInteger)index wi' +'thItem:(%ARRAY_TYPE%)object'#10'{'#10#9'// <%%% START IF_ARRAY_TYPE_COMPLEX' +' %%%>'#10#9'[super replaceItemAtIndex:index withItem:object];'#10#9'// <%%%' +' END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_SIMPLE %%' +'%>'#10#9'[super replaceItemAtIndex:index withItem:[NSNumber numberWith%ARRA' +'Y_TYPE_NSNUMBER%:object]];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10#9 +'// <%%% START IF_ARRAY_TYPE_ENUM %%%>'#10#9'[super replaceItemAtIndex:index' +' withItem:[NSNumber numberWithInt:object]];'#10#9'// <%%% END IF_ARRAY_TYPE' +'_ENUM %%%>'#10'}'#10#10'- (%ARRAY_TYPE%)itemAtIndex:(NSUInteger)index;'#10 +'{'#10#9'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'return (%ARRAY_TYPE%' +')[super itemAtIndex:index];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10 +#9'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'%ARRAY_TYPE% __result;'#10#9 +'[(NSNumber *)[super itemAtIndex:index] getValue:&__result];'#10#9'return __' +'result;'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'// <%%% START IF_' +'ARRAY_TYPE_ENUM %%%>'#10#9'return [(NSNumber *)[super itemAtIndex:index] in' +'tValue];'#10#9'// <%%% END IF_ARRAY_TYPE_ENUM %%%>'#10'}'#10#10'// <%%% STA' +'RT IF_ARRAY_TYPE_COMPLEX %%%>'#10'- (Class) itemClass'#10'{'#10#9'return [%' +'ARRAY_TYPE_NAME% class];'#10'}'#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>' +#10#10'- (NSString *) itemTypeName'#10'{'#10#9'return @"%ARRAY_TYPE_RAW%";' +#10'}'#10#10'- (void)writeItemToMessage:(ROMessage *)aMessage fromIndex:(int' +')i'#10'{'#10#9'%ARRAY_TYPE% __item = [self itemAtIndex:i];'#10#9'// <%%% ST' +'ART IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'[aMessage write%ARRAY_TYPE_READER_WRIT' +'ER%:__item withName:nil];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9 +'// <%%% START IF_ARRAY_TYPE_ENUM %%%>'#10#9'[aMessage write%ARRAY_TYPE_READ' +'ER_WRITER%:__item withName:nil asEnum:[%ARRAY_TYPE_RAW%_EnumMetaData instan' +'ce]];'#10#9'// <%%% END IF_ARRAY_TYPE_ENUM %%%>'#10#9'// <%%% START IF_ARRA' +'Y_TYPE_SIMPLE %%%>'#10#9'[aMessage write%ARRAY_TYPE_READER_WRITER%:__item w' +'ithName:nil];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10'}'#10#10'- (v' +'oid)readItemFromMessage:(ROMessage *)aMessage toIndex:(int)i'#10'{'#10#9'%A' +'RRAY_TYPE% __item;'#10#9'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'[aM' +'essage read%ARRAY_TYPE_READER_WRITER%:&__item withName:nil asClass:[self it' +'emClass]];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START' +' IF_ARRAY_TYPE_ENUM %%%>'#10#9'[aMessage read%ARRAY_TYPE_READER_WRITER%:(in' +'t32 *)&__item withName:nil asEnum:[%ARRAY_TYPE_RAW%_EnumMetaData instance]]' +';'#10#9'// <%%% END IF_ARRAY_TYPE_ENUM %%%>'#10#9'// <%%% START IF_ARRAY_TY' +'PE_SIMPLE %%%>'#10#9'[aMessage read%ARRAY_TYPE_READER_WRITER%:&__item withN' +'ame:nil];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[self addItem:_' +'_item]; // for efficiency, assumes this is called in ascending order'#10'}' +#10#10'- (void)writeItemToCoder:(NSCoder *)encoder forKey:(NSString *)aKey f' +'romIndex:(int)i '#10'{'#10#9'%ARRAY_TYPE% __item = [self itemAtIndex:i];'#10 +#9'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'[encoder encodeObject:__it' +'em forKey:aKey];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%%' ,' START IF_ARRAY_TYPE_ENUM %%%>'#10#9'[encoder encodeInt32:__item forKey:aKe' +'y];'#10#9'// <%%% END IF_ARRAY_TYPE_ENUM %%%>'#10#9'// <%%% START IF_ARRAY_' +'TYPE_SIMPLE %%%>'#10#9'[encoder encode%ARRAY_TYPE_CODING_READER_WRITER%:__i' +'tem forKey:aKey];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10'}'#10#10 +'- (void)readItemFromCoder:(NSCoder *)decoder forKey:(NSString *)aKey toInde' +'x:(int)i '#10'{'#10#9'%ARRAY_TYPE% __item;'#10#9'// <%%% START IF_ARRAY_TYP' +'E_COMPLEX %%%>'#10#9'__item = [decoder decodeObjectForKey:aKey];'#10#9'// <' +'%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_ENUM %' +'%%>'#10#9'__item = (%ARRAY_TYPE%)[decoder decodeInt32ForKey:aKey];'#10#9'//' +' <%%% END IF_ARRAY_TYPE_ENUM %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_SIMPLE ' +'%%%>'#10#9'__item = [decoder decode%ARRAY_TYPE_CODING_READER_WRITER%ForKey:' +'aKey];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[self addItem:__it' +'em]; // for efficiency, assumes this is called in ascending order'#10'}'#10 +#10'@end;'#10#10'// <%%% END ARRAYS %%%>'#10#10'#pragma mark exceptions'#10 +#10'// <%%% START EXCEPTIONS %%%>'#10'// <%%% START DOCUMENTATION %%%>'#10#10 +'/* Description:'#10' %CONTENT% */'#10'// <%%% END DOCUMENTATION %%%>'#10 +'@implementation %EXCEPTION_NAME% '#10' '#10'// <%%% START FIELDS_NO_STRIP %' +'%%>'#10'@synthesize %FIELD_NAME%;'#10'// <%%% END FIELDS_NO_STRIP %%%>'#10 +#10'-(id) initWithMessage:(NSString *) anExceptionMessage'#10' ' +' // <%%% START ANCESTOR_FIELDS %%%>'#10' : (%FIELD_TY' +'PE%) a%FIELD_NAME% '#10' // <%%% END ANCESTOR_FIELDS %%%>' +#10' // <%%% START FIELDS_NO_STRIP %%%>'#10' ' +' : (%FIELD_TYPE%) a%FIELD_NAME% '#10' // <%%% END FIE' +'LDS_NO_STRIP %%%>'#10'{'#10#9'self = [super initWithMessage:anExceptionMess' +'age'#10#9#9'// <%%% START ANCESTOR_FIELDS %%%>'#10#9#9':a%FIELD_NAME% '#10#9 +#9'// <%%% END ANCESTOR_FIELDS %%%>'#10#9'];'#10#9'// <%%% START IF_HAS_FIEL' +'DS %%%>'#10#9'if (self)'#10#9'{'#10#9#9'// <%%% START FIELDS_NO_STRIP %%%>' +#10#9#9'%FIELD_NAME% = a%FIELD_NAME%;'#10#9#9'// <%%% END FIELDS_NO_STRIP %%' +'%>'#10#9#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9#9'// <%%% START IF_FIEL' +'D_TYPE_COMPLEX %%%>'#10#9#9'[%FIELD_NAME% retain];'#10#9#9'// <%%% END IF_F' +'IELD_TYPE_COMPLEX %%%>'#10#9#9'// <%%% END FIELDS_NO_STRIP %%%>'#10#9'}'#10 +#9'// <%%% END IF_HAS_FIELDS %%%>'#10#9'return self;'#10'}'#10#10'// <%%% ST' +'ART IF_HAS_FIELDS %%%>'#10'-(void) dealloc'#10'{'#10#9'// <%%% START FIELDS' +'_NO_STRIP %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[%FIELD' +'_NAME% release];'#10#9'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%%' +' START IF_FIELD_TYPE_COMPLEX %%%>'#10#9'%FIELD_NAME% = nil;'#10#9'// <%%% E' +'ND IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10#9 +'[super dealloc];'#10'}'#10#10'-(void)writeToMessage:(ROMessage *) aMessage ' +'withName:(NSString *) aName'#10'{'#10' if ([aMessage useStrictFieldO' +'rderForStructs])'#10' {'#10' // <%%% START IF_STRUCT_' +'HAS_ANCESTOR %%%>'#10' [super writeToMessage:aMessage withNa' +'me:aName];'#10' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#10 +' // <%%% START FIELDS_NO_STRIP %%%>'#10' // <' +'%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10' [aMessage write%FI' +'ELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10' ' +' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10' // <%%% STAR' +'T IF_FIELD_TYPE_ENUM %%%>'#10' [aMessage write%FIELD_READER_' +'WRITER%:%FIELD_NAME% withName:@"%FIELD_NAME%" asEnum:[%FIELD_TYPE_RAW%_Enum' +'MetaData instance]];'#10' // <%%% END IF_FIELD_TYPE_ENUM %%%' +'>'#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10' ' +' [aMessage write%FIELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_' +'NAME%"];'#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10' ' +' // <%%% END FIELDS_NO_STRIP %%%>'#10' }'#10' else' +#10' {'#10' '#9' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>' +#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10' ' +' [aMessage write%FIELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_NA' +'ME%"];'#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10' ' +' // <%%% START IF_FIELD_TYPE_ENUM %%%>'#10' [aMess' +'age write%FIELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_NAME%" asEnum' +':[%FIELD_TYPE_RAW%_EnumMetaData instance]];'#10' // <%%% END' +' IF_FIELD_TYPE_ENUM %%%>'#10' // <%%% START IF_FIELD_TYPE_SI' +'MPLE %%%>'#10' [aMessage write%FIELD_READER_WRITER%:%FIELD_N' +'AME% withName:@"%FIELD_NAME%"];'#10' // <%%% END IF_FIELD_TY' +'PE_SIMPLE %%%>'#10' '#9'// <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#10 ,' }'#10'}'#10#10'-(void)readFromMessage:(ROMessage *) aMessage withNa' +'me:(NSString *) aName'#10'{'#10' if ([aMessage useStrictFieldOrderFo' +'rStructs])'#10' {'#10' // <%%% START IF_STRUCT_HAS_AN' +'CESTOR %%%>'#10' [super readToMessage:aMessage withName:aNam' +'e];'#10' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#10' ' +' // <%%% START FIELDS_NO_STRIP %%%>'#10' // <%%% STA' +'RT IF_FIELD_TYPE_COMPLEX %%%>'#10' [aMessage read%FIELD_READ' +'ER_WRITER%:&%FIELD_NAME% withName:@"%FIELD_NAME%" asClass:[%FIELD_TYPE_NAME' +'% class]];'#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10' ' +' // <%%% START IF_FIELD_TYPE_ENUM %%%>'#10' [a' +'Message read%FIELD_READER_WRITER%:(int32 *)&%FIELD_NAME% withName:@"%FIELD_' +'NAME%" asEnum:[%FIELD_TYPE_RAW%_EnumMetaData instance]];'#10' ' +' // <%%% END IF_FIELD_TYPE_ENUM %%%>'#10' // <%%% START IF_' +'FIELD_TYPE_SIMPLE %%%>'#10' [aMessage read%FIELD_READER_WRIT' +'ER%:&%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10' // <%%% EN' +'D IF_FIELD_TYPE_SIMPLE %%%>'#10' // <%%% END FIELDS_NO_STRIP' +' %%%>'#10' // <%%% START FIELDS_NO_STRIP %%%>'#10' ' +' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10' [%FIELD_' +'NAME% retain];'#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>' +#10' // <%%% END FIELDS_NO_STRIP %%%>'#10' }'#10' ' +' else'#10' {'#10' // <%%% START ENTIRE_HIERARCHY_FI' +'ELDS %%%>'#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10 +' [aMessage read%FIELD_READER_WRITER%:&%FIELD_NAME% withName:' +'@"%FIELD_NAME%" asClass:[%FIELD_TYPE_NAME% class]];'#10' // ' +'<%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10' // <%%% START IF_FI' +'ELD_TYPE_ENUM %%%>'#10' [aMessage read%FIELD_READER_WRITER%:' +'(int32 *)&%FIELD_NAME% withName:@"%FIELD_NAME%" asEnum:[%FIELD_TYPE_RAW%_En' +'umMetaData instance]];'#10' // <%%% END IF_FIELD_TYPE_ENUM %' +'%%>'#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10' ' +' [aMessage read%FIELD_READER_WRITER%:&%FIELD_NAME% withName:@"%FIEL' +'D_NAME%"];'#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10' ' +' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#10' ' +'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10' // <%%% STAR' +'T IF_FIELD_TYPE_COMPLEX %%%>'#10' [%FIELD_NAME% retain];'#10 +' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10' ' +'// <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#10' }'#10'}'#10'// <%%% EN' +'D IF_HAS_FIELDS %%%>'#10'@end'#10#10'// <%%% END EXCEPTIONS %%%>'#10#10'#pr' +'agma mark service proxies'#10#10'// <%%% START SERVICES %%%>'#10'@implement' +'ation %SERVICE_NAME%_Proxy '#10#10'-(id) initWithMessage:(ROMessage*) aMess' +'age channel:(ROClientChannel*) aChannel'#10'{'#10#9'self = [super initWithM' +'essage: aMessage channel: aChannel];'#10#9'return self;'#10'}'#10#10'-(void' +') dealloc'#10'{'#10#9'[super dealloc];'#10'}'#10#10'-(NSString*) __getInter' +'faceName'#10'{'#10#9'return @"%SERVICE_NAME%";'#10'}'#10#10'// <%%% START O' +'PERATIONS %%%>'#10'- (%OPERATION_RESULT_TYPE%) %OPERATION_NAME%'#10#9'// <%' +'%% START PARAMS %%%>'#10#9':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME' +'% '#10#9'// <%%% END PARAMS %%%>'#10'{'#10#9'// <%%% START IF_OPERATION_HA' +'S_RESULT %%%>'#10#9'%OPERATION_RESULT_TYPE% __result;'#10#9'// <%%% END IF_' +'OPERATION_HAS_RESULT %%%>'#10#10#9'[[self __message] initializeAsRequestMes' +'sage:[self __clientChannel] libraryName:@"%LIBRARY_NAME%" interfaceName:[se' +'lf __getActiveInterfaceName] messageName:@"%OPERATION_NAME%"];'#10#9'@try' +#10#9'{'#10#9#9'// <%%% START IN_PARAMS_NO_STRIP %%%> '#10#9#9'// <%%% ST' +'ART IF_PARAM_TYPE_COMPLEX %%%>'#10#9#9'[[self __message] write%PARAM_READER' +'_WRITER%:%PARAM_FRONT_MODIFIER%%PARAM_NAME% withName:@"%PARAM_NAME%"];'#10#9 +#9'// <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#10#9#9'// <%%% START IF_PARAM_TYP' +'E_ENUM %%%>'#10#9#9'[[self __message] write%PARAM_READER_WRITER%:%PARAM_FRO' +'NT_MODIFIER%%PARAM_NAME% withName:@"%PARAM_NAME%" asEnum:[%PARAM_TYPE_RAW%_' +'EnumMetaData instance]];'#10#9#9'// <%%% END IF_PARAM_TYPE_ENUM %%%>'#10#9#9 +'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10#9#9'[[self __message] write%PAR' +'AM_READER_WRITER%:%PARAM_FRONT_MODIFIER%%PARAM_NAME% withName:@"%PARAM_NAME' +'%"];'#10#9#9'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#10#9#9'// <%%% END IN_P' +'ARAMS_NO_STRIP %%%>'#10#9#9'[[self __message] finalizeMessage];'#10#9#9#10#9 +#9'[[self __clientChannel] dispatch:[self __message]];'#10#10#9#9'// <%%% ST' +'ART IF_RESULT_COMPLEX %%%>'#10#9#9'[[self __message] read%OPERATION_RESULT_' +'READER_WRITER%:&__result withName:@"%OPERATION_RESULT_NAME%" asClass:[%OPER' ,'ATION_RESULT_TYPE_NAME% class]];'#10#9#9'// <%%% END IF_RESULT_COMPLEX %%%>' +#10#9#9'// <%%% START IF_RESULT_ENUM %%%>'#10#9#9'[[self __message] read%OPE' +'RATION_RESULT_READER_WRITER%:(int32 *)&__result withName:@"%OPERATION_RESUL' +'T_NAME%" asEnum:[%OPERATION_RESULT_TYPE_RAW%_EnumMetaData instance]];'#10#9 +#9'// <%%% END IF_RESULT_ENUM %%%>'#10#9#9'// <%%% START IF_RESULT_SIMPLE %%' +'%>'#10#9#9'[[self __message] read%OPERATION_RESULT_READER_WRITER%:&__result' +' withName:@"%OPERATION_RESULT_NAME%"];'#10#9#9'// <%%% END IF_RESULT_SIMPLE' +' %%%>'#10#9#9'// <%%% START OUT_PARAMS_NO_STRIP %%%>'#10#9#9'// <%%% START ' +'IF_PARAM_TYPE_COMPLEX %%%>'#10#9#9'[[self __message] read%PARAM_READER_WRIT' +'ER%:%PARAM_NAME% withName:@"%PARAM_NAME%" asClass:[%PARAM_TYPE_NAME% class]' +'];'#10#9#9'// <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#10#9#9'// <%%% START IF_' +'PARAM_TYPE_ENUM %%%>'#10#9#9'[[self __message] read%PARAM_READER_WRITER%:(i' +'nt32 *)%PARAM_NAME% withName:@"%PARAM_NAME%" asEnum:[%PARAM_TYPE_RAW%_EnumM' +'etaData instance]];'#10#9#9'// <%%% END IF_PARAM_TYPE_ENUM %%%>'#10#9#9'// ' +'<%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10#9#9'[[self __message] read%PARAM_R' +'EADER_WRITER%:%PARAM_NAME% withName:@"%PARAM_NAME%"];'#10#9#9'// <%%% END I' +'F_PARAM_TYPE_SIMPLE %%%>'#10#9#9'// <%%% END OUT_PARAMS_NO_STRIP %%%>'#10#9 +'}'#10#9'@finally'#10#9'{'#10#9#9'[[self __message] clear];'#10#9'}'#10#10#9 +'// <%%% START IF_OPERATION_HAS_RESULT %%%>'#10#9'return __result;'#10#9'// ' +'<%%% END IF_OPERATION_HAS_RESULT %%%>'#10'}'#10#10'// <%%% END OPERATIONS %' +'%%>'#10' '#10'@end'#10#10'@implementation %SERVICE_NAME%_AsyncProxy '#10#10 +'// <%%% START OPERATIONS %%%>'#10'- (ROAsyncRequest *)begin%OPERATION_NAME%' +#10#9'// <%%% START IN_PARAMS %%%>'#10#9':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%' +') %PARAM_NAME% '#10#9'// <%%% END IN_PARAMS %%%>'#10'{'#10#9'ROMessage *__' +'localMessage = [[[self __message] copy] autorelease];'#10#9'[__localMessage' +' initializeAsRequestMessage:[self __clientChannel] libraryName:@"%LIBRARY_N' +'AME%" interfaceName:[self __getActiveInterfaceName] messageName:@"%OPERATIO' +'N_NAME%"];'#10#9'// <%%% START IN_PARAMS_NO_STRIP %%%> '#10#9'// <%%% ST' +'ART IF_PARAM_TYPE_COMPLEX %%%>'#10#9'[__localMessage write%PARAM_READER_WRI' +'TER%:%PARAM_FRONT_MODIFIER%%PARAM_NAME% withName:@"%PARAM_NAME%"];'#10#9'//' +' <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_PARAM_TYPE_ENUM' +' %%%>'#10#9'[__localMessage write%PARAM_READER_WRITER%:%PARAM_FRONT_MODIFIE' +'R%%PARAM_NAME% withName:@"%PARAM_NAME%" asEnum:[%PARAM_TYPE_RAW%_EnumMetaDa' +'ta instance]];'#10#9'// <%%% END IF_PARAM_TYPE_ENUM %%%>'#10#9'// <%%% STAR' +'T IF_PARAM_TYPE_SIMPLE %%%>'#10#9'[__localMessage write%PARAM_READER_WRITER' +'%:%PARAM_FRONT_MODIFIER%%PARAM_NAME% withName:@"%PARAM_NAME%"];'#10#9'// <%' +'%% END IF_PARAM_TYPE_SIMPLE %%%>'#10#9'// <%%% END IN_PARAMS_NO_STRIP %%%>' +#10#9'[__localMessage finalizeMessage];'#10#9'return [[self __clientChannel]' +' asyncDispatch:__localMessage start:YES];'#10'}'#10#10'// <%%% END OPERATIO' +'NS %%%>'#10#10'/*'#10'// <%%% START OPERATIONS %%%>'#10'- (ROAsyncRequest *' +')begin%OPERATION_NAME%'#10#9'// <%%% START IN_PARAMS %%%>'#10#9':(%PARAM_TY' +'PE%%PARAM_BACK_MODIFIER%) %PARAM_NAME%'#10#9'// <%%% END IN_PARAMS %%%>'#10 +#9'start:(BOOL)start'#10'{'#10#9'ROMessage *__localMessage = [[[self __messa' +'ge] copy] autorelease];'#10#9'[__localMessage initializeAsRequestMessage:[s' +'elf __clientChannel] libraryName:@"%LIBRARY_NAME%" interfaceName:[self __ge' +'tActiveInterfaceName] messageName:@"%OPERATION_NAME%"];'#10#9'// <%%% START' +' IN_PARAMS_NO_STRIP %%%>'#10#9'// <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#10 +#9'[__localMessage write%PARAM_READER_WRITER%:%PARAM_FRONT_MODIFIER%%PARAM_N' +'AME% withName:@"%PARAM_NAME%"];'#10#9'// <%%% END IF_PARAM_TYPE_COMPLEX %%%' +'>'#10#9'// <%%% START IF_PARAM_TYPE_ENUM %%%>'#10#9'[__localMessage write%P' +'ARAM_READER_WRITER%:%PARAM_FRONT_MODIFIER%%PARAM_NAME% withName:@"%PARAM_NA' +'ME%" asEnum:[%PARAM_TYPE_RAW%_EnumMetaData instance]];'#10#9'// <%%% END IF' +'_PARAM_TYPE_ENUM %%%>'#10#9'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10#9'[' +'__localMessage write%PARAM_READER_WRITER%:%PARAM_FRONT_MODIFIER%%PARAM_NAME' +'% withName:@"%PARAM_NAME%"];'#10#9'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#10 +#9'// <%%% END IN_PARAMS_NO_STRIP %%%>'#10#9'[__localMessage finalizeMessage' +'];'#10#9'return [[self __clientChannel] asyncDispatch:__localMessage start:' +'start];'#10'}'#10#10'// <%%% END OPERATIONS %%%>'#10'*/'#10#10'// <%%% STAR' +'T OPERATIONS %%%>'#10'- (%OPERATION_RESULT_TYPE%)end%OPERATION_NAME%'#10#9 +':(ROAsyncRequest *)__asyncRequest'#10#9'// <%%% START OUT_PARAMS %%%>'#10#9 +':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '#10#9'// <%%% END OUT_P' +'ARAMS %%%>'#10'{'#10#9'// <%%% START IF_OPERATION_HAS_RESULT %%%>'#10#9'%OP' +'ERATION_RESULT_TYPE% __result;'#10#9'// <%%% END IF_OPERATION_HAS_RESULT %%' +'%>'#10#9'ROMessage *__localMessage = [__asyncRequest responseMessage];'#10 ,#10#9'// <%%% START IF_RESULT_COMPLEX %%%>'#10#9'[__localMessage read%OPERAT' +'ION_RESULT_READER_WRITER%:&__result withName:@"%OPERATION_RESULT_NAME%" asC' +'lass:[%OPERATION_RESULT_TYPE_NAME% class]];'#10#9'// <%%% END IF_RESULT_COM' +'PLEX %%%>'#10#9'// <%%% START IF_RESULT_ENUM %%%>'#10#9'[[self __message] r' +'ead%OPERATION_RESULT_READER_WRITER%:(int32 *)&__result withName:@"%OPERATIO' +'N_RESULT_NAME%" asEnum:[%OPERATION_RESULT_TYPE_RAW%_EnumMetaData instance]]' +';'#10#9'// <%%% END IF_RESULT_ENUM %%%>'#10#9'// <%%% START IF_RESULT_SIMPL' +'E %%%>'#10#9'[__localMessage read%OPERATION_RESULT_READER_WRITER%:&__result' +' withName:@"%OPERATION_RESULT_NAME%"];'#10#9'// <%%% END IF_RESULT_SIMPLE %' +'%%>'#10#9'// <%%% START OUT_PARAMS_NO_STRIP %%%> '#10#9'// <%%% START IF_' +'PARAM_TYPE_COMPLEX %%%>'#10#9'[__localMessage read%PARAM_READER_WRITER%:%PA' +'RAM_NAME% withName:@"%PARAM_NAME%" asClass:[%PARAM_TYPE_NAME% class]];'#10#9 +'// <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_PARAM_TYPE_EN' +'UM %%%>'#10#9'[[self __message] read%PARAM_READER_WRITER%:(int32 *)%PARAM_N' +'AME% withName:@"%PARAM_NAME%" asEnum:[%PARAM_TYPE_RAW%_EnumMetaData instanc' +'e]];'#10#9'// <%%% END IF_PARAM_TYPE_ENUM %%%>'#10#9'// <%%% START IF_PARAM' +'_TYPE_SIMPLE %%%>'#10#9'[__localMessage read%PARAM_READER_WRITER%:%PARAM_NA' +'ME% withName:@"%PARAM_NAME%"];'#10#9'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>' +#10#9'// <%%% END OUT_PARAMS_NO_STRIP %%%>'#10#9'[__localMessage clear];'#10 +#10#9'// <%%% START IF_OPERATION_HAS_RESULT %%%>'#10#9'return __result;'#10#9 +'// <%%% END IF_OPERATION_HAS_RESULT %%%>'#10'}'#10#10'// <%%% END OPERATION' +'S %%%>'#10'@end'#10#10'// <%%% END SERVICES %%%>'#10#10'static BOOL %LIBRAR' +'Y_NAME%_WasInitialized;'#10#10'void Initialize%LIBRARY_NAME%()'#10'{'#10#9 +'if (!%LIBRARY_NAME%_WasInitialized)'#10#9'{'#10#9#9'%LIBRARY_NAME%_WasIniti' +'alized = YES;'#10#9#9'// <%%% START STRUCTS %%%>'#10#9#9'[[ROTypeManager ty' +'peManager] addType:[%STRUCT_NAME% class] className:@"%STRUCT_NAME%"];'#10#9 +#9'// <%%% END STRUCTS %%%>'#10#9#9'// <%%% START EXCEPTIONS %%%>'#10#9#9'[[' +'ROTypeManager typeManager] addType:[%EXCEPTION_NAME% class] className:@"%EX' +'CEPTION_NAME%"];'#10#9#9'// <%%% END EXCEPTIONS %%%>'#10#9'}'#10'}' ]); LazarusResources.Add('TEMPLATE_OBJC_INTF_H','RCDATA',[ '//----------------------------------------------------------------------'#10 +'// This file was automatically generated by the RemObjects SDK from a '#10 +'// RODL file associated with this project. '#10'// ' +' ' +#10'// Do not modify this file manually, or your changes will be lost when ' +#10'// it is regenerated the next time you update your RODL. ' +#10'//----------------------------------------------------------------------' +#10#10'#ifndef %LIBRARY_NAME%_INTF__H'#10'#define %LIBRARY_NAME%_INTF__H'#10 +#10'#import '#10'// <%%% START REQUIRED_UNITS' +' %%%>'#10'#import <%REQUIRED_UNIT_NAME%.h>'#10'// <%%% END REQUIRED_UNITS %' +'%%>'#10#10'#pragma mark defines'#10#10'// Library ID'#10'////#define Librar' +'yID "%LIBRARY_UID%"'#10'////#define TargetNamespace "%NAMESPACE_NAME%"'#10 +#10'// Service Interface ID''s'#10'// <%%% START SERVICES %%%>'#10'#define ' +'I%SERVICE_NAME%_IID "%SERVICE_UID%"'#10'////const GUID I%SERVICE_NAME%_IID ' +'= ROStringToGUID("%SERVICE_UID%");'#10'// <%%% END SERVICES %%%>'#10#10'///' +'/ Event ID''s'#10'//// <%%% START EVENT_SINKS %%%>'#10'////#define EID_%EVE' +'NT_SINK_NAME% @"%EVENT_SINK_NAME%"'#10'////#define IID_%EVENT_SINK_NAME% @"' +'%EVENT_SINK_UID%"'#10'//// <%%% END EVENT_SINKS %%%>'#10#10'// Type Registr' +'ation'#10'void Initialize%LIBRARY_NAME%();'#10#10'// Forward declarations' +#10'// <%%% START SERVICES %%%>'#10'@protocol I%SERVICE_NAME%; '#10'// <%%% ' +'END SERVICES %%%>'#10'// <%%% START ARRAYS %%%>'#10'@class %ARRAY_NAME%;'#10 +'// <%%% END ARRAYS %%%>'#10'// <%%% START STRUCTS %%%>'#10'@class %STRUCT_N' +'AME%;'#10'// <%%% END STRUCTS %%%>'#10'// <%%% START EXCEPTIONS %%%>'#10'@c' +'lass %EXCEPTION_NAME%;'#10'// <%%% END EXCEPTIONS %%%>'#10'// <%%% START EV' +'ENT_SINKS %%%>'#10'@protocol I%EVENT_SINK_NAME%;'#10'// <%%% END EVENT_SINK' +'S %%%>'#10#10'#pragma mark enums'#10#10'// <%%% START ENUMS %%%>'#10'enum %' +'ENUM_NAME% '#10'{'#10#9'// <%%% START VALUES %%%>'#10#9'%VALUE_NAME%, ' +' '#10#9'// <%%% END VALUES %%%> '#10'};'#10#10'@int' +'erface %ENUM_NAME%_EnumMetaData : ROEnumMetaData'#10'{'#10#9'NSDictionary *' +'stringToValueLookup;'#10'}'#10#10'@property (readonly) NSString *typeName;' +#10#10'@end'#10#10'NSString *%ENUM_NAME%ToString(enum %ENUM_NAME% value) DEP' +'RECATED_ATTRIBUTE;'#10#10'// <%%% END ENUMS %%%>'#10#10'#pragma mark struct' +'s'#10#10'// <%%% START STRUCTS %%%>'#10'@interface %STRUCT_NAME% : %STRUCT_' +'ANCESTOR_NAME% '#10'{ '#10#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9'%FIE' +'LD_TYPE% %FIELD_NAME%;'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10'}'#10#10 +'// <%%% START FIELDS_NO_STRIP %%%>'#10'// <%%% START IF_FIELD_TYPE_COMPLEX ' +'%%%>'#10'@property (retain) %FIELD_TYPE% %FIELD_NAME%;'#10'// <%%% END IF_F' +'IELD_TYPE_COMPLEX %%%>'#10'// <%%% START IF_FIELD_TYPE_ENUM %%%>'#10'@prope' +'rty (assign) %FIELD_TYPE% %FIELD_NAME%;'#10'// <%%% END IF_FIELD_TYPE_ENUM ' +'%%%>'#10'// <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10'@property (assign) %FI' +'ELD_TYPE% %FIELD_NAME%;'#10'// <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10'// <%' +'%% END FIELDS_NO_STRIP %%%>'#10#10'// <%%% START IF_HAS_FIELDS %%%>'#10'- (' +'id) init;'#10'- (void)dealloc;'#10'// <%%% END IF_HAS_FIELDS %%%>'#10#10'- ' +'(void)assignFrom:(ROComplexType*) aSource;'#10'// <%%% START IF_HAS_FIELDS ' +'%%%>'#10'- (void)writeToMessage:(ROMessage *) aMessage withName:(NSString *' +') aName;'#10'- (void)readFromMessage:(ROMessage *) aMessage withName:(NSStr' +'ing *) aName;'#10'// <%%% END IF_HAS_FIELDS %%%>'#10#10'@end'#10#10'// <%%%' +' END STRUCTS %%%>'#10#10'#pragma mark arrays'#10#10'// <%%% START ARRAYS %%' +'%>'#10'@interface %ARRAY_NAME% : ROArray '#10'{'#10'}'#10'// <%%% START IF_' +'ARRAY_TYPE_COMPLEX %%%>'#10'- (%ARRAY_TYPE%) add;'#10'// <%%% END IF_ARRAY_' +'TYPE_COMPLEX %%%>'#10'- (NSString *) itemTypeName; '#10'- (void)addItem:(%A' +'RRAY_TYPE%)object;'#10'- (void)insertItem:(%ARRAY_TYPE%)object atIndex:(NSU' +'Integer)index;'#10'- (void)replaceItemAtIndex:(NSUInteger)index withItem:(%' +'ARRAY_TYPE%)object;'#10'- (%ARRAY_TYPE%)itemAtIndex:(NSUInteger)index;'#10 +'@end;'#10#10'// <%%% END ARRAYS %%%>'#10'#pragma mark exceptions'#10#10'// ' +'<%%% START EXCEPTIONS %%%>'#10'// <%%% START DOCUMENTATION %%%>'#10#10'/* D' +'escription:'#10' %CONTENT% */'#10'// <%%% END DOCUMENTATION %%%>'#10'@in' +'terface %EXCEPTION_NAME% : %EXCEPTION_ANCESTOR_NAME% '#10'{ '#10#9'// <%%%' +' START FIELDS_NO_STRIP %%%>'#10#9'%FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% ' +'END FIELDS_NO_STRIP %%%>'#10'}'#10' '#10'// <%%% START FIELDS_NO_STRIP %%%' +'>'#10'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10'@property (retain) %FIEL' +'D_TYPE% %FIELD_NAME%;'#10'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10'// <%%' +'% START IF_FIELD_TYPE_SIMPLE %%%>'#10'@property (assign) %FIELD_TYPE% %FIEL' +'D_NAME%;'#10'// <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10'// <%%% END FIELDS_N' ,'O_STRIP %%%>'#10' '#10'- (id)initWithMessage:(NSString *) anExceptionMessa' +'ge'#10#9'// <%%% START ANCESTOR_FIELDS %%%>'#10#9': (%FIELD_TYPE%) a%FIELD_' +'NAME% '#10#9'// <%%% END ANCESTOR_FIELDS %%%>'#10#9'// <%%% START FIELDS_NO' +'_STRIP %%%>'#10#9': (%FIELD_TYPE%) a%FIELD_NAME% '#10#9'// <%%% END FIELDS_' +'NO_STRIP %%%>'#10#9';'#10'// <%%% START IF_HAS_FIELDS %%%>'#10'- (void)writ' +'eToMessage:(ROMessage *) aMessage withName:(NSString *) aName;'#10'- (void)' +'readFromMessage:(ROMessage *) aMessage withName:(NSString *) aName;'#10'// ' +'<%%% END IF_HAS_FIELDS %%%>'#10'- (void) dealloc;'#10'@end'#10#10'// <%%% E' +'ND EXCEPTIONS %%%>'#10#10'#pragma mark service protocols'#10#10'// <%%% STA' +'RT SERVICES %%%>'#10'@protocol I%SERVICE_NAME%'#10'// <%%% START OPERATIONS' +' %%%>'#10'- (%OPERATION_RESULT_TYPE%)%OPERATION_NAME%'#10'// <%%% START PAR' +'AMS %%%>'#10#9':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%)%PARAM_NAME%'#10'// <%%%' +' END PARAMS %%%>'#10#9';'#10'// <%%% END OPERATIONS %%%>'#10'@end'#10#10'#p' +'ragma mark service proxies'#10#10'@interface %SERVICE_NAME%_Proxy : %SERVIC' +'E_PROXY_ANCESTOR_NAME% '#10'{'#10'}'#10'- (id)initWithMes' +'sage:(ROMessage*) aMessage channel:(ROClientChannel*) aChannel;'#10'- (void' +')dealloc;'#10'- (NSString*)__getInterfaceName;'#10#10'// <%%% START OPERATI' +'ONS %%%>'#10'- (%OPERATION_RESULT_TYPE%)%OPERATION_NAME%'#10'// <%%% START ' +'PARAMS %%%>'#10#9':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME%'#10'// ' +'<%%% END PARAMS %%%>'#9#10#9';'#10'// <%%% END OPERATIONS %%%>'#10' '#10'@' +'end'#10#10'@interface %SERVICE_NAME%_AsyncProxy : %SERVICE_NAME%_Proxy '#10 +'{'#10'}'#10'// <%%% START OPERATIONS %%%>'#10'- (ROAsyncRequest *)begin%OPE' +'RATION_NAME%'#10'// <%%% START IN_PARAMS %%%>'#10#9':(%PARAM_TYPE%%PARAM_BA' +'CK_MODIFIER%) %PARAM_NAME% '#10'// <%%% END IN_PARAMS %%%>'#10#9';'#10'// ' +'<%%% END OPERATIONS %%%>'#10#10'/*'#10'// <%%% START OPERATIONS %%%>'#10'- ' +'(ROAsyncRequest *)begin%OPERATION_NAME%'#10'// <%%% START IN_PARAMS %%%>'#10 +#9':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME%'#10'// <%%% END IN_PARA' +'MS %%%>'#10#9'start:(BOOL)start'#10#9';'#10'// <%%% END OPERATIONS %%%>'#10 +'*/'#10#10'// <%%% START OPERATIONS %%%>'#10'- (%OPERATION_RESULT_TYPE%)end%' +'OPERATION_NAME%'#10#9':(ROAsyncRequest *)__asyncRequest'#10'// <%%% START O' +'UT_PARAMS %%%>'#10#9':(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '#10 +'// <%%% END OUT_PARAMS %%%>'#10#9';'#10'// <%%% END OPERATIONS %%%> '#10'@' +'end'#10#10'// <%%% END SERVICES %%%>'#10#10'#pragma mark event sinks'#10#10 +'//// <%%% START EVENT_SINKS %%%>'#10'//// /* I%EVENT_SINK_NAME% */'#10'////' +' <%%% END EVENT_SINKS %%%>'#10#10'void Initialize%LIBRARY_NAME%();'#10#10'#' +'endif // %LIBRARY_NAME%_INTF__H'#10#10 ]);