git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@46 b6239004-a887-0f4b-9937-50029ccdca16
3375 lines
267 KiB
Plaintext
3375 lines
267 KiB
Plaintext
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' procedure Assign(iSource: TPersistent); overr'
|
|
+'ide;'#13#10' destructor Destroy; override;'#13#10' // <%%% START IF_H'
|
|
+'AS_FIELDS %%%>'#13#10' procedure ReadComplex(ASerializer: TObject); over'
|
|
+'ride;'#13#10' procedure WriteComplex(ASerializer: TObject); override;'#13
|
|
+#10' // <%%% END IF_HAS_FIELDS %%%>'#13#10' published '#13#10' // Fie'
|
|
+'lds must be published for the ancestor destructor to find and destroy them.'
|
|
+#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% START IF_FI'
|
|
+'ELD_TYPE_SIMPLE %%%>'#13#10' property %FIELD_NAME%:%FIELD_TYPE% read f%F'
|
|
+'IELD_NAME% write f%FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE'
|
|
+' %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' proper'
|
|
+'ty %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' { %STRUCT_COLLECTION_NAME% }'#13
|
|
+#10' %STRUCT_COLLECTION_NAME% = class(%STRUCT_ANCESTOR_COLLECTION_NAME%)'#13
|
|
+#10' protected'#13#10' constructor Create(aItemClass: TCollectionItemCla'
|
|
+'ss); overload;'#13#10' function GetItems(aIndex: integer): %STRUCT_NAME%'
|
|
+';'#13#10' procedure SetItems(aIndex: integer; const Value: %STRUCT_NAME%'
|
|
+');'#13#10' public'#13#10' constructor Create; overload;'#13#10' func'
|
|
+'tion Add: %STRUCT_NAME%; reintroduce;'#13#10' // <%%% START ARRAYS_IS_FO'
|
|
+'UND %%%>'#13#10' procedure SaveToArray(anArray: %ARRAY_NAME%); overload;'
|
|
,#13#10' procedure LoadFromArray(anArray: %ARRAY_NAME%); overload;'#13#10
|
|
+' // <%%% END ARRAYS_IS_FOUND %%%>'#13#10' property Items[Index: integ'
|
|
+'er]:%STRUCT_NAME% read GetItems write SetItems; 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 DOCUMENTATIO'
|
|
+'N %%%>'#13#10' %ARRAY_NAME%_%ARRAY_TYPE% = array of %ARRAY_TYPE%;'#13#10' '
|
|
+' %ARRAY_NAME% = class(TROArray)'#13#10' private'#13#10' fCount: Integer'
|
|
+';'#13#10' fItems : %ARRAY_NAME%_%ARRAY_TYPE%;'#13#10' protected'#13#10
|
|
+' procedure Grow; virtual;'#13#10' function GetItems(aIndex: integer):'
|
|
+' %ARRAY_TYPE%;'#13#10' procedure SetItems(aIndex: integer; const Value: '
|
|
+'%ARRAY_TYPE%);'#13#10' function GetCount: integer; override;'#13#10' pu'
|
|
+'blic'#13#10' class function GetItemType: PTypeInfo; override;'#13#10' '
|
|
+' // <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' class function GetItem'
|
|
+'Class: TClass; override;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'
|
|
+#13#10' class function GetItemSize: integer; override;'#13#10#13#10' f'
|
|
+'unction GetItemRef(aIndex: integer): pointer; override;'#13#10' // <%%% '
|
|
+'START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' procedure SetItemRef(aIndex: in'
|
|
+'teger; Ref: pointer); override;'#13#10' // <%%% END IF_ARRAY_TYPE_COMPLE'
|
|
+'X %%%>'#13#10' procedure Clear; override;'#13#10' procedure Delete(aI'
|
|
+'ndex: integer); override;'#13#10' procedure Resize(ElementCount: integer'
|
|
+'); override;'#13#10#13#10' procedure Assign(iSource:TPersistent); overri'
|
|
+'de;'#13#10' procedure ReadComplex(ASerializer: TObject); override;'#13#10
|
|
+' procedure WriteComplex(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' fun'
|
|
+'ction Add(const Value: %ARRAY_TYPE%):integer; overload;'#13#10' // <%%% '
|
|
+'START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10' function GetIndex(const aPropert'
|
|
+'yName : 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 C'
|
|
+'ount : integer read GetCount;'#13#10' property Items[Index: integer]:%AR'
|
|
+'RAY_TYPE% read GetItems write SetItems; default;'#13#10' property InnerA'
|
|
+'rray: %ARRAY_NAME%_%ARRAY_TYPE% read fItems;'#13#10' end;'#13#10#13#10' /'
|
|
+'/ <%%% END ARRAYS %%%>'#13#10' { Exceptions }'#13#10' // <%%% START EXCEP'
|
|
+'TIONS %%%>'#13#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10' { Descr'
|
|
+'iption:'#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%: %FIE'
|
|
+'LD_TYPE%;'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10' public'#13#10
|
|
+' constructor Create(anExceptionMessage : string'#13#10' '
|
|
+' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' ; a%'
|
|
+'FIELD_NAME%: %FIELD_TYPE%'#13#10' // <%%% END ANCESTO'
|
|
+'R_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(ASerializer: TObject); override;'#13#10' procedure WriteEx'
|
|
+'ception(ASerializer: TObject); override;'#13#10' // <%%% END IF_HAS_FIEL'
|
|
+'DS %%%>'#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' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% START SERVICES %%%>'#13#10
|
|
+' { I%SERVICE_NAME% }'#13#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10
|
|
+' { Description:'#13#10' %CONTENT% }'#13#10' // <%%% END DOCUMENTATIO'
|
|
+'N %%%>'#13#10' I%SERVICE_NAME% = interface%SERVICE_ANCESTOR_NAME%'#13#10' '
|
|
+' [''%SERVICE_UID%'']'#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13
|
|
+#10' function %OPERATION_NAME%('#13#10' // <%%% START PARAM'
|
|
+'S %%%>'#13#10' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TY'
|
|
+'PE%;'#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' // <%%% EN'
|
|
+'D 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: IROMessage; aTransportChannel: IROTransportChannel): I%SERVICE_N'
|
|
+'AME%;'#13#10' end;'#13#10#13#10' { T%SERVICE_NAME%_Proxy }'#13#10' T%SER'
|
|
+'VICE_NAME%_Proxy = class(%SERVICE_PROXY_ANCESTOR_NAME%, I%SERVICE_NAME%)'#13
|
|
+#10' protected'#13#10' function __GetInterfaceName:string; override;'#13
|
|
+#10#13#10' // <%%% START FUNCTION_OPERATIONS %%%>'#13#10' function %OP'
|
|
+'ERATION_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 PA'
|
|
+'RAMS %%%>'#13#10' );'#13#10' // <%%% END PROCEDURE_OPERAT'
|
|
+'IONS %%%>'#13#10' end;'#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' %CO'
|
|
+'NTENT% }'#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_NAM'
|
|
+'E%('#13#10' // <%%% START PARAMS %%%>'#13#10' '
|
|
+' %PARAM_FRONT_MODIFIER% %PARAM_NAME%: %PARAM_TYPE%;'#13#10' '
|
|
+'// <%%% END PARAMS %%%>'#13#10' );'#13#10' // <%%% END OP'
|
|
+'ERATIONS %%%>'#13#10' end;'#13#10#13#10' { I%EVENT_SINK_NAME%_Writer }'#13
|
|
+#10' // <%%% START DOCUMENTATION %%%>'#13#10#13#10' { Description:'#13#10
|
|
+' %CONTENT% }'#13#10' // <%%% END DOCUMENTATION %%%>'#13#10' I%EVENT_'
|
|
+'SINK_NAME%_Writer = interface(I%EVENT_SINK_WRITER_ANCESTOR_NAME%)'#13#10' '
|
|
+' [''%EVENT_SINK_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'
|
|
+', uROSerializer, uRORes;'#13#10#13#10'// <%%% START EXCEPTIONS %%%>'#13#10
|
|
+'{ %EXCEPTION_NAME% }'#13#10'constructor %EXCEPTION_NAME%.Create(anException'
|
|
+'Message : string'#13#10' // <%%% START ANCESTOR_FIELDS %%%>'#13#10' ; a%F'
|
|
+'IELD_NAME%: %FIELD_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'begin'#13#10' '
|
|
+'inherited Create(anExceptionMessage'#13#10' // <%%% START'
|
|
+' ANCESTOR_FIELDS %%%>'#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_NAME%;'#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'end;'#13#10
|
|
+#13#10'// <%%% START IF_HAS_FIELDS %%%>'#13#10'procedure %EXCEPTION_NAME%.Re'
|
|
+'adException(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'begin'#13#10' if TROSerializer'
|
|
+'(ASerializer).RecordStrictOrder then begin'#13#10' // <%%% START IF_STRU'
|
|
+'CT_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_T'
|
|
+'YPE %%%>'#13#10' TROSerializer(ASerializer).ReadBinary(''%FIELD_NAME%'','
|
|
+' 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_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10
|
|
+' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIEL'
|
|
+'D_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''%FI'
|
|
+'ELD_NAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRE'
|
|
,'NCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' '
|
|
+' TROSerializer(ASerializer).ReadDateTime(''%FIELD_NAME%'', l_%FIELD_NAME%'
|
|
+');'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% ST'
|
|
+'ART IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDe'
|
|
+'cimal(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DE'
|
|
+'CIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' '
|
|
+' TROSerializer(ASerializer).ReadDouble(''%FIELD_NAME%'', ftDouble, l_%FIE'
|
|
+'LD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <'
|
|
+'%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).Rea'
|
|
+'dGuid(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GU'
|
|
+'ID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' T'
|
|
+'ROSerializer(ASerializer).ReadInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13
|
|
+#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE'
|
|
+'LD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadInteger(''%F'
|
|
+'IELD_NAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT'
|
|
+'EGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10
|
|
+' TROSerializer(ASerializer).ReadAnsiString(''%FIELD_NAME%'', l_%FIELD_NA'
|
|
+'ME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%'
|
|
+'%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer'
|
|
+').ReadUTF8String(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END '
|
|
+'IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYP'
|
|
+'E %%%>'#13#10' TROSerializer(ASerializer).ReadVariant(''%FIELD_NAME%'', '
|
|
+'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' '
|
|
+' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASe'
|
|
+'rializer).ReadWideString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <'
|
|
+'%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML'
|
|
+'_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadXml(''%FIELD_NAME%'', '
|
|
+'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' /'
|
|
+'/ <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer)'
|
|
+'.ReadArray(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %'
|
|
+'FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% EN'
|
|
+'D IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'
|
|
+#13#10' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_NAME%'', TypeI'
|
|
+'nfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TY'
|
|
+'PE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSe'
|
|
+'rializer(ASerializer).ReadStruct(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_N'
|
|
+'AME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'
|
|
+#13#10' // <%%% END IF_FIELD_STRUCT_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_BINAR'
|
|
+'Y_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadBinary(''%FIELD_NAME%'
|
|
+''', l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIE'
|
|
+'LD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' '
|
|
+'// <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializ'
|
|
+'er).ReadEnumerated(''%FIELD_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13
|
|
+#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_F'
|
|
+'IELD_CURRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDouble('''
|
|
+'%FIELD_NAME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CU'
|
|
+'RRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10
|
|
+' TROSerializer(ASerializer).ReadDateTime(''%FIELD_NAME%'', l_%FIELD_NAME'
|
|
+'%);'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% S'
|
|
+'TART IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadD'
|
|
+'ecimal(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_D'
|
|
+'ECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10
|
|
+' TROSerializer(ASerializer).ReadDouble(''%FIELD_NAME%'', ftDouble, l_%FI'
|
|
+'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // '
|
|
+'<%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).Re'
|
|
+'adGuid(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_G'
|
|
+'UID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' '
|
|
+'TROSerializer(ASerializer).ReadInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13
|
|
+#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE'
|
|
+'LD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadInteger(''%F'
|
|
+'IELD_NAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT'
|
|
,'EGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10
|
|
+' TROSerializer(ASerializer).ReadAnsiString(''%FIELD_NAME%'', l_%FIELD_NA'
|
|
+'ME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%'
|
|
+'%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer'
|
|
+').ReadUTF8String(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END '
|
|
+'IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYP'
|
|
+'E %%%>'#13#10' TROSerializer(ASerializer).ReadVariant(''%FIELD_NAME%'', '
|
|
+'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' '
|
|
+' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASe'
|
|
+'rializer).ReadWideString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <'
|
|
+'%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML'
|
|
+'_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadXml(''%FIELD_NAME%'', '
|
|
+'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' /'
|
|
+'/ <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer)'
|
|
+'.ReadArray(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %'
|
|
+'FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% EN'
|
|
+'D IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'
|
|
+#13#10' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_NAME%'', TypeI'
|
|
+'nfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TY'
|
|
+'PE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSe'
|
|
+'rializer(ASerializer).ReadStruct(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_N'
|
|
+'AME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'
|
|
+#13#10' // <%%% END IF_FIELD_STRUCT_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_NAME%'', l_%FIELD_NA'
|
|
+'ME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% S'
|
|
+'TART IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).Write'
|
|
+'Enumerated(''%FIELD_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' '
|
|
+' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_C'
|
|
+'URRENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDouble(''%FIEL'
|
|
+'D_NAME%'', 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_NAME%'', l_%FIELD_NAME%)'
|
|
+';'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% STA'
|
|
+'RT IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDe'
|
|
+'cimal(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DE'
|
|
+'CIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' '
|
|
+' TROSerializer(ASerializer).WriteDouble(''%FIELD_NAME%'', ftDouble, l_%FI'
|
|
+'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // '
|
|
+'<%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).Wr'
|
|
+'iteGuid(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_'
|
|
+'GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' '
|
|
+' TROSerializer(ASerializer).WriteInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'
|
|
+#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_'
|
|
+'FIELD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInteger('
|
|
+'''%FIELD_NAME%'', otSLong, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD'
|
|
+'_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'
|
|
+#13#10' TROSerializer(ASerializer).WriteAnsiString(''%FIELD_NAME%'', l_%F'
|
|
+'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' '
|
|
+' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASer'
|
|
+'ializer).WriteUTF8String(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <'
|
|
+'%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VAR'
|
|
+'IANT_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteVariant(''%FIELD_'
|
|
+'NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'
|
|
+#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSeriali'
|
|
+'zer(ASerializer).WriteWideString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10
|
|
,' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_F'
|
|
+'IELD_XML_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteXml(''%FIELD_'
|
|
+'NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13
|
|
+#10' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASer'
|
|
+'ializer).WriteArray(''%FIELD_NAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10
|
|
+' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_'
|
|
+'ENUM_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteEnumerated(''%FIE'
|
|
+'LD_NAME%'', TypeInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END'
|
|
+' IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'
|
|
+#13#10' TROSerializer(ASerializer).WriteStruct(''%FIELD_NAME%'', l_%FIELD'
|
|
+'_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#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).WriteBinary(''%FIELD_NAME%'', l_%FIELD_NAME%'
|
|
+');'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13#10' // <%%% STAR'
|
|
+'T IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteEnu'
|
|
+'merated(''%FIELD_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' //'
|
|
+' <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURR'
|
|
+'ENCY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDouble(''%FIELD_N'
|
|
+'AME%'', ftCurr, l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_T'
|
|
+'YPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' TR'
|
|
+'OSerializer(ASerializer).WriteDateTime(''%FIELD_NAME%'', l_%FIELD_NAME%);'
|
|
+#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START '
|
|
+'IF_FIELD_DECIMAL_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDecim'
|
|
+'al(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIM'
|
|
+'AL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' '
|
|
+'TROSerializer(ASerializer).WriteDouble(''%FIELD_NAME%'', ftDouble, l_%FIELD'
|
|
+'_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%'
|
|
+'% START IF_FIELD_GUID_TYPE %%%>'#13#10' TROSerializer(ASerializer).Write'
|
|
+'Guid(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUI'
|
|
+'D_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TR'
|
|
+'OSerializer(ASerializer).WriteInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13
|
|
+#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIE'
|
|
+'LD_INTEGER_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInteger(''%'
|
|
+'FIELD_NAME%'', 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_NAME%'', l_%FIEL'
|
|
+'D_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' /'
|
|
+'/ <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' TROSerializer(ASerial'
|
|
+'izer).WriteUTF8String(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%%'
|
|
+' END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIAN'
|
|
+'T_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteVariant(''%FIELD_NAM'
|
|
+'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13
|
|
+#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer'
|
|
+'(ASerializer).WriteWideString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' '
|
|
+' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIEL'
|
|
+'D_XML_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteXml(''%FIELD_NAM'
|
|
+'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10
|
|
+' // <%%% START IF_FIELD_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerial'
|
|
+'izer).WriteArray(''%FIELD_NAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' '
|
|
+' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_EN'
|
|
+'UM_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteEnumerated(''%FIELD'
|
|
+'_NAME%'', TypeInfo(%FIELD_TYPE%), l_%FIELD_NAME%);'#13#10' // <%%% END I'
|
|
+'F_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'
|
|
+#13#10' TROSerializer(ASerializer).WriteStruct(''%FIELD_NAME%'', l_%FIELD'
|
|
+'_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_STRUCT_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'{ %ARRAY_NAME% }'#13#10#13#10'pr'
|
|
+'ocedure %ARRAY_NAME%.Assign(iSource: TPersistent);'#13#10'var lSource:%ARRA'
|
|
+'Y_NAME%;'#13#10' i:integer;'#13#10'begin'#13#10' if (iSource is %ARRAY_'
|
|
+'NAME%) then begin'#13#10' lSource := %ARRAY_NAME%(iSource);'#13#10' C'
|
|
+'lear();'#13#10' Resize(lSource.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_A'
|
|
+'RRAY_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' end;'#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%.GetItemType: 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%.GetIte'
|
|
+'mSize: integer;'#13#10'begin'#13#10' result := SizeOf(%ARRAY_TYPE%);'#13#10
|
|
+'end;'#13#10#13#10'function %ARRAY_NAME%.GetItems(aIndex: integer): %ARRAY_T'
|
|
+'YPE%;'#13#10'begin'#13#10' if (aIndex < 0) or (aIndex >= Count) then Raise'
|
|
+'Error(err_ArrayIndexOutOfBounds,[aIndex]);'#13#10' result := fItems[aIndex'
|
|
+'];'#13#10'end;'#13#10#13#10'function %ARRAY_NAME%.GetItemRef(aIndex: intege'
|
|
+'r): pointer;'#13#10'begin'#13#10' if (aIndex < 0) or (aIndex >= Count) the'
|
|
+'n RaiseError(err_ArrayIndexOutOfBounds,[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_SIMPL'
|
|
+'E %%%>'#13#10' result := @fItems[aIndex];'#13#10' // <%%% END IF_ARRAY_TY'
|
|
+'PE_SIMPLE %%%>'#13#10'end;'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX'
|
|
+' %%%>'#13#10'procedure %ARRAY_NAME%.SetItemRef(aIndex: integer; Ref: pointe'
|
|
+'r);'#13#10'begin'#13#10' if (aIndex < 0) or (aIndex >= Count) then RaiseEr'
|
|
+'ror(err_ArrayIndexOutOfBounds,[aIndex]);'#13#10' if Ref <> fItems[aIndex] '
|
|
+'then begin'#13#10' if fItems[aIndex] <> 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_COMPLEX %%%>'#13#10'var i: integer;'#13#10'// <'
|
|
+'%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'begin'#13#10' // <%%% START IF_A'
|
|
+'RRAY_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(err_InvalidIndex, [aIndex]);'#13#10#13#10' '
|
|
+'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' fItems[aIndex].Free();'#13
|
|
+#10' // <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' '#13#10' if (aIndex<C'
|
|
+'ount-1) then'#13#10' for i := aIndex to Count-2 do fItems[i] := fItems[i'
|
|
+'+1];'#13#10#13#10' SetLength(fItems, Count-1);'#13#10' Dec(FCount);'#13#10
|
|
+'end;'#13#10#13#10'procedure %ARRAY_NAME%.SetItems(aIndex: integer; const Va'
|
|
+'lue: %ARRAY_TYPE%);'#13#10'begin'#13#10' if (aIndex < 0) or (aIndex >= Cou'
|
|
+'nt) then RaiseError(err_ArrayIndexOutOfBounds,[aIndex]);'#13#10' // <%%% S'
|
|
+'TART IF_ARRAY_TYPE_COMPLEX %%%> '#13#10' if fItems[aIndex] <> Value then '
|
|
+'begin'#13#10' fItems[aIndex].Free; '#13#10' fItems[aIndex] := Valu'
|
|
+'e;'#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_ARRAY_TYPE_SIMPLE %%%> '#13#10'end;'#13#10#13#10
|
|
+'procedure %ARRAY_NAME%.Resize(ElementCount: integer);'#13#10'// <%%% START '
|
|
+'IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'var i: Integer;'#13#10'// <%%% END IF_ARR'
|
|
+'AY_TYPE_COMPLEX %%%>'#13#10'begin'#13#10' if fCount = ElementCount then Ex'
|
|
+'it;'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' for i := FCoun'
|
|
+'t -1 downto ElementCount do'#13#10' FItems[i].Free;'#13#10'// <%%% END I'
|
|
+'F_ARRAY_TYPE_COMPLEX %%%>'#13#10' SetLength(fItems, ElementCount);'#13#10
|
|
+'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' for i := FCount to Elemen'
|
|
+'tCount -1 do'#13#10' FItems[i] := %ARRAY_TYPE%.Create;'#13#10'// <%%% EN'
|
|
+'D IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' FCount := ElementCount;'#13#10'end;'
|
|
+#13#10#13#10'function %ARRAY_NAME%.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, Capacity: Integer;'#13#10'begin'#13#10' Capacity :='
|
|
+' Length(fItems);'#13#10' if Capacity > 64 then'#13#10' Delta := Capacit'
|
|
+'y 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, Capa'
|
|
+'city + Delta);'#13#10'end;'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX'
|
|
,' %%%>'#13#10'function %ARRAY_NAME%.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%): integer;'#13#10'begin'#13#10' Result := Count;'
|
|
+#13#10' if Length(fItems) = Result then'#13#10' Grow;'#13#10' fItems[re'
|
|
+'sult] := Value;'#13#10' Inc(fCount);'#13#10'end;'#13#10#13#10'// <%%% STAR'
|
|
+'T IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'function %ARRAY_NAME%.GetIndex(const aPr'
|
|
+'opertyName : string;'#13#10' const aPropertyValue : Variant; StartFrom : i'
|
|
+'nteger;'#13#10' Options : TROSearchOptions) : 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'v'
|
|
+'ar'#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) d'
|
|
+'o'#13#10' // <%%% START IF_ARRAY_BINARY_TYPE %%%>'#13#10' ReadBin'
|
|
+'ary(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10' '
|
|
+' // <%%% END IF_ARRAY_BINARY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_'
|
|
+'BOOLEAN_TYPE %%%>'#13#10' ReadEnumerated(GetArrayElementName(GetItemTy'
|
|
+'pe, GetItemRef(i)), TypeInfo(boolean), lval, i);'#13#10' // <%%% END I'
|
|
+'F_ARRAY_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_CURRENCY_TYPE'
|
|
+' %%%>'#13#10' ReadDouble(GetArrayElementName(GetItemType, GetItemRef(i'
|
|
+')), ftCurr, lval, i);'#13#10' // <%%% END IF_ARRAY_CURRENCY_TYPE %%%>'
|
|
+#13#10' // <%%% START IF_ARRAY_DATETIME_TYPE %%%>'#13#10' ReadDate'
|
|
+'Time(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10' '
|
|
+' // <%%% END IF_ARRAY_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_ARR'
|
|
+'AY_DECIMAL_TYPE %%%>'#13#10' ReadDecimal(GetArrayElementName(GetItemTy'
|
|
+'pe, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_DECIMAL_TYP'
|
|
+'E %%%>'#13#10' // <%%% START IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' Re'
|
|
+'adDouble(GetArrayElementName(GetItemType, GetItemRef(i)), ftDouble, lval, i'
|
|
+');'#13#10' // <%%% END IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' // <%%% '
|
|
+'START IF_ARRAY_GUID_TYPE %%%>'#13#10' ReadGuid(GetArrayElementName(Get'
|
|
+'ItemType, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_GUID_'
|
|
+'TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INT64_TYPE %%%>'#13#10' '
|
|
+'ReadInt64(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10
|
|
+' // <%%% END IF_ARRAY_INT64_TYPE %%%>'#13#10' // <%%% START IF_AR'
|
|
+'RAY_INTEGER_TYPE %%%>'#13#10' ReadInteger(GetArrayElementName(GetItemT'
|
|
+'ype, GetItemRef(i)), otSLong, lval, i);'#13#10' // <%%% END IF_ARRAY_I'
|
|
+'NTEGER_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ANSISTRING_TYPE %%%>'
|
|
+#13#10' ReadUTF8String(GetArrayElementName(GetItemType, GetItemRef(i)),'
|
|
+' lval, i);'#13#10' // <%%% END IF_ARRAY_ANSISTRING_TYPE %%%>'#13#10' '
|
|
+' // <%%% START IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' ReadUTF8String'
|
|
+'(GetArrayElementName(GetItemType, GetItemRef(i)), lval, i);'#13#10' //'
|
|
+' <%%% END IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY'
|
|
+'_VARIANT_TYPE %%%>'#13#10' ReadVariant(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_WIDESTRING_TYPE %%%>'#13#10' // <%%% '
|
|
+'START IF_ARRAY_XML_TYPE %%%>'#13#10' ReadXml(GetArrayElementName(GetIt'
|
|
+'emType, GetItemRef(i)), lval, i);'#13#10' // <%%% END IF_ARRAY_XML_TYP'
|
|
+'E %%%>'#13#10' // <%%% START IF_ARRAY_ARRAY_TYPE %%%>'#13#10' Rea'
|
|
+'dArray(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(GetArrayElementN'
|
|
+'ame(GetItemType, GetItemRef(i)), TypeInfo(%ARRAY_TYPE%), lval, i);'#13#10' '
|
|
+' // <%%% END IF_ARRAY_ENUM_TYPE %%%>'#13#10' // <%%% START IF_ARRA'
|
|
+'Y_STRUCT_TYPE %%%>'#13#10' ReadStruct(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%.WriteComplex(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_ARR'
|
|
+'AY_BINARY_TYPE %%%>'#13#10' WriteBinary(GetArrayElementName(GetItemTyp'
|
|
+'e, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_BINARY_'
|
|
+'TYPE %%%>'#13#10' // <%%% START IF_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' Writ'
|
|
+'eDouble(GetArrayElementName(GetItemType, GetItemRef(i)), ftCurr, fItems[i],'
|
|
+' i);'#13#10' // <%%% END IF_ARRAY_CURRENCY_TYPE %%%>'#13#10' // <'
|
|
+'%%% START IF_ARRAY_DATETIME_TYPE %%%>'#13#10' WriteDateTime(GetArrayEl'
|
|
+'ementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% '
|
|
+'END IF_ARRAY_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_DECIMAL'
|
|
+'_TYPE %%%>'#13#10' WriteDecimal(GetArrayElementName(GetItemType, GetIt'
|
|
+'emRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_DECIMAL_TYPE %%'
|
|
+'%>'#13#10' // <%%% START IF_ARRAY_DOUBLE_TYPE %%%>'#13#10' WriteD'
|
|
+'ouble(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_ARR'
|
|
+'AY_GUID_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_INT64_TYPE %%%>'#13#10
|
|
+' WriteInt64(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i]'
|
|
+', i);'#13#10' // <%%% END IF_ARRAY_INT64_TYPE %%%>'#13#10' // <%%'
|
|
+'% START IF_ARRAY_INTEGER_TYPE %%%>'#13#10' WriteInteger(GetArrayElemen'
|
|
+'tName(GetItemType, GetItemRef(i)), otSLong, fItems[i], i);'#13#10' // '
|
|
+'<%%% END IF_ARRAY_INTEGER_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ANS'
|
|
+'ISTRING_TYPE %%%>'#13#10' WriteUTF8String(GetArrayElementName(GetItemT'
|
|
+'ype, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_ANSIS'
|
|
+'TRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_UTF8STRING_TYPE %%%>'#13
|
|
+#10' WriteUTF8String(GetArrayElementName(GetItemType, GetItemRef(i)), f'
|
|
+'Items[i], i);'#13#10' // <%%% END IF_ARRAY_UTF8STRING_TYPE %%%>'#13#10
|
|
+' // <%%% START IF_ARRAY_VARIANT_TYPE %%%>'#13#10' WriteVariant(Ge'
|
|
+'tArrayElementName(GetItemType, GetItemRef(i)), fItems[i], i);'#13#10' '
|
|
+'// <%%% END IF_ARRAY_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_'
|
|
+'WIDESTRING_TYPE %%%>'#13#10' WriteWideString(GetArrayElementName(GetIt'
|
|
+'emType, GetItemRef(i)), fItems[i], i);'#13#10' // <%%% END IF_ARRAY_WI'
|
|
+'DESTRING_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_XML_TYPE %%%>'#13#10
|
|
+' WriteXml(GetArrayElementName(GetItemType, GetItemRef(i)), fItems[i], '
|
|
+'i);'#13#10' // <%%% END IF_ARRAY_XML_TYPE %%%>'#13#10' // <%%% ST'
|
|
+'ART IF_ARRAY_ARRAY_TYPE %%%>'#13#10' WriteArray(GetArrayElementName(Ge'
|
|
+'tItemType, GetItemRef(i)), fItems[i], , %ARRAY_TYPE%, i);'#13#10' // <'
|
|
+'%%% END IF_ARRAY_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_ENUM_T'
|
|
+'YPE %%%>'#13#10' WriteEnumerated(GetArrayElementName(GetItemType, GetI'
|
|
+'temRef(i)), TypeInfo(%ARRAY_TYPE%), fItems[i], i);'#13#10' // <%%% END'
|
|
+' IF_ARRAY_ENUM_TYPE %%%>'#13#10' // <%%% START IF_ARRAY_STRUCT_TYPE %%'
|
|
+'%>'#13#10' WriteStruct(GetArrayElementName(GetItemType, GetItemRef(i))'
|
|
+', fItems[i], %ARRAY_TYPE%, i);'#13#10' // <%%% END IF_ARRAY_STRUCT_TYP'
|
|
+'E %%%>'#13#10'end;'#13#10#13#10'// <%%% END ARRAYS %%%>'#13#10'// <%%% STAR'
|
|
+'T STRUCTS %%%>'#13#10'{ %STRUCT_NAME% }'#13#10#13#10'procedure %STRUCT_NAME'
|
|
+'%.Assign(iSource: TPersistent);'#13#10'// <%%% START IF_HAS_FIELDS %%%>'#13
|
|
+#10'var'#13#10' lSource: %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_FI'
|
|
+'ELDS %%%>'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%% '
|
|
+'START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FIELD_NAME% := lSource.%FIELD_N'
|
|
+'AME%;'#13#10' // <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#13#10' // <%%% S'
|
|
+'TART IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_NOT_AUTO_CREATE'
|
|
+'_FIELDS %%%>'#13#10' if Assigned(f%FIELD_NAME%) then begin'#13#10' '
|
|
+'if Assigned(lSource.%FIELD_NAME%) then'#13#10' %FIELD_NAME%.Assign(l'
|
|
+'Source.%FIELD_NAME%)'#13#10' else'#13#10' FreeAndNil(f%FIELD_NA'
|
|
+'ME%);'#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' // <%%% E'
|
|
+'ND FIELDS_NO_STRIP %%%>'#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_NAM'
|
|
+'E%.Create(aCollection : TCollection);'#13#10'begin'#13#10' inherited Creat'
|
|
,'e(aCollection);'#13#10' // <%%% START FIELDS_NO_STRIP %%%>'#13#10' // <%%'
|
|
+'% START IF_FIELD_HAS_DEFAULT_VALUE %%%>'#13#10' // <%%% START IF_FIELD_BOO'
|
|
+'LEAN_TYPE %%%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% '
|
|
+'END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYP'
|
|
+'E %%%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_F'
|
|
+'IELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'
|
|
+#13#10' f%FIELD_NAME% := StrToDateTimeDef(''%DEFAULT_VALUE%'',0);'#13#10' '
|
|
+'// <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DEC'
|
|
+'IMAL_TYPE %%%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% '
|
|
+'END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE '
|
|
+'%%%>'#13#10' f%FIELD_NAME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIE'
|
|
+'LD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' '
|
|
+' f%FIELD_NAME% := ''%DEFAULT_VALUE%'';'#13#10' // <%%% END IF_FIELD_GUID_T'
|
|
+'YPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' f%FIELD_N'
|
|
+'AME% := %DEFAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_INT64_TYPE %%%>'#13
|
|
+#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' f%FIELD_NAME% := %DE'
|
|
+'FAULT_VALUE%;'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <'
|
|
+'%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAUL'
|
|
+'T_VALUE%'';'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // '
|
|
+'<%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAU'
|
|
+'LT_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_WIDESTRING_TYPE %%%>'#13#10' f%FIELD_NAME% := ''%DEFAULT_V'
|
|
+'ALUE%'';'#13#10' // <%%% END IF_FIELD_WIDESTRING_TYPE %%%>'#13#10' // <%%'
|
|
+'% END IF_FIELD_HAS_DEFAULT_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' FDestroyin'
|
|
+'g := 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_STRIP %%%>'#13#10'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'
|
|
+#13#10'function %STRUCT_NAME%.Get%FIELD_NAME%: %FIELD_TYPE%;'#13#10'begin'#13
|
|
+#10' // <%%% START IF_AUTO_CREATE_FIELDS %%%>'#13#10' if not Assigned(f%FI'
|
|
+'ELD_NAME%) and not 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: TObjec'
|
|
+'t);'#13#10'var'#13#10' // <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#13#10' '
|
|
+' l_%FIELD_NAME%: %FIELD_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' TROSerializ'
|
|
+'er(ASerializer).ReadBinary(''%FIELD_NAME%'', 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_TYP'
|
|
+'E %%%>'#13#10' TROSerializer(ASerializer).ReadEnumerated(''%FIELD_NAME%'
|
|
+''', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOO'
|
|
+'LEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10
|
|
+' TROSerializer(ASerializer).ReadDouble(''%FIELD_NAME%'', ftCurr, l_%FIEL'
|
|
+'D_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // '
|
|
+'<%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer'
|
|
+').ReadDateTime(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF'
|
|
+'_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%'
|
|
+'%>'#13#10' TROSerializer(ASerializer).ReadDecimal(''%FIELD_NAME%'', l_%F'
|
|
+'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' /'
|
|
+'/ <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer'
|
|
+').ReadDouble(''%FIELD_NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%'
|
|
+'% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE'
|
|
+' %%%>'#13#10' TROSerializer(ASerializer).ReadGuid(''%FIELD_NAME%'', l_%F'
|
|
+'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <'
|
|
+'%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).Re'
|
|
,'adInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_'
|
|
+'INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10
|
|
+' TROSerializer(ASerializer).ReadInteger(''%FIELD_NAME%'', otSLong, l_%FI'
|
|
+'ELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' //'
|
|
+' <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASeriali'
|
|
+'zer).ReadAnsiString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% E'
|
|
+'ND IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRI'
|
|
+'NG_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadUTF8String(''%FIELD_'
|
|
+'NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %'
|
|
+'%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSeria'
|
|
+'lizer(ASerializer).ReadVariant(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' '
|
|
+' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_'
|
|
+'WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadWideString('
|
|
+'''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRI'
|
|
+'NG_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TRO'
|
|
+'Serializer(ASerializer).ReadXml(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' '
|
|
+' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARR'
|
|
+'AY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadArray(''%FIELD_NAME%'
|
|
+''', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIELD_N'
|
|
+'AME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%'
|
|
+'>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerializer'
|
|
+'(ASerializer).ReadEnumerated(''%FIELD_NAME%'', TypeInfo(%FIELD_TYPE%), l_%F'
|
|
+'IELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <'
|
|
+'%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializer).R'
|
|
+'eadStruct(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %F'
|
|
+'IELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END'
|
|
+' IF_FIELD_STRUCT_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(ASerializer).ReadBinary(''%FIELD_NAME%'', 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_NAME%'', TypeInfo(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END I'
|
|
+'F_FIELD_BOOLEAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %'
|
|
+'%%>'#13#10' TROSerializer(ASerializer).ReadDouble(''%FIELD_NAME%'', 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_NAME%'', l_%FIELD_NAME%);'#13#10' // <'
|
|
+'%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIM'
|
|
+'AL_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadDecimal(''%FIELD_NAM'
|
|
+'E%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13
|
|
+#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASe'
|
|
+'rializer).ReadDouble(''%FIELD_NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' '
|
|
+' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_G'
|
|
+'UID_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadGuid(''%FIELD_NAME%'
|
|
+''', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10
|
|
+' // <%%% START IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerial'
|
|
+'izer).ReadInt64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END I'
|
|
+'F_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'
|
|
+#13#10' TROSerializer(ASerializer).ReadInteger(''%FIELD_NAME%'', otSLong,'
|
|
+' l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10
|
|
+' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(AS'
|
|
+'erializer).ReadAnsiString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // '
|
|
+'<%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UT'
|
|
+'F8STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadUTF8String(''%'
|
|
+'FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_'
|
|
+'TYPE %%%>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TR'
|
|
+'OSerializer(ASerializer).ReadVariant(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13
|
|
+#10' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_F'
|
|
+'IELD_WIDESTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadWideStr'
|
|
+'ing(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDE'
|
|
+'STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' '
|
|
,' TROSerializer(ASerializer).ReadXml(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13
|
|
+#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD'
|
|
+'_ARRAY_TYPE %%%>'#13#10' TROSerializer(ASerializer).ReadArray(''%FIELD_N'
|
|
+'AME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' if %FIELD_NAME% <> l_%FIE'
|
|
+'LD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE'
|
|
+' %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerial'
|
|
+'izer(ASerializer).ReadEnumerated(''%FIELD_NAME%'', TypeInfo(%FIELD_TYPE%), '
|
|
+'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' '
|
|
+'// <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerialize'
|
|
+'r).ReadStruct(''%FIELD_NAME%'', %FIELD_TYPE%, l_%FIELD_NAME%);'#13#10' i'
|
|
+'f %FIELD_NAME% <> l_%FIELD_NAME% then %FIELD_NAME%.Free;'#13#10' // <%%%'
|
|
+' END IF_FIELD_STRUCT_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_%F'
|
|
+'IELD_NAME%: %FIELD_TYPE%;'#13#10' // <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'
|
|
+#13#10'begin'#13#10' if TROSerializer(ASerializer).RecordStrictOrder then b'
|
|
+'egin'#13#10' // <%%% START IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' inheri'
|
|
+'ted;'#13#10' // <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' TROSeria'
|
|
+'lizer(ASerializer).ChangeClass(%STRUCT_NAME%);'#13#10' // <%%% START FIE'
|
|
+'LDS_NO_STRIP %%%>'#13#10' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' // '
|
|
+'<%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' TROSerializer(ASerializer).'
|
|
+'WriteBinary(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FI'
|
|
+'ELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13
|
|
+#10' TROSerializer(ASerializer).WriteEnumerated(''%FIELD_NAME%'', TypeInf'
|
|
+'o(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %'
|
|
+'%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROSeri'
|
|
+'alizer(ASerializer).WriteDouble(''%FIELD_NAME%'', ftCurr, l_%FIELD_NAME%);'
|
|
+#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% START '
|
|
+'IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDate'
|
|
+'Time(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DAT'
|
|
+'ETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13#10
|
|
+' TROSerializer(ASerializer).WriteDecimal(''%FIELD_NAME%'', l_%FIELD_NAME'
|
|
+'%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% ST'
|
|
+'ART IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteDo'
|
|
+'uble(''%FIELD_NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END IF'
|
|
+'_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13
|
|
+#10' TROSerializer(ASerializer).WriteGuid(''%FIELD_NAME%'', l_%FIELD_NAME'
|
|
+'%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START'
|
|
+' IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInt64('
|
|
+'''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TY'
|
|
+'PE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' TROS'
|
|
+'erializer(ASerializer).WriteInteger(''%FIELD_NAME%'', otSLong, l_%FIELD_NAM'
|
|
+'E%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%% S'
|
|
+'TART IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).Wr'
|
|
+'iteAnsiString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_'
|
|
+'FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_TYP'
|
|
+'E %%%>'#13#10' TROSerializer(ASerializer).WriteUTF8String(''%FIELD_NAME%'
|
|
+''', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'
|
|
+#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSerializer'
|
|
+'(ASerializer).WriteVariant(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' //'
|
|
+' <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDE'
|
|
+'STRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteWideString(''%F'
|
|
+'IELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING_T'
|
|
+'YPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TROSeri'
|
|
+'alizer(ASerializer).WriteXml(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' '
|
|
+'// <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ARRAY_'
|
|
+'TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteArray(''%FIELD_NAME%'''
|
|
+', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE'
|
|
+' %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSerial'
|
|
+'izer(ASerializer).WriteEnumerated(''%FIELD_NAME%'', TypeInfo(%FIELD_TYPE%),'
|
|
+' l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' '
|
|
+' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASerializ'
|
|
+'er).WriteStruct(''%FIELD_NAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' '
|
|
,' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% END FIELDS_NO_STR'
|
|
+'IP %%%>'#13#10' end'#13#10' else begin'#13#10' // <%%% START ENTIRE_HI'
|
|
+'ERARCHY_FIELDS %%%>'#13#10' l_%FIELD_NAME% := %FIELD_NAME%;'#13#10' /'
|
|
+'/ <%%% START IF_FIELD_BINARY_TYPE %%%>'#13#10' TROSerializer(ASerializer'
|
|
+').WriteBinary(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_'
|
|
+'FIELD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'
|
|
+#13#10' TROSerializer(ASerializer).WriteEnumerated(''%FIELD_NAME%'', Type'
|
|
+'Info(boolean), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYP'
|
|
+'E %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' TROS'
|
|
+'erializer(ASerializer).WriteDouble(''%FIELD_NAME%'', ftCurr, l_%FIELD_NAME%'
|
|
+');'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% ST'
|
|
+'ART IF_FIELD_DATETIME_TYPE %%%>'#13#10' TROSerializer(ASerializer).Write'
|
|
+'DateTime(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD'
|
|
+'_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYPE %%%>'#13
|
|
+#10' TROSerializer(ASerializer).WriteDecimal(''%FIELD_NAME%'', l_%FIELD_N'
|
|
+'AME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%%'
|
|
+' START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' TROSerializer(ASerializer).Writ'
|
|
+'eDouble(''%FIELD_NAME%'', ftDouble, l_%FIELD_NAME%);'#13#10' // <%%% END'
|
|
+' IF_FIELD_DOUBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'
|
|
+#13#10' TROSerializer(ASerializer).WriteGuid(''%FIELD_NAME%'', l_%FIELD_N'
|
|
+'AME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% ST'
|
|
+'ART IF_FIELD_INT64_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteInt'
|
|
+'64(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64'
|
|
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' T'
|
|
+'ROSerializer(ASerializer).WriteInteger(''%FIELD_NAME%'', otSLong, l_%FIELD_'
|
|
+'NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'#13#10' // <%%'
|
|
+'% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer)'
|
|
+'.WriteAnsiString(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END '
|
|
+'IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_UTF8STRING_'
|
|
+'TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteUTF8String(''%FIELD_NA'
|
|
+'ME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%'
|
|
+'>'#13#10' // <%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' TROSeriali'
|
|
+'zer(ASerializer).WriteVariant(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' '
|
|
+' // <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_W'
|
|
+'IDESTRING_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteWideString('
|
|
+'''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRI'
|
|
+'NG_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' TRO'
|
|
+'Serializer(ASerializer).WriteXml(''%FIELD_NAME%'', l_%FIELD_NAME%);'#13#10
|
|
+' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_AR'
|
|
+'RAY_TYPE %%%>'#13#10' TROSerializer(ASerializer).WriteArray(''%FIELD_NAM'
|
|
+'E%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10' // <%%% END IF_FIELD_ARRAY_'
|
|
+'TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13#10' TROSe'
|
|
+'rializer(ASerializer).WriteEnumerated(''%FIELD_NAME%'', TypeInfo(%FIELD_TYP'
|
|
+'E%), l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10
|
|
+' // <%%% START IF_FIELD_STRUCT_TYPE %%%>'#13#10' TROSerializer(ASeria'
|
|
+'lizer).WriteStruct(''%FIELD_NAME%'', l_%FIELD_NAME%, %FIELD_TYPE%);'#13#10
|
|
+' // <%%% END IF_FIELD_STRUCT_TYPE %%%>'#13#10' // <%%% END ENTIRE_HIE'
|
|
+'RARCHY_FIELDS %%%>'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% END IF_HA'
|
|
+'S_FIELDS %%%>'#13#10'{ %STRUCT_COLLECTION_NAME% }'#13#10'constructor %STRUC'
|
|
+'T_COLLECTION_NAME%.Create;'#13#10'begin'#13#10' inherited Create(%STRUCT_N'
|
|
+'AME%);'#13#10'end;'#13#10#13#10'constructor %STRUCT_COLLECTION_NAME%.Create'
|
|
+'(aItemClass: TCollectionItemClass);'#13#10'begin'#13#10' inherited Create('
|
|
+'aItemClass);'#13#10'end;'#13#10#13#10'function %STRUCT_COLLECTION_NAME%.Add'
|
|
+': %STRUCT_NAME%;'#13#10'begin'#13#10' result := %STRUCT_NAME%(inherited Ad'
|
|
+'d);'#13#10'end;'#13#10#13#10'function %STRUCT_COLLECTION_NAME%.GetItems(aIn'
|
|
+'dex: 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%.LoadFromArray(anArray'
|
|
+': %ARRAY_NAME%);'#13#10'var'#13#10' i : integer;'#13#10'begin'#13#10' Cle'
|
|
+'ar;'#13#10' for i := 0 to (anArray.Count-1) do'#13#10' Add.Assign(anArr'
|
|
+'ay[i]);'#13#10'end;'#13#10#13#10'procedure %STRUCT_COLLECTION_NAME%.SaveToA'
|
|
+'rray(anArray: %ARRAY_NAME%);'#13#10'var'#13#10' i : integer;'#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_NAM'
|
|
+'E%.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_NAME%.Create(co'
|
|
+'nst aMessage: IROMessage; aTransportChannel: IROTransportChannel): I%SERVIC'
|
|
+'E_NAME%;'#13#10'begin'#13#10' result := T%SERVICE_NAME%_Proxy.Create(aMess'
|
|
+'age, aTransportChannel);'#13#10'end;'#13#10#13#10'{ T%SERVICE_NAME%_Proxy }'
|
|
+#13#10#13#10'function T%SERVICE_NAME%_Proxy.__GetInterfaceName:string;'#13#10
|
|
+'begin'#13#10' result := ''%SERVICE_NAME%'';'#13#10'end;'#13#10#13#10'// <%'
|
|
+'%% START FUNCTION_OPERATIONS %%%>'#13#10'function T%SERVICE_NAME%_Proxy.%OP'
|
|
+'ERATION_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_PA'
|
|
+'RAM_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' try'#13#10' __Message.Initia'
|
|
+'lizeRequestMessage(__TransportChannel, ''%LIBRARY_NAME%'', __InterfaceName,'
|
|
+' ''%OPERATION_NAME%'');'#13#10' // <%%% START IN_PARAMS_NO_STRIP %%%>'#13
|
|
+#10' __Message.Write(''%PARAM_NAME%'', TypeInfo(%PARAM_TYPE%), %PARAM_NAM'
|
|
+'E%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END IN_PARAMS_NO_STRIP %%%>'#13
|
|
+#10' __Message.Finalize;'#13#10#13#10' __TransportChannel.Dispatch(__M'
|
|
+'essage);'#13#10#13#10' __Message.Read(''Result'', TypeInfo(%OPERATION_RE'
|
|
+'SULT%), result, [%OPERATION_RESULT_ATTRIBUTE%]);'#13#10' // <%%% START O'
|
|
+'UT_PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInf'
|
|
+'o(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END'
|
|
+' OUT_PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' __Message.FreeStream;'
|
|
+#13#10' end'#13#10'end;'#13#10#13#10'// <%%% END FUNCTION_OPERATIONS %%%>'
|
|
+#13#10'// <%%% START PROCEDURE_OPERATIONS %%%>'#13#10'procedure T%SERVICE_NA'
|
|
+'ME%_Proxy.%OPERATION_NAME%('#13#10' // <%%% START 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' // <%%% START IF_PARAM_TYPE'
|
|
+'_COMPLEX %%%>'#13#10' %PARAM_NAME% := nil;'#13#10' // <%%% END IF_PARAM_T'
|
|
+'YPE_COMPLEX %%%>'#13#10' // <%%% END OUT_PARAMS_NO_STRIP %%%>'#13#10' try'
|
|
+#13#10' __Message.InitializeRequestMessage(__TransportChannel, ''%LIBRARY'
|
|
+'_NAME%'', __InterfaceName, ''%OPERATION_NAME%'');'#13#10' // <%%% START '
|
|
+'IN_PARAMS_NO_STRIP %%%>'#13#10' __Message.Write(''%PARAM_NAME%'', TypeIn'
|
|
+'fo(%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% EN'
|
|
+'D IN_PARAMS_NO_STRIP %%%>'#13#10' __Message.Finalize;'#13#10#13#10' _'
|
|
+'_TransportChannel.Dispatch(__Message);'#13#10#13#10' // <%%% START OUT_P'
|
|
+'ARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInfo(%P'
|
|
+'ARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END OUT'
|
|
+'_PARAMS_NO_STRIP %%%>'#13#10' finally'#13#10' __Message.FreeStream;'#13
|
|
+#10' end'#13#10'end;'#13#10#13#10'// <%%% END PROCEDURE_OPERATIONS %%%>'#13
|
|
+#10'// <%%% END SERVICES %%%>'#13#10'// <%%% START EVENT_SINKS %%%>'#13#10't'
|
|
+'ype'#13#10' { T%EVENT_SINK_NAME%_Writer }'#13#10' T%EVENT_SINK_NAME%_Writ'
|
|
+'er = class(T%EVENT_SINK_WRITER_ANCESTOR_NAME%, I%EVENT_SINK_NAME%_Writer)'
|
|
+#13#10' protected'#13#10' // <%%% START OPERATIONS %%%>'#13#10' proce'
|
|
+'dure %OPERATION_NAME%(const __Sender : TGUID'#13#10' // <%%%'
|
|
+' START PARAMS %%%>'#13#10' ; %PARAM_FRONT_MODIFIER% %PARAM_N'
|
|
+'AME%: %PARAM_TYPE%'#13#10' // <%%% END PARAMS %%%>'#13#10' '
|
|
+' );'#13#10' // <%%% END OPERATIONS %%%>'#13#10' end;'#13#10
|
|
+#13#10'// <%%% START OPERATIONS %%%>'#13#10'procedure T%EVENT_SINK_NAME%_Wri'
|
|
+'ter.%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'var __eventdata : Binary;'#13#10
|
|
+'begin'#13#10' __eventdata := Binary.Create;'#13#10' try'#13#10' __Mess'
|
|
+'age.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_NO_STRIP %%%>'#13#10' '
|
|
+' __Message.Finalize;'#13#10#13#10' __Message.WriteToStream(__eventdata'
|
|
+');'#13#10#13#10' Repository.StoreEventData(__Sender, __eventdata, Exclud'
|
|
+'eSender, ExcludeSessionList, SessionList.CommaText);'#13#10' finally'#13#10
|
|
+' __eventdata.Free;'#13#10' end;'#13#10'end;'#13#10#13#10'// <%%% END OP'
|
|
+'ERATIONS %%%>'#13#10'type'#13#10' { T%EVENT_SINK_NAME%_Invoker }'#13#10' '
|
|
+'T%EVENT_SINK_NAME%_Invoker = class(T%EVENT_SINK_INVOKER_ANCESTOR_NAME%)'#13
|
|
+#10' published'#13#10' // <%%% START OPERATIONS %%%>'#13#10' procedur'
|
|
+'e Invoke_%OPERATION_NAME%(__EventReceiver : TROEventReceiver; const __Messa'
|
|
+'ge : IROMessage; const __Target : IUnknown);'#13#10' // <%%% END OPERATI'
|
|
+'ONS %%%>'#13#10' end;'#13#10#13#10'// <%%% START OPERATIONS %%%>'#13#10'pr'
|
|
+'ocedure T%EVENT_SINK_NAME%_Invoker.Invoke_%OPERATION_NAME%(__EventReceiver '
|
|
+': TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown'
|
|
+');'#13#10'var'#13#10' // <%%% START PARAMS_NO_STRIP %%%>'#13#10' %PARAM_N'
|
|
+'AME%: %PARAM_TYPE%;'#13#10' // <%%% END PARAMS_NO_STRIP %%%>'#13#10' // <'
|
|
+'%%% START IF_HAS_COMPLEX_TYPE %%%>'#13#10' __lObjectDisposer: TROObjectDis'
|
|
+'poser;'#13#10' // <%%% END IF_HAS_COMPLEX_TYPE %%%>'#13#10' __%EVENT_SINK'
|
|
+'_NAME%Instance: I%EVENT_SINK_NAME%;'#13#10'begin'#13#10' // <%%% START PAR'
|
|
+'AMS_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' try'#13#10' // <%%% START'
|
|
+' PARAMS_NO_STRIP %%%>'#13#10' __Message.Read(''%PARAM_NAME%'', TypeInfo('
|
|
+'%PARAM_TYPE%), %PARAM_NAME%, [%PARAM_ATTRIBUTE%]);'#13#10' // <%%% END P'
|
|
+'ARAMS_NO_STRIP %%%>'#13#10#13#10' __%EVENT_SINK_NAME%Instance := (__Targ'
|
|
+'et as I%EVENT_SINK_NAME%);'#13#10' __%EVENT_SINK_NAME%Instance.%OPERATIO'
|
|
+'N_NAME%('#13#10' // <%%% START PARAMS %%%>'
|
|
+#13#10' %PARAM_NAME%,'#13#10' '
|
|
+' // <%%% END PARAMS %%%>'#13#10' '
|
|
+' );'#13#10#13#10' finally'#13#10' // <%%% START IF_HAS_COMPLEX'
|
|
+'_TYPE %%%>'#13#10' __lObjectDisposer := TROObjectDisposer.Create(__Event'
|
|
+'Receiver);'#13#10' try'#13#10' // <%%% START PARAMS_NO_STRIP %%%>'
|
|
+#13#10' // <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#13#10' __lObject'
|
|
+'Disposer.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_H'
|
|
+'AS_COMPLEX_TYPE %%%>'#13#10' end'#13#10'end;'#13#10#13#10'// <%%% END OPER'
|
|
+'ATIONS %%%>'#13#10'// <%%% END EVENT_SINKS %%%>'#13#10'initialization'#13#10
|
|
+' // <%%% START STRUCTS %%%>'#13#10' RegisterROClass(%STRUCT_NAME%);'#13#10
|
|
+' // <%%% END STRUCTS %%%>'#13#10' // <%%% START ARRAYS %%%>'#13#10' Regi'
|
|
+'sterROClass(%ARRAY_NAME%);'#13#10' // <%%% END ARRAYS %%%>'#13#10' // <%%'
|
|
+'% START EXCEPTIONS %%%>'#13#10' RegisterExceptionClass(%EXCEPTION_NAME%);'
|
|
+#13#10' // <%%% END EXCEPTIONS %%%>'#13#10' // <%%% START SERVICES %%%>'#13
|
|
+#10' RegisterProxyClass(I%SERVICE_NAME%_IID, T%SERVICE_NAME%_Proxy);'#13#10
|
|
+' // <%%% END SERVICES %%%> '#13#10' // <%%% START 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' UnregisterROCl'
|
|
+'ass(%STRUCT_NAME%);'#13#10' // <%%% END STRUCTS %%%>'#13#10' // <%%% STAR'
|
|
+'T ARRAYS %%%>'#13#10' UnregisterROClass(%ARRAY_NAME%);'#13#10' // <%%% EN'
|
|
+'D ARRAYS %%%>'#13#10' // <%%% START EXCEPTIONS %%%>'#13#10' UnregisterExc'
|
|
+'eptionClass(%EXCEPTION_NAME%);'#13#10' // <%%% END EXCEPTIONS %%%>'#13#10
|
|
+' // <%%% START SERVICES %%%>'#13#10' UnregisterProxyClass(I%SERVICE_NAME%'
|
|
+'_IID);'#13#10' // <%%% END SERVICES %%%>'#13#10' // <%%% START EVENT_SINK'
|
|
+'S %%%>'#13#10' UnregisterEventWriterClass(I%EVENT_SINK_NAME%_Writer);'#13
|
|
+#10' UnregisterEventInvokerClass(EID_%EVENT_SINK_NAME%);'#13#10' // <%%% E'
|
|
+'ND 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 <uROEventRepos'
|
|
+'itory.hpp>'#13#10'#include <uRORes.hpp>'#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<TROSerializer*>(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<TROSerializer*>(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' return &fItems[Index]'
|
|
+';'#13#10'}'#13#10#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'voi'
|
|
+'d __fastcall %ARRAY_NAME%::SetItemRef(const int Index, void* Ref)'#13#10'{'
|
|
+#13#10' if ((Index < 0) || (Index >= Count))'#13#10' {'#13#10' RaiseErr'
|
|
+'or(LoadResourceString(&_err_ArrayIndexOutOfBounds), ARRAYOFCONST((Index)));'
|
|
+#13#10' }'#13#10#13#10' if (Ref != fItems[Index])'#13#10' {'#13#10' de'
|
|
+'lete fItems[Index];'#13#10' fItems[Index] = reinterpret_cast<%ARRAY_TYPE'
|
|
+'%*>(Ref);'#13#10' }'#13#10'}'#13#10#13#10'// <%%% END IF_ARRAY_TYPE_COMPLE'
|
|
+'X %%%>'#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_COM'
|
|
+'PLEX %%%>'#13#10' fItems.set_length(0);'#13#10' fCount = 0;'#13#10'}'#13
|
|
+#10#13#10'void __fastcall %ARRAY_NAME%::Delete(const int Index)'#13#10'{'#13
|
|
+#10' if (Index >= Count)'#13#10' {'#13#10' RaiseError(LoadResourceStrin'
|
|
+'g(&_err_InvalidIndex), ARRAYOFCONST((Index)));'#13#10' }'#13#10#13#10' //'
|
|
+' <%%% START 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] = fItems[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 ElementCount)'#13#10'{'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'
|
|
+#13#10' int i;'#13#10' for(i = fCount -1; i >= ElementCount; --i)'#13#10' '
|
|
,' delete fItems[i];'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13#10' '
|
|
+' fItems.set_length(ElementCount);'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLE'
|
|
+'X %%%>'#13#10' for(i = fCount; i <= ElementCount -1; ++i)'#13#10' fItem'
|
|
+'s[i] = new %ARRAY_TYPE%();'#13#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#13
|
|
+#10' fCount = ElementCount;'#13#10'}'#13#10#13#10'// <%%% START IF_ARRAY_TY'
|
|
+'PE_COMPLEX %%%>'#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_COMP'
|
|
+'LEX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#13#10'int __fastc'
|
|
+'all %ARRAY_NAME%::Add(%ARRAY_TYPE%* Value)'#13#10'// <%%% END IF_ARRAY_TYPE'
|
|
+'_COMPLEX %%%>'#13#10'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#13#10'int __f'
|
|
+'astcall %ARRAY_NAME%::Add(%ARRAY_TYPE% Value)'#13#10'// <%%% END IF_ARRAY_T'
|
|
+'YPE_SIMPLE %%%>'#13#10'{'#13#10' int result = Count;'#13#10' if (fItems.L'
|
|
+'ength == result)'#13#10' Grow();'#13#10#13#10' fItems[result] = Value;'
|
|
+#13#10' fCount++;'#13#10' return result;'#13#10'}'#13#10'// <%%% END ARRAY'
|
|
+'S %%%>'#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' '
|
|
+' , %FIELD_TYPE% a%FIELD_NAME% '#13#10' // <%%% END IF_FI'
|
|
+'ELD_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_FIEL'
|
|
+'D_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 FIELDS_NO_'
|
|
+'STRIP %%%>'#13#10' ): %EXCEPTION_ANCESTOR_NAME%(anExcepti'
|
|
+'onMessage'#13#10' // <%%% START ANCESTOR_FIELDS %%%>'#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_NAME%;'
|
|
+#13#10' // <%%% END FIELDS_NO_STRIP %%%>'#13#10'}'#13#10#13#10'// <%%% STAR'
|
|
+'T IF_HAS_FIELDS %%%>'#13#10'void __fastcall %EXCEPTION_NAME%::ReadException'
|
|
+'(TObject* ASerializer)'#13#10'{'#13#10' if (dynamic_cast<TROSerializer*>(A'
|
|
+'Serializer)->RecordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRU'
|
|
+'CT_HAS_ANCESTOR %%%>'#13#10' inherited::ReadException(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<TROSerializer*>(ASerializer)->ReadBinary("%FI'
|
|
+'ELD_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<TRO'
|
|
+'Serializer*>(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<TROSeri'
|
|
+'alizer*>(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<TROSerializer*>(ASerial'
|
|
+'izer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% EN'
|
|
+'D IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMAL_TYP'
|
|
+'E %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadDecimal("%'
|
|
+'FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIMAL_TYP'
|
|
+'E %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' dynami'
|
|
+'c_cast<TROSerializer*>(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<TROSerializ'
|
|
,'er*>(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' //'
|
|
+' <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INT64_T'
|
|
+'YPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadInt64("%'
|
|
+'FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT64_TYPE '
|
|
+'%%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' dynamic'
|
|
+'_cast<TROSerializer*>(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<TROSe'
|
|
+'rializer*>(ASerializer)->ReadAnsiString("%FIELD_NAME%", &l_%FIELD_NAME%);'
|
|
+#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' // <%%% STAR'
|
|
+'T IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASe'
|
|
+'rializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <'
|
|
+'%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_VAR'
|
|
+'IANT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadVa'
|
|
+'riant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_VAR'
|
|
+'IANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDESTRING_TYPE %%%>'#13#10
|
|
+' dynamic_cast<TROSerializer*>(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<TROS'
|
|
+'erializer*>(ASerializer)->ReadXml("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10
|
|
+' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% START IF_FIELD_AR'
|
|
+'RAY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadArr'
|
|
+'ay("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10' if'
|
|
+' (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% E'
|
|
+'ND IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%'
|
|
+'>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadEnumerated("%FI'
|
|
+'ELD_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<TROSerializer*>(ASerializer)->ReadStruct("%FIELD_NAM'
|
|
+'E%", __classid(%FIELD_TYPE%), &l_%FIELD_NAME%);'#13#10' if (%FIELD_NAME%'
|
|
+' != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_ST'
|
|
+'RUCT_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_FI'
|
|
+'ELD_TYPE_COMPLEX %%%>'#13#10' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME'
|
|
+'%;'#13#10' // <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#13#10' // <%%% STA'
|
|
+'RT IF_FIELD_BINARY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASeria'
|
|
+'lizer)->ReadBinary("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' if (%FIELD_'
|
|
+'NAME% != l_%FIELD_NAME%) delete %FIELD_NAME%;'#13#10' // <%%% END IF_FIE'
|
|
+'LD_BINARY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13
|
|
+#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadEnumerated("%FIELD_NA'
|
|
+'ME%", __GetboolInfo, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOL'
|
|
+'EAN_TYPE %%%>'#13#10' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' '
|
|
+' dynamic_cast<TROSerializer*>(ASerializer)->ReadDouble("%FIELD_NAME%", ft'
|
|
+'Curr, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'
|
|
+#13#10' // <%%% START IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast'
|
|
+'<TROSerializer*>(ASerializer)->ReadDateTime("%FIELD_NAME%", &l_%FIELD_NAME%'
|
|
+');'#13#10' // <%%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% ST'
|
|
+'ART IF_FIELD_DECIMAL_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASer'
|
|
+'ializer)->ReadDecimal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% '
|
|
+'END IF_FIELD_DECIMAL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYP'
|
|
+'E %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadDouble("%F'
|
|
+'IELD_NAME%", ftDouble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DO'
|
|
+'UBLE_TYPE %%%>'#13#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' '
|
|
+'dynamic_cast<TROSerializer*>(ASerializer)->ReadGuid("%FIELD_NAME%", &l_%FIE'
|
|
+'LD_NAME%);'#13#10' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%'
|
|
+'% START IF_FIELD_INT64_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(AS'
|
|
+'erializer)->ReadInt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% '
|
|
+'END IF_FIELD_INT64_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE'
|
|
+' %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->ReadInteger("%F'
|
|
+'IELD_NAME%", otSLong, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT'
|
|
+'EGER_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10
|
|
,' dynamic_cast<TROSerializer*>(ASerializer)->ReadAnsiString("%FIELD_NAME%'
|
|
+'", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_ANSISTRING_TYPE %%%>'
|
|
+#13#10' // <%%% START IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' dynamic_ca'
|
|
+'st<TROSerializer*>(ASerializer)->ReadUTF8String("%FIELD_NAME%", &l_%FIELD_N'
|
|
+'AME%);'#13#10' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <'
|
|
+'%%% START IF_FIELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*'
|
|
+'>(ASerializer)->ReadVariant("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' //'
|
|
+' <%%% END IF_FIELD_VARIANT_TYPE %%%>'#13#10' // <%%% START IF_FIELD_WIDE'
|
|
+'STRING_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->Read'
|
|
+'WideString("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIEL'
|
|
+'D_WIDESTRING_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13
|
|
+#10' dynamic_cast<TROSerializer*>(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<TROSerializer'
|
|
+'*>(ASerializer)->ReadArray("%FIELD_NAME%", __classid(%FIELD_TYPE%), &l_%FIE'
|
|
+'LD_NAME%);'#13#10' if (%FIELD_NAME% != l_%FIELD_NAME%) delete %FIELD_NAM'
|
|
+'E%;'#13#10' // <%%% END IF_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% STAR'
|
|
+'T IF_FIELD_ENUM_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializ'
|
|
+'er)->ReadEnumerated("%FIELD_NAME%", __Get%FIELD_TYPE%Info, &l_%FIELD_NAME%)'
|
|
+';'#13#10' // <%%% END IF_FIELD_ENUM_TYPE %%%>'#13#10' // <%%% START I'
|
|
+'F_FIELD_STRUCT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerialize'
|
|
+'r)->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 %EXCEPTION_NAME%::WriteException(TObject*'
|
|
+' ASerializer)'#13#10'{'#13#10' if (dynamic_cast<TROSerializer*>(ASerialize'
|
|
+'r)->RecordStrictOrder)'#13#10' {'#13#10' // <%%% START IF_STRUCT_HAS_AN'
|
|
+'CESTOR %%%>'#13#10' inherited::WriteException(ASerializer);'#13#10' /'
|
|
+'/ <%%% END IF_STRUCT_HAS_ANCESTOR %%%>'#13#10' // <%%% START FIELDS_NO_S'
|
|
+'TRIP %%%>'#13#10' // <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#13#10' %FI'
|
|
+'ELD_TYPE% l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_FIELD_TY'
|
|
+'PE_SIMPLE %%%>'#13#10' // <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#13#10' '
|
|
+' %FIELD_TYPE%* l_%FIELD_NAME% = %FIELD_NAME%;'#13#10' // <%%% END IF_F'
|
|
+'IELD_TYPE_COMPLEX %%%>'#13#10' // <%%% START IF_FIELD_BINARY_TYPE %%%>'
|
|
+#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteBinary("%FIELD_NA'
|
|
+'ME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BINARY_TYPE %%%>'#13
|
|
+#10' // <%%% START IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' dynamic_cast<TRO'
|
|
+'Serializer*>(ASerializer)->WriteEnumerated("%FIELD_NAME%", __GetboolInfo, &'
|
|
+'l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_BOOLEAN_TYPE %%%>'#13#10' '
|
|
+' // <%%% START IF_FIELD_CURRENCY_TYPE %%%>'#13#10' dynamic_cast<TROSer'
|
|
+'ializer*>(ASerializer)->WriteDouble("%FIELD_NAME%", ftCurr, &l_%FIELD_NAME%'
|
|
+');'#13#10' // <%%% END IF_FIELD_CURRENCY_TYPE %%%>'#13#10' // <%%% ST'
|
|
+'ART IF_FIELD_DATETIME_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASe'
|
|
+'rializer)->WriteDateTime("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%'
|
|
+'%% END IF_FIELD_DATETIME_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DECIMA'
|
|
+'L_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteDeci'
|
|
+'mal("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DECIM'
|
|
+'AL_TYPE %%%>'#13#10' // <%%% START IF_FIELD_DOUBLE_TYPE %%%>'#13#10' '
|
|
+'dynamic_cast<TROSerializer*>(ASerializer)->WriteDouble("%FIELD_NAME%", ftDo'
|
|
+'uble, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_DOUBLE_TYPE %%%>'#13
|
|
+#10' // <%%% START IF_FIELD_GUID_TYPE %%%>'#13#10' dynamic_cast<TROSer'
|
|
+'ializer*>(ASerializer)->WriteGuid("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10
|
|
+' // <%%% END IF_FIELD_GUID_TYPE %%%>'#13#10' // <%%% START IF_FIELD_I'
|
|
+'NT64_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASerializer)->WriteI'
|
|
+'nt64("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INT6'
|
|
+'4_TYPE %%%>'#13#10' // <%%% START IF_FIELD_INTEGER_TYPE %%%>'#13#10' '
|
|
+'dynamic_cast<TROSerializer*>(ASerializer)->WriteInteger("%FIELD_NAME%", otS'
|
|
+'Long, &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_INTEGER_TYPE %%%>'
|
|
+#13#10' // <%%% START IF_FIELD_ANSISTRING_TYPE %%%>'#13#10' dynamic_ca'
|
|
+'st<TROSerializer*>(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<TROSeriali'
|
|
+'zer*>(ASerializer)->WriteUTF8String("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10
|
|
,' // <%%% END IF_FIELD_UTF8STRING_TYPE %%%>'#13#10' // <%%% START IF_F'
|
|
+'IELD_VARIANT_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(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<TROSerializer*>(ASerializer)->WriteWideString("'
|
|
+'%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END IF_FIELD_WIDESTRING'
|
|
+'_TYPE %%%>'#13#10' // <%%% START IF_FIELD_XML_TYPE %%%>'#13#10' dynam'
|
|
+'ic_cast<TROSerializer*>(ASerializer)->WriteXml("%FIELD_NAME%", &l_%FIELD_NA'
|
|
+'ME%);'#13#10' // <%%% END IF_FIELD_XML_TYPE %%%>'#13#10' // <%%% STAR'
|
|
+'T IF_FIELD_ARRAY_TYPE %%%>'#13#10' dynamic_cast<TROSerializer*>(ASeriali'
|
|
+'zer)->WriteArray("%FIELD_NAME%", &l_%FIELD_NAME%);'#13#10' // <%%% END I'
|
|
+'F_FIELD_ARRAY_TYPE %%%>'#13#10' // <%%% START IF_FIELD_ENUM_TYPE %%%>'#13
|
|
+#10' dynamic_cast<TROSerializer*>(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<TROSerializer*>(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<TROSerialize'
|
|
+'r*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TRO'
|
|
+'Serializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerial'
|
|
+'izer*>(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<TROSerial'
|
|
+'izer*>(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'
|
|
+'<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TR'
|
|
+'OSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>('
|
|
+'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<TROSerializer*>(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<TROSerializer*>(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<T'
|
|
+'ROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TR'
|
|
+'OSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerial'
|
|
+'izer*>(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<TROSeriali'
|
|
+'zer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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'
|
|
+'<TROSerializer*>(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<TROSerialize'
|
|
+'r*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TRO'
|
|
+'Serializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>'
|
|
+'(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<TROSerializer*>(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<TROSerializer*>(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<T'
|
|
+'ROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializ'
|
|
+'er*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSeriali'
|
|
+'zer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TROSerializer*>(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<TRO'
|
|
+'Serializer*>(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<TROS'
|
|
+'erializer*>(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<void**>(&__%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 <System.hpp> // Pascal u'
|
|
+'nit'#13#10'#include <Classes.hpp> // Pascal unit'#13#10'#include <Ur'
|
|
+'otypes.hpp> // Pascal unit'#13#10'#include <Uroclient.hpp> // Pa'
|
|
+'scal unit'#13#10'#include <Uroclientintf.hpp> // Pascal unit'#13#10'#inclu'
|
|
+'de <Uroxmlintf.hpp> // 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<I%SERVICE_NAME%> _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<void**>(&'
|
|
+'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<I%EVENT_SINK_NAME%> _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<I'
|
|
+'%EVENT_SINK_NAME%_Writer> _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 <uROR'
|
|
+'es.HPP>'#13#10'#include <uROClient.HPP>'#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 <System.hpp>'#9#9#9' // Pascal unit'#13#10
|
|
+'#include <Uroserver.hpp>'#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 <System.hpp>'#9' // Pascal unit'#13
|
|
+#10'// <%%% START IF_DATA_MODULE %%%>'#13#10'#include <Classes.hpp>'#13#10'#'
|
|
+'include <Controls.hpp>'#13#10'#include <StdCtrls.hpp>'#13#10'#include <Form'
|
|
+'s.hpp>'#13#10'#include <uRORemoteDataModule.hpp> // Pascal unit'#13#10'// '
|
|
+'<%%% END IF_DATA_MODULE %%%>'#13#10'#include <Uroserver.hpp> // 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 <System.hpp>'#9#9#9' // Pa'
|
|
+'scal unit'#13#10'#include <Uroasync.hpp>'#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<I%SERVICE_NAME%_Async> _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<void'
|
|
+'**>(&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'NSString *%ENUM_NAME%ToString(enum %ENUM_NAME% va'
|
|
+'lue)'#10'{'#10#9'switch (value)'#10#9'{'#10#9#9' // <%%% START VALUES_NO_ST'
|
|
+'RIP %%%>'#10#9#9' %VALUE_NAME%: return @"%VALUE_NAME%"; '
|
|
+#10#9#9' // <%%% END VALUES_NO_STRIP %%%>'#10#9#9' default: return [NSString'
|
|
+' stringWithFormat:@"Invalid value %u for enum %ENUM_NAME%", value];'#10#9'}'
|
|
+#10'}'#10#10'// <%%% END ENUMS %%%>'#10#10'#pragma mark structs'#10#10'// <%'
|
|
+'%% START STRUCTS %%%>'#10'@implementation %STRUCT_NAME%'#10#10'// <%%% STAR'
|
|
+'T FIELDS_NO_STRIP %%%>'#10'@synthesize %FIELD_NAME%;'#10'// <%%% END FIELDS'
|
|
+'_NO_STRIP %%%>'#10#10'// <%%% START IF_HAS_FIELDS %%%>'#10'-(id) init'#10'{'
|
|
+#10#9'self = [super 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 deall'
|
|
+'oc];'#10'}'#10'// <%%% END IF_HAS_FIELDS %%%>'#10#10'-(void) assignFrom:(RO'
|
|
+'ComplexType*) aSource'#10'{'#10'}'#10#10'// <%%% START IF_HAS_FIELDS %%%>'
|
|
+#10'-(void)writeToMessage:(ROMessage *) aMessage withName:(NSString *) aName'
|
|
+#10'{'#10#9'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'[aMessage write'
|
|
+'%FIELD_READER_WRITER%:%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10#9'// <%%%'
|
|
+' END ENTIRE_HIERARCHY_FIELDS %%%>'#10'}'#10'-(void)readFromMessage:(ROMessa'
|
|
+'ge *) aMessage withName:(NSString *) aName'#10'{'#10#9'// <%%% START ENTIRE'
|
|
+'_HIERARCHY_FIELDS %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10#9
|
|
+'[aMessage read%FIELD_READER_WRITER%:&%FIELD_NAME% withName:@"%FIELD_NAME%" '
|
|
+'asClass:[%FIELD_TYPE_NAME% class]];'#10#9'// <%%% END IF_FIELD_TYPE_COMPLEX'
|
|
+' %%%>'#10#9'// <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10#9'[aMessage read%FI'
|
|
+'ELD_READER_WRITER%:&%FIELD_NAME% withName:@"%FIELD_NAME%"];'#10#9'// <%%% E'
|
|
+'ND IF_FIELD_TYPE_SIMPLE %%%>'#10#9'// <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'
|
|
+#10#9'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'// <%%% START IF_FIEL'
|
|
+'D_TYPE_COMPLEX %%%>'#10#9'[%FIELD_NAME% retain];'#10#9'// <%%% END IF_FIELD'
|
|
+'_TYPE_COMPLEX %%%>'#10#9'// <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#10'}'#10
|
|
+'// <%%% END IF_HAS_FIELDS %%%>'#10#10'@end'#10'// <%%% END STRUCTS %%%>'#10
|
|
+#10'#pragma mark arrays'#10#10'// <%%% START ARRAYS %%%>'#10'@implementation'
|
|
+' %ARRAY_NAME% '#10#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10'- (%ARRA'
|
|
+'Y_TYPE%) add'#10'{'#10#9'%ARRAY_TYPE% __new = [[%ARRAY_TYPE_NAME% alloc] in'
|
|
+'it];'#10#9'[super addItem:__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:object];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9
|
|
+'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[super addItem:[NSNumber numb'
|
|
+'erWithLongLong:object]];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10'}'
|
|
+#10#10'- (void)insertItem:(%ARRAY_TYPE%)object atIndex:(NSUInteger)index'#10
|
|
+'{'#10#9'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'[super insertItem:ob'
|
|
+'ject atIndex:index];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// '
|
|
+'<%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[super insertItem:[NSNumber numb'
|
|
+'erWithLongLong:object] atIndex:index];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMP'
|
|
+'LE %%%>'#10'}'#10#10'- (void)replaceItemAtIndex:(NSUInteger)index withObjec'
|
|
+'t:(%ARRAY_TYPE%)object'#10'{'#10#9'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'
|
|
+#10#9'[super replaceItemAtIndex:index withObject:object];'#10#9'// <%%% END '
|
|
+'IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10
|
|
+#9'[super replaceItemAtIndex:index withObject:[NSNumber numberWithLongLong:o'
|
|
+'bject]];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10'}'#10#10'- (%ARRAY'
|
|
+'_TYPE%)itemAtIndex:(NSUInteger)index;'#10'{'#10#9'// <%%% START IF_ARRAY_TY'
|
|
+'PE_COMPLEX %%%>'#10#9'return (%ARRAY_TYPE%)[super itemAtIndex:index];'#10#9
|
|
+'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_ARRAY_TYPE_SI'
|
|
+'MPLE %%%>'#10#9'return [(NSNumber *)[super itemAtIndex:index] longLongValue'
|
|
+'];'#10#9'// <%%% END IF_ARRAY_TYPE_SIMPLE %%%>'#10'}'#10#10'// <%%% START I'
|
|
+'F_ARRAY_TYPE_COMPLEX %%%>'#10'- (Class) itemClass'#10'{'#10#9'return [%ARRA'
|
|
,'Y_TYPE_NAME% class];'#10'}'#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10#10
|
|
+'- (void)writeItemToMessage:(ROMessage *)aMessage fromIndex:(int)i'#10'{'#10
|
|
+#9'[aMessage write%ARRAY_TYPE_READER_WRITER%:[self itemAtIndex:i] withName:n'
|
|
+'il];'#10'}'#10#10'- (void)readItemFromMessage:(ROMessage *)aMessage toIndex'
|
|
+':(int)i'#10'{'#10#9'%ARRAY_TYPE% __item;'#10#9'// <%%% START IF_ARRAY_TYPE_'
|
|
+'COMPLEX %%%>'#10#9'[aMessage read%ARRAY_TYPE_READER_WRITER%:&__item withNam'
|
|
+'e:nil asClass:[self itemClass]];'#10#9'// <%%% END IF_ARRAY_TYPE_COMPLEX %%'
|
|
+'%>'#10#9'// <%%% START IF_ARRAY_TYPE_SIMPLE %%%>'#10#9'[aMessage read%ARRAY'
|
|
+'_TYPE_READER_WRITER%:&__item withName:nil];'#10#9'// <%%% END IF_ARRAY_TYPE'
|
|
+'_SIMPLE %%%>'#10#9'////[self replaceItemAtIndex:i withObject:__item];'#10#9
|
|
+'[self addItem:__item]; // 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_STRI'
|
|
+'P %%%>'#10'@synthesize %FIELD_NAME%;'#10'// <%%% END FIELDS_NO_STRIP %%%>'
|
|
+#10#10'-(id) initWithMessage:(NSString *) anExceptionMessage'#10' '
|
|
+' // <%%% START ANCESTOR_FIELDS %%%>'#10' : (%FIELD'
|
|
+'_TYPE%) a%FIELD_NAME% '#10' // <%%% END ANCESTOR_FIELDS %'
|
|
+'%%>'#10' // <%%% START FIELDS_NO_STRIP %%%>'#10' '
|
|
+' : (%FIELD_TYPE%) a%FIELD_NAME% '#10' // <%%% EN'
|
|
+'D FIELDS_NO_STRIP %%%>'#10'{'#10#9'self = [super initWithMessage:anExceptio'
|
|
+'nMessage'#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'
|
|
+'_FIELDS %%%>'#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_ST'
|
|
+'RIP %%%>'#10#9#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9#9'// <%%% START I'
|
|
+'F_FIELD_TYPE_COMPLEX %%%>'#10#9#9'[%FIELD_NAME% retain];'#10#9#9'// <%%% EN'
|
|
+'D IF_FIELD_TYPE_COMPLEX %%%>'#10#9#9'// <%%% END FIELDS_NO_STRIP %%%>'#10#9
|
|
+'}'#10#9'// <%%% END IF_HAS_FIELDS %%%>'#10#9'return self;'#10'}'#10#10'// <'
|
|
+'%%% START 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'// '
|
|
+'<%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'
|
|
+#10#9'[super dealloc];'#10'}'#10#10'-(void)writeToMessage:(ROMessage *) aMes'
|
|
+'sage withName:(NSString *) aName'#10'{'#10#9'// <%%% START ENTIRE_HIERARCHY'
|
|
+'_FIELDS %%%>'#10#9'[aMessage write%FIELD_READER_WRITER%:%FIELD_NAME% withNa'
|
|
+'me:@"%FIELD_NAME%"];'#10#9'// <%%% END ENTIRE_HIERARCHY_FIELDS %%%>'#10'}'
|
|
+#10'-(void)readFromMessage:(ROMessage *) aMessage withName:(NSString *) aNam'
|
|
+'e'#10'{'#10#9'// <%%% START ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'// <%%% STAR'
|
|
+'T IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[aMessage read%FIELD_READER_WRITER%:&%FI'
|
|
+'ELD_NAME% withName:@"%FIELD_NAME%" asClass:[%FIELD_TYPE_NAME% class]];'#10#9
|
|
+'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_FIELD_TYPE_SI'
|
|
+'MPLE %%%>'#10#9'[aMessage read%FIELD_READER_WRITER%:&%FIELD_NAME% withName:'
|
|
+'@"%FIELD_NAME%"];'#10#9'// <%%% END IF_FIELD_TYPE_SIMPLE %%%>'#10#9'// <%%%'
|
|
+' END ENTIRE_HIERARCHY_FIELDS %%%>'#10#9'// <%%% START ENTIRE_HIERARCHY_FIEL'
|
|
+'DS %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10#9'[%FIELD_NAME% '
|
|
+'retain];'#10#9'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10#9'// <%%% END ENT'
|
|
+'IRE_HIERARCHY_FIELDS %%%>'#10'}'#10'// <%%% END IF_HAS_FIELDS %%%>'#10'@end'
|
|
+#10#10'// <%%% END EXCEPTIONS %%%>'#10#10'#pragma mark service proxies'#10#10
|
|
+'// <%%% START SERVICES %%%>'#10'@implementation %SERVICE_NAME%_Proxy '#10#10
|
|
+'-(id) initWithMessage:(ROMessage*) aMessage channel:(ROClientChannel*) aCha'
|
|
+'nnel'#10'{'#10#9'self = [super initWithMessage: aMessage channel: aChannel]'
|
|
+';'#10#9'return self;'#10'}'#10#10'-(void) dealloc'#10'{'#10#9'[super deallo'
|
|
+'c];'#10'}'#10#10'-(NSString*) __getInterfaceName'#10'{'#10#9'return @"%SERV'
|
|
+'ICE_NAME%";'#10'}'#10#10'// <%%% START OPERATIONS %%%>'#10'- (%OPERATION_RE'
|
|
+'SULT_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_HAS_RESULT %%%>'#10#9'%OPERATION_RESU'
|
|
+'LT_TYPE% __result;'#10#9'// <%%% END IF_OPERATION_HAS_RESULT %%%>'#10#10#9
|
|
+'[[self __message] initializeAsRequestMessage:[self __clientChannel] library'
|
|
+'Name:@"%LIBRARY_NAME%" interfaceName:[self __getActiveInterfaceName] messag'
|
|
+'eName:@"%OPERATION_NAME%"];'#10#9'@try'#10#9'{'#10#9#9'// <%%% START IN_PAR'
|
|
,'AMS_NO_STRIP %%%> '#10#9#9'[[self __message] write%PARAM_READER_WRITER%:'
|
|
+'%PARAM_NAME% withName:@"%PARAM_NAME%"];'#10#9#9'// <%%% END IN_PARAMS_NO_ST'
|
|
+'RIP %%%>'#10#9#9'[[self __message] finalizeMessage];'#10#9#9#10#9#9'[[self '
|
|
+'__clientChannel] dispatch:[self __message]];'#10#10#9#9'// <%%% START IF_RE'
|
|
+'SULT_COMPLEX %%%>'#10#9#9'[[self __message] read%OPERATION_RESULT_READER_WR'
|
|
+'ITER%:&__result withName:@"%OPERATION_RESULT_NAME%" asClass:[%OPERATION_RES'
|
|
+'ULT_TYPE_NAME% class]];'#10#9#9'// <%%% END IF_RESULT_COMPLEX %%%>'#10#9#9
|
|
+'// <%%% START IF_RESULT_SIMPLE %%%>'#10#9#9'[[self __message] read%OPERATIO'
|
|
+'N_RESULT_READER_WRITER%:&__result withName:@"%OPERATION_RESULT_NAME%"];'#10
|
|
+#9#9'// <%%% END IF_RESULT_SIMPLE %%%>'#10#9#9'// <%%% START OUT_PARAMS_NO_S'
|
|
+'TRIP %%%> '#10#9#9'// <%%% START IF_PARAM_TYPE_COMPLEX %%%>'#10#9#9'[[sel'
|
|
+'f __message] read%PARAM_READER_WRITER%:%PARAM_NAME% withName:@"%PARAM_NAME%'
|
|
+'" asClass:[%PARAM_TYPE_NAME% class]];'#10#9#9'// <%%% END IF_PARAM_TYPE_COM'
|
|
+'PLEX %%%>'#10#9#9'// <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10#9#9'[[self __'
|
|
+'message] read%PARAM_READER_WRITER%:%PARAM_NAME% withName:@"%PARAM_NAME%"];'
|
|
+#10#9#9'// <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#10#9#9'// <%%% END OUT_PARAMS'
|
|
+'_NO_STRIP %%%>'#10#9'}'#10#9'@finally'#10#9'{'#10#9#9'[[self __message] cle'
|
|
+'ar];'#10#9'}'#10#10#9'// <%%% START IF_OPERATION_HAS_RESULT %%%>'#10#9'retu'
|
|
+'rn __result;'#10#9'// <%%% END IF_OPERATION_HAS_RESULT %%%>'#10'}'#10#10'//'
|
|
+' <%%% END OPERATIONS %%%>'#10' '#10'@end'#10#10'// <%%% END SERVICES %%%>'
|
|
+#10#10'void Initialize%LIBRARY_NAME%()'#10'{'#10#9'// <%%% START STRUCTS %%%'
|
|
+'>'#10#9'[[ROTypeManager typeManager] addType:[%STRUCT_NAME% class] classNam'
|
|
+'e:@"%STRUCT_NAME%"];'#10#9'// <%%% END STRUCTS %%%>'#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 %UNIT_NAME%_H'#10'#define %UNIT_NAME%_H'#10#10'#import <RemOb'
|
|
+'jectsSDK/RemObjectsSDK.h>'#10'// <%%% START REQUIRED_UNITS %%%>'#10'#import'
|
|
+' <%REQUIRED_UNIT_NAME%.h>'#10'// <%%% END REQUIRED_UNITS %%%>'#10#10'#pragm'
|
|
+'a mark defines'#10#10'// Library ID'#10'////#define LibraryID "%LIBRARY_UID'
|
|
+'%"'#10'////#define TargetNamespace "%NAMESPACE_NAME%"'#10#10'// Service Int'
|
|
+'erface ID''s'#10'// <%%% START SERVICES %%%>'#10'#define I%SERVICE_NAME%_I'
|
|
+'ID "%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_%EVENT_SINK_NAME% "%EVENT_SIN'
|
|
+'K_NAME%"'#10'const GUID I%EVENT_SINK_NAME%_IID = ROStringToGUID("%EVENT_SIN'
|
|
+'K_UID%");'#10'// <%%% END EVENT_SINKS %%%>'#10#10'// Type Registration'#10
|
|
+'void Initialize%LIBRARY_NAME%();'#10#10'// Forward declarations'#10'// <%%%'
|
|
+' START SERVICES %%%>'#10'@protocol I%SERVICE_NAME%; '#10'// <%%% END SERVIC'
|
|
+'ES %%%>'#10'// <%%% START ARRAYS %%%>'#10'@class %ARRAY_NAME%;'#10'// <%%% '
|
|
+'END ARRAYS %%%>'#10'// <%%% START STRUCTS %%%>'#10'@class %STRUCT_NAME%;'#10
|
|
+'// <%%% END STRUCTS %%%>'#10'// <%%% START EXCEPTIONS %%%>'#10'@class %EXCE'
|
|
+'PTION_NAME%;'#10'// <%%% END EXCEPTIONS %%%>'#10'// <%%% START EVENT_SINKS '
|
|
+'%%%>'#10'@protocol I%EVENT_SINK_NAME%;'#10'// <%%% END EVENT_SINKS %%%>'#10
|
|
+#10'// <%%% START ENUMS %%%>'#10'enum %ENUM_NAME% '#10'{'#10#9'// <%%% START'
|
|
+' VALUES %%%>'#10#9'%VALUE_NAME%, '#10#9'// <%%% END VALUES %'
|
|
+'%%> '#10'};'#10#10'NSString *%ENUM_NAME%ToString(enum %ENUM_'
|
|
+'NAME% value);'#10#10'// <%%% END ENUMS %%%>'#10#10'#pragma mark structs'#10
|
|
+#10'// <%%% START STRUCTS %%%>'#10'@interface %STRUCT_NAME% : %STRUCT_ANCEST'
|
|
+'OR_NAME% { '#10#9'// <%%% START FIELDS_NO_STRIP %%%>'#10#9'%FIELD_TYPE% %F'
|
|
+'IELD_NAME%;'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10'}'#10#10#9'// <%%% S'
|
|
+'TART FIELDS_NO_STRIP %%%>'#10#9'// <%%% START IF_FIELD_TYPE_COMPLEX %%%>'#10
|
|
+#9'@property (retain) %FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% END IF_FIELD_'
|
|
+'TYPE_COMPLEX %%%>'#10#9'// <%%% START IF_FIELD_TYPE_SIMPLE %%%>'#10#9'@prop'
|
|
+'erty (assign) %FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% END IF_FIELD_TYPE_SI'
|
|
+'MPLE %%%>'#10#9'// <%%% END FIELDS_NO_STRIP %%%>'#10#10#9'// <%%% START IF_'
|
|
+'HAS_FIELDS %%%>'#10#9'-(id) init;'#10#9'-(void) dealloc;'#10#9'// <%%% END '
|
|
+'IF_HAS_FIELDS %%%>'#10#10#9'-(void) assignFrom:(ROComplexType*) aSource;'#10
|
|
+#9'// <%%% START IF_HAS_FIELDS %%%>'#10#9'-(void)writeToMessage:(ROMessage *'
|
|
+') aMessage withName:(NSString *) aName;'#10#9'-(void)readFromMessage:(ROMes'
|
|
+'sage *) aMessage withName:(NSString *) aName;'#10#9'// <%%% END IF_HAS_FIEL'
|
|
+'DS %%%>'#10#10'@end'#10'// <%%% END STRUCTS %%%>'#10#10'#pragma mark arrays'
|
|
+#10#10'// <%%% START ARRAYS %%%>'#10'@interface %ARRAY_NAME% : ROArray {'#10
|
|
+' }'#10'// <%%% START IF_ARRAY_TYPE_COMPLEX %%%>'#10'- (%ARRAY_TYPE%) add;'
|
|
+#10'// <%%% END IF_ARRAY_TYPE_COMPLEX %%%>'#10'- (void)addItem:(%ARRAY_TYPE%'
|
|
+')object;'#10'- (void)insertItem:(%ARRAY_TYPE%)object atIndex:(NSUInteger)in'
|
|
+'dex;'#10'- (void)replaceItemAtIndex:(NSUInteger)index withObject:(%ARRAY_TY'
|
|
+'PE%)object;'#10'- (%ARRAY_TYPE%)itemAtIndex:(NSUInteger)index;'#10#10'- (vo'
|
|
+'id)writeItemToMessage:(ROMessage *)aMessage fromIndex:(int)i;'#10'- (void)r'
|
|
+'eadItemFromMessage:(ROMessage *)aMessage toIndex:(int)i;'#10'@end;'#10#10'/'
|
|
+'/ <%%% END ARRAYS %%%>'#10'#pragma mark exceptions'#10#10'// <%%% START EXC'
|
|
+'EPTIONS %%%>'#10'// <%%% START DOCUMENTATION %%%>'#10#10'/* Description:'#10
|
|
+' %CONTENT% */'#10'// <%%% END DOCUMENTATION %%%>'#10'@interface %EXCEPTI'
|
|
+'ON_NAME% : %EXCEPTION_ANCESTOR_NAME% { '#10#9'// <%%% START FIELDS_NO_STRI'
|
|
+'P %%%>'#10#9'%FIELD_TYPE% %FIELD_NAME%;'#10#9'// <%%% END FIELDS_NO_STRIP %'
|
|
+'%%>'#10'}'#10' '#10'// <%%% START FIELDS_NO_STRIP %%%>'#10'// <%%% START I'
|
|
+'F_FIELD_TYPE_COMPLEX %%%>'#10'@property (retain) %FIELD_TYPE% %FIELD_NAME%;'
|
|
+#10'// <%%% END IF_FIELD_TYPE_COMPLEX %%%>'#10'// <%%% START IF_FIELD_TYPE_S'
|
|
+'IMPLE %%%>'#10'@property (assign) %FIELD_TYPE% %FIELD_NAME%;'#10'// <%%% EN'
|
|
+'D IF_FIELD_TYPE_SIMPLE %%%>'#10'// <%%% END FIELDS_NO_STRIP %%%>'#10' '#10
|
|
+'-(id) initWithMessage:(NSString *) anExceptionMessage'#10' '
|
|
+' // <%%% START ANCESTOR_FIELDS %%%>'#10' : (%FIELD_TYPE%'
|
|
+') a%FIELD_NAME% '#10' // <%%% END ANCESTOR_FIELDS %%%>'#10
|
|
,' // <%%% START FIELDS_NO_STRIP %%%>'#10' '
|
|
+' : (%FIELD_TYPE%) a%FIELD_NAME% '#10' // <%%% END FIELDS'
|
|
+'_NO_STRIP %%%>'#10' ;'#10'// <%%% START IF_HAS_FIELDS %%%'
|
|
+'>'#10'-(void)writeToMessage:(ROMessage *) aMessage withName:(NSString *) aN'
|
|
+'ame;'#10'-(void)readFromMessage:(ROMessage *) aMessage withName:(NSString *'
|
|
+') aName;'#10'// <%%% END IF_HAS_FIELDS %%%>'#10'-(void) dealloc;'#10'@end'
|
|
+#10#10'// <%%% END EXCEPTIONS %%%>'#10#10'#pragma mark service protocols'#10
|
|
+#10'// <%%% START SERVICES %%%>'#10'@protocol I%SERVICE_NAME%'#10' // <%%% '
|
|
+'START FUNCTION_OPERATIONS %%%>'#10' - (%OPERATION_RESULT_TYPE%) %OPERATION'
|
|
+'_NAME%'#10' // <%%% START PARAMS %%%>'#10' :(%PARAM_TYPE%%PARAM_BACK_'
|
|
+'MODIFIER%) %PARAM_NAME%'#10' // <%%% END PARAMS %%%>'#10' ;'#10' // '
|
|
+'<%%% END FUNCTION_OPERATIONS %%%>'#10' // <%%% START PROCEDURE_OPERATIONS '
|
|
+'%%%>'#10' - (void) %OPERATION_NAME%'#10' // <%%% START PARAMS %%%>'#10
|
|
+' :(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '#10' // <%%% END'
|
|
+' PARAMS %%%>'#10' ;'#10#9'// <%%% END PROCEDURE_OPERATIONS %%%>'#10'@end'
|
|
+#10#10'#pragma mark service proxies'#10#10'@interface %SERVICE_NAME%_Proxy :'
|
|
+' %SERVICE_PROXY_ANCESTOR_NAME% <I%SERVICE_NAME%> '#10'{'#10'}'#10' -(id) i'
|
|
+'nitWithMessage:(ROMessage*) aMessage channel:(ROClientChannel*) aChannel;'
|
|
+#10' -(void) dealloc;'#10' -(NSString*) __getInterfaceName;'#10#10' // <%'
|
|
+'%% START FUNCTION_OPERATIONS %%%>'#10' - (%OPERATION_RESULT_TYPE%) %OPERAT'
|
|
+'ION_NAME%'#10' // <%%% START PARAMS %%%>'#10' :(%PARAM_TYPE%%PARAM_BA'
|
|
+'CK_MODIFIER%) %PARAM_NAME%'#10' // <%%% END PARAMS %%%>'#10' ;'#10' '
|
|
+'// <%%% END FUNCTION_OPERATIONS %%%>'#10' // <%%% START PROCEDURE_OPERATIO'
|
|
+'NS %%%>'#10' - (void) %OPERATION_NAME%'#10' // <%%% START PARAMS %%%>'
|
|
+#10' :(%PARAM_TYPE%%PARAM_BACK_MODIFIER%) %PARAM_NAME% '#10' // <%%% '
|
|
+'END PARAMS %%%>'#10' ;'#10#9'// <%%% END PROCEDURE_OPERATIONS %%%>'#10' '
|
|
+' '#10'@end'#10#10'// <%%% END SERVICES %%%>'#10#10'#pragma mark event sinks'
|
|
+#10#10'// <%%% START EVENT_SINKS %%%>'#10'/* I%EVENT_SINK_NAME% */'#10'// <%'
|
|
+'%% START DOCUMENTATION %%%>'#10#10'/* Description:'#10' %CONTENT% */'#10
|
|
+'// <%%% END DOCUMENTATION %%%>'#10'__interface I%EVENT_SINK_NAME%;'#10'type'
|
|
+'def System::DelphiInterface<I%EVENT_SINK_NAME%> _di_I%EVENT_SINK_NAME%;'#10
|
|
+'__interface INTERFACE_UUID("%EVENT_SINK_UID%") I%EVENT_SINK_NAME% : public '
|
|
+'%EVENT_SINK_ANCESTOR_NAME%'#10'{'#10'public:'#10' // <%%% START OPERATIONS'
|
|
+' %%%>'#10' virtual void __fastcall %OPERATION_NAME%('#10' // <%%% START'
|
|
+' PARAMS %%%>'#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10' %PARAM'
|
|
+'_FRONT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%,'#10' /'
|
|
+'/ <%%% END IF_PARAM_TYPE_SIMPLE %%%>'#10' // <%%% START IF_PARAM_TYPE_CO'
|
|
+'MPLEX %%%>'#10' %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIE'
|
|
+'R% %PARAM_NAME%,'#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#10' // '
|
|
+'<%%% END PARAMS %%%>'#10' ) = 0; // pure virtual function - interface on'
|
|
+'ly'#10' // <%%% END OPERATIONS %%%>'#10'};'#10#10'/* I%EVENT_SINK_NAME%_Wr'
|
|
+'iter */'#10'// <%%% START DOCUMENTATION %%%>'#10#10'/* Description:'#10' '
|
|
+' %CONTENT% */'#10'// <%%% END DOCUMENTATION %%%>'#10'__interface I%EVENT_SI'
|
|
+'NK_NAME%_Writer;'#10'typedef System::DelphiInterface<I%EVENT_SINK_NAME%_Wri'
|
|
+'ter> _di_I%EVENT_SINK_NAME%_Writer;'#10'__interface INTERFACE_UUID("%EVENT_'
|
|
+'SINK_UID%") I%EVENT_SINK_NAME%_Writer : public I%EVENT_SINK_WRITER_ANCESTOR'
|
|
+'_NAME%'#10'{'#10'public:'#10' // <%%% START OPERATIONS %%%>'#10' virtual '
|
|
+'void __fastcall %OPERATION_NAME%(GUID __Sender '#10' // <%%% START PARAM'
|
|
+'S %%%>'#10' // <%%% START IF_PARAM_TYPE_SIMPLE %%%>'#10' , %PARAM_FRO'
|
|
+'NT_MODIFIER% %PARAM_TYPE% %PARAM_BACK_MODIFIER% %PARAM_NAME%'#10' // <%%'
|
|
+'% END IF_PARAM_TYPE_SIMPLE %%%>'#10' // <%%% START IF_PARAM_TYPE_COMPLEX'
|
|
+' %%%>'#10' , %PARAM_FRONT_MODIFIER% %PARAM_TYPE%* %PARAM_BACK_MODIFIER% '
|
|
+'%PARAM_NAME%'#10' // <%%% END IF_PARAM_TYPE_COMPLEX %%%>'#10' // <%%%'
|
|
+' END PARAMS %%%>'#10' ) = 0; // pure virtual function - interface only'
|
|
+#10' // <%%% END OPERATIONS %%%>'#10'};'#10#10'// <%%% END EVENT_SINKS %%%>'
|
|
+#10#10'#endif // %UNIT_NAME%_H'#10#10
|
|
]);
|