You've already forked lazarus-ccr
Type registration : complex objects serialization's helpers are now fully created at registration time.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@808 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -1489,6 +1489,8 @@ type
|
|||||||
FInternalNames : TStrings;
|
FInternalNames : TStrings;
|
||||||
private
|
private
|
||||||
procedure CreateInternalObjects();{$IFDEF USE_INLINE}inline;{$ENDIF}
|
procedure CreateInternalObjects();{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
protected
|
||||||
|
procedure Init(); virtual;
|
||||||
public
|
public
|
||||||
constructor Create(
|
constructor Create(
|
||||||
AOwner : TTypeRegistry;
|
AOwner : TTypeRegistry;
|
||||||
@ -2959,6 +2961,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTypeRegistryItem.Init();
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
constructor TTypeRegistryItem.Create(
|
constructor TTypeRegistryItem.Create(
|
||||||
AOwner : TTypeRegistry;
|
AOwner : TTypeRegistry;
|
||||||
ANameSpace : String;
|
ANameSpace : String;
|
||||||
@ -3203,6 +3210,7 @@ begin
|
|||||||
if ( i = -1 ) then begin
|
if ( i = -1 ) then begin
|
||||||
Result := GetItemClassFor(ADataType).Create(Self,ANameSpace,ADataType,ADeclaredName);
|
Result := GetItemClassFor(ADataType).Create(Self,ANameSpace,ADataType,ADeclaredName);
|
||||||
Add(Result);
|
Add(Result);
|
||||||
|
Result.Init();
|
||||||
{$IFDEF TRemotableTypeInitializer_Initialize}
|
{$IFDEF TRemotableTypeInitializer_Initialize}
|
||||||
InitializeItem(Result);
|
InitializeItem(Result);
|
||||||
{$ENDIF TRemotableTypeInitializer_Initialize}
|
{$ENDIF TRemotableTypeInitializer_Initialize}
|
||||||
|
@ -283,10 +283,10 @@ end;
|
|||||||
|
|
||||||
procedure initialize_config_objects();
|
procedure initialize_config_objects();
|
||||||
begin
|
begin
|
||||||
|
TwstConfigService.RegisterAttributeProperty('Name');
|
||||||
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TwstConfigService),'Service');
|
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TwstConfigService),'Service');
|
||||||
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TwstConfigServiceArray),'Services');
|
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TwstConfigServiceArray),'Services');
|
||||||
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TWstConfigurationObject),'WST_Configuration');
|
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TWstConfigurationObject),'WST_Configuration');
|
||||||
TwstConfigService.RegisterAttributeProperty('Name');
|
|
||||||
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TwstConfigServiceArray)].RegisterExternalPropertyName('Item','service');
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TwstConfigServiceArray)].RegisterExternalPropertyName('Item','service');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -100,20 +100,10 @@ type
|
|||||||
|
|
||||||
TBaseComplexTypeRegistryItem = class(TTypeRegistryItem)
|
TBaseComplexTypeRegistryItem = class(TTypeRegistryItem)
|
||||||
private
|
private
|
||||||
FGetterLock : TCriticalSection;
|
|
||||||
FSerializer : TObjectSerializer;
|
FSerializer : TObjectSerializer;
|
||||||
FGetFunction : TGetSerializerFunction;
|
protected
|
||||||
FFuncIsNotReady : Boolean;
|
procedure Init(); override;
|
||||||
private
|
|
||||||
function FirstGetter() : TObjectSerializer;
|
|
||||||
function StaticGetter() : TObjectSerializer;
|
|
||||||
public
|
public
|
||||||
constructor Create(
|
|
||||||
AOwner : TTypeRegistry;
|
|
||||||
ANameSpace : string;
|
|
||||||
ADataType : PTypeInfo;
|
|
||||||
Const ADeclaredName : string = ''
|
|
||||||
);override;
|
|
||||||
destructor Destroy();override;
|
destructor Destroy();override;
|
||||||
function GetSerializer() : TObjectSerializer;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
function GetSerializer() : TObjectSerializer;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
end;
|
end;
|
||||||
@ -1354,52 +1344,21 @@ end;
|
|||||||
|
|
||||||
{ TBaseComplexTypeRegistryItem }
|
{ TBaseComplexTypeRegistryItem }
|
||||||
|
|
||||||
function TBaseComplexTypeRegistryItem.FirstGetter() : TObjectSerializer;
|
procedure TBaseComplexTypeRegistryItem.Init();
|
||||||
begin
|
begin
|
||||||
FGetterLock.Acquire();
|
inherited Init();
|
||||||
try
|
FSerializer := TObjectSerializer.Create(TBaseComplexRemotableClass(GetTypeData(DataType)^.ClassType),Owner);
|
||||||
if ( FSerializer = nil ) then begin
|
|
||||||
FSerializer := TObjectSerializer.Create(TBaseComplexRemotableClass(GetTypeData(DataType)^.ClassType),Owner);
|
|
||||||
FFuncIsNotReady := True;
|
|
||||||
FGetFunction := {$IFDEF FPC}@{$ENDIF}StaticGetter;
|
|
||||||
FFuncIsNotReady := False;
|
|
||||||
end;
|
|
||||||
finally
|
|
||||||
FGetterLock.Release();
|
|
||||||
end;
|
|
||||||
Result := FSerializer;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TBaseComplexTypeRegistryItem.StaticGetter() : TObjectSerializer;
|
|
||||||
begin
|
|
||||||
Result := FSerializer;
|
|
||||||
end;
|
|
||||||
|
|
||||||
constructor TBaseComplexTypeRegistryItem.Create(
|
|
||||||
AOwner : TTypeRegistry;
|
|
||||||
ANameSpace : string;
|
|
||||||
ADataType : PTypeInfo;
|
|
||||||
const ADeclaredName : string
|
|
||||||
);
|
|
||||||
begin
|
|
||||||
inherited Create(AOwner, ANameSpace, ADataType, ADeclaredName);
|
|
||||||
FGetFunction := {$IFDEF FPC}@{$ENDIF}FirstGetter;
|
|
||||||
FGetterLock := TCriticalSection.Create();
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TBaseComplexTypeRegistryItem.Destroy();
|
destructor TBaseComplexTypeRegistryItem.Destroy();
|
||||||
begin
|
begin
|
||||||
FGetterLock.Free();
|
|
||||||
FSerializer.Free();
|
FSerializer.Free();
|
||||||
inherited Destroy();
|
inherited Destroy();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TBaseComplexTypeRegistryItem.GetSerializer() : TObjectSerializer;
|
function TBaseComplexTypeRegistryItem.GetSerializer() : TObjectSerializer;
|
||||||
begin
|
begin
|
||||||
while FFuncIsNotReady do begin
|
Result := FSerializer;
|
||||||
//busy wait
|
|
||||||
end;
|
|
||||||
Result := FGetFunction();
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -153,6 +153,7 @@ type
|
|||||||
private
|
private
|
||||||
FDecStream : ISourceStream;
|
FDecStream : ISourceStream;
|
||||||
FImpStream : ISourceStream;
|
FImpStream : ISourceStream;
|
||||||
|
FImpFirstStream : ISourceStream;
|
||||||
FImpTempStream : ISourceStream;
|
FImpTempStream : ISourceStream;
|
||||||
FImpLastStream : ISourceStream;
|
FImpLastStream : ISourceStream;
|
||||||
FRttiFunc : ISourceStream;
|
FRttiFunc : ISourceStream;
|
||||||
@ -191,7 +192,8 @@ type
|
|||||||
implementation
|
implementation
|
||||||
uses parserutils, Contnrs, logger_intf;
|
uses parserutils, Contnrs, logger_intf;
|
||||||
|
|
||||||
Const sPROXY_BASE_CLASS = 'TBaseProxy';
|
const sLOCAL_TYPE_REGISTER_REFERENCE = 'typeRegistryIntance';
|
||||||
|
sPROXY_BASE_CLASS = 'TBaseProxy';
|
||||||
sBINDER_BASE_CLASS = 'TBaseServiceBinder';
|
sBINDER_BASE_CLASS = 'TBaseServiceBinder';
|
||||||
sIMP_BASE_CLASS = 'TBaseServiceImplementation';
|
sIMP_BASE_CLASS = 'TBaseServiceImplementation';
|
||||||
sSERIALIZER_CLASS = 'IFormatterClient';
|
sSERIALIZER_CLASS = 'IFormatterClient';
|
||||||
@ -2076,7 +2078,12 @@ begin
|
|||||||
WriteLn('');
|
WriteLn('');
|
||||||
WriteLn('Implementation');
|
WriteLn('Implementation');
|
||||||
WriteLn('uses metadata_repository, record_rtti, wst_types;');
|
WriteLn('uses metadata_repository, record_rtti, wst_types;');
|
||||||
FImpTempStream.WriteLn('initialization');
|
FImpFirstStream.WriteLn('var');
|
||||||
|
FImpFirstStream.Indent();
|
||||||
|
FImpFirstStream.WriteLn('%s : TTypeRegistry = nil;',[sLOCAL_TYPE_REGISTER_REFERENCE]);
|
||||||
|
FImpFirstStream.WriteLn('initialization');
|
||||||
|
FImpFirstStream.Indent();
|
||||||
|
FImpFirstStream.WriteLn('%s := GetTypeRegistry();',[sLOCAL_TYPE_REGISTER_REFERENCE]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TInftGenerator.GenerateUnitImplementationFooter();
|
procedure TInftGenerator.GenerateUnitImplementationFooter();
|
||||||
@ -2276,11 +2283,14 @@ var
|
|||||||
WriteLn('property %s : %s read F%s write F%s%s;',[propName,AProp.VarType.Name,propName,propName,locStore]);
|
WriteLn('property %s : %s read F%s write F%s%s;',[propName,AProp.VarType.Name,propName,propName,locStore]);
|
||||||
if not AnsiSameText(AProp.Name,SymbolTable.GetExternalName(AProp)) then begin
|
if not AnsiSameText(AProp.Name,SymbolTable.GetExternalName(AProp)) then begin
|
||||||
FImpLastStream.Indent();
|
FImpLastStream.Indent();
|
||||||
FImpLastStream.WriteLn('GetTypeRegistry().ItemByTypeInfo[TypeInfo(%s)].RegisterExternalPropertyName(%s,%s);',[ASymbol.Name,QuotedStr(AProp.Name),QuotedStr(SymbolTable.GetExternalName(AProp))]);
|
FImpLastStream.WriteLn(
|
||||||
|
'%s.ItemByTypeInfo[TypeInfo(%s)].RegisterExternalPropertyName(%s,%s);',
|
||||||
|
[sLOCAL_TYPE_REGISTER_REFERENCE,ASymbol.Name,QuotedStr(AProp.Name),QuotedStr(SymbolTable.GetExternalName(AProp))]
|
||||||
|
);
|
||||||
end;
|
end;
|
||||||
if SymbolTable.IsAttributeProperty(AProp) then begin
|
if SymbolTable.IsAttributeProperty(AProp) then begin
|
||||||
FImpLastStream.Indent();
|
FImpFirstStream.Indent();
|
||||||
FImpLastStream.WriteLn('%s.RegisterAttributeProperty(%s);',[ASymbol.Name,QuotedStr(AProp.Name)]);
|
FImpFirstStream.WriteLn('%s.RegisterAttributeProperty(%s);',[ASymbol.Name,QuotedStr(AProp.Name)]);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2466,7 +2476,10 @@ begin
|
|||||||
DecIndent();
|
DecIndent();
|
||||||
|
|
||||||
FImpTempStream.Indent();
|
FImpTempStream.Indent();
|
||||||
FImpTempStream.WriteLn('GetTypeRegistry().Register(%s,TypeInfo(%s),%s);',[sNAME_SPACE,ASymbol.Name,QuotedStr(SymbolTable.GetExternalName(ASymbol))]);
|
FImpTempStream.WriteLn(
|
||||||
|
'%s.Register(%s,TypeInfo(%s),%s);',
|
||||||
|
[sLOCAL_TYPE_REGISTER_REFERENCE,sNAME_SPACE,ASymbol.Name,QuotedStr(SymbolTable.GetExternalName(ASymbol))]
|
||||||
|
);
|
||||||
|
|
||||||
SetCurrentStream(FImpStream);
|
SetCurrentStream(FImpStream);
|
||||||
WriteImp();
|
WriteImp();
|
||||||
@ -2494,7 +2507,10 @@ begin
|
|||||||
Indent();WriteLn('%s = ( ',[ASymbol.Name]);
|
Indent();WriteLn('%s = ( ',[ASymbol.Name]);
|
||||||
|
|
||||||
FImpTempStream.Indent();
|
FImpTempStream.Indent();
|
||||||
FImpTempStream.WriteLn('GetTypeRegistry().Register(%s,TypeInfo(%s),%s);',[sNAME_SPACE,ASymbol.Name,QuotedStr(SymbolTable.GetExternalName(ASymbol))]);
|
FImpTempStream.WriteLn(
|
||||||
|
'%s.Register(%s,TypeInfo(%s),%s);',
|
||||||
|
[sLOCAL_TYPE_REGISTER_REFERENCE,sNAME_SPACE,ASymbol.Name,QuotedStr(SymbolTable.GetExternalName(ASymbol))]
|
||||||
|
);
|
||||||
|
|
||||||
IncIndent();
|
IncIndent();
|
||||||
for i := 0 to Pred(ASymbol.Values.Count) do begin
|
for i := 0 to Pred(ASymbol.Values.Count) do begin
|
||||||
@ -2508,7 +2524,10 @@ begin
|
|||||||
( not AnsiSameText(itm.Name,SymbolTable.GetExternalName(itm,False)) )
|
( not AnsiSameText(itm.Name,SymbolTable.GetExternalName(itm,False)) )
|
||||||
then begin
|
then begin
|
||||||
FImpTempStream.Indent();
|
FImpTempStream.Indent();
|
||||||
FImpTempStream.WriteLn('GetTypeRegistry().ItemByTypeInfo[TypeInfo(%s)].RegisterExternalPropertyName(%s,%s);',[ASymbol.Name,QuotedStr(itm.Name),QuotedStr(SymbolTable.GetExternalName(itm,False))]);
|
FImpTempStream.WriteLn(
|
||||||
|
'%s.ItemByTypeInfo[TypeInfo(%s)].RegisterExternalPropertyName(%s,%s);',
|
||||||
|
[sLOCAL_TYPE_REGISTER_REFERENCE,ASymbol.Name,QuotedStr(itm.Name),QuotedStr(SymbolTable.GetExternalName(itm,False))]
|
||||||
|
);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
DecIndent();
|
DecIndent();
|
||||||
@ -2541,19 +2560,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
FImpTempStream.Indent();
|
FImpTempStream.Indent();
|
||||||
FImpTempStream.WriteLn('GetTypeRegistry().Register(%s,TypeInfo(%s),%s);',[sNAME_SPACE,ASymbol.Name,QuotedStr(SymbolTable.GetExternalName(ASymbol))]);
|
FImpTempStream.WriteLn(
|
||||||
|
'%s.Register(%s,TypeInfo(%s),%s);',
|
||||||
|
[sLOCAL_TYPE_REGISTER_REFERENCE,sNAME_SPACE,ASymbol.Name,QuotedStr(SymbolTable.GetExternalName(ASymbol))]
|
||||||
|
);
|
||||||
if ( SymbolTable.GetArrayItemName(ASymbol) <> SymbolTable.GetArrayItemExternalName(ASymbol) ) then begin
|
if ( SymbolTable.GetArrayItemName(ASymbol) <> SymbolTable.GetArrayItemExternalName(ASymbol) ) then begin
|
||||||
FImpTempStream.Indent();
|
FImpTempStream.Indent();
|
||||||
FImpTempStream.WriteLn(
|
FImpTempStream.WriteLn(
|
||||||
'GetTypeRegistry().ItemByTypeInfo[TypeInfo(%s)].RegisterExternalPropertyName(sARRAY_ITEM,%s);',
|
'%s.ItemByTypeInfo[TypeInfo(%s)].RegisterExternalPropertyName(sARRAY_ITEM,%s);',
|
||||||
[ASymbol.Name,QuotedStr(SymbolTable.GetArrayItemExternalName(ASymbol))]
|
[sLOCAL_TYPE_REGISTER_REFERENCE,ASymbol.Name,QuotedStr(SymbolTable.GetArrayItemExternalName(ASymbol))]
|
||||||
);
|
);
|
||||||
end;
|
end;
|
||||||
if ( SymbolTable.GetArrayStyle(ASymbol) = asEmbeded ) then begin
|
if ( SymbolTable.GetArrayStyle(ASymbol) = asEmbeded ) then begin
|
||||||
FImpTempStream.Indent();
|
FImpTempStream.Indent();
|
||||||
FImpTempStream.WriteLn(
|
FImpTempStream.WriteLn(
|
||||||
'GetTypeRegistry().ItemByTypeInfo[TypeInfo(%s)].RegisterExternalPropertyName(sARRAY_STYLE,sEmbedded);',
|
'%s.ItemByTypeInfo[TypeInfo(%s)].RegisterExternalPropertyName(sARRAY_STYLE,sEmbedded);',
|
||||||
[ASymbol.Name,QuotedStr(SymbolTable.GetArrayItemExternalName(ASymbol))]
|
[sLOCAL_TYPE_REGISTER_REFERENCE,ASymbol.Name,QuotedStr(SymbolTable.GetArrayItemExternalName(ASymbol))]
|
||||||
);
|
);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2645,8 +2667,8 @@ var
|
|||||||
for k := 0 to Pred(c) do begin
|
for k := 0 to Pred(c) do begin
|
||||||
itm := TPasVariable(ASymbol.Members[k]);
|
itm := TPasVariable(ASymbol.Members[k]);
|
||||||
if SymbolTable.IsAttributeProperty(itm) then begin
|
if SymbolTable.IsAttributeProperty(itm) then begin
|
||||||
Indent();
|
FImpFirstStream.Indent();
|
||||||
WriteLn('RegisterAttributeProperty(TypeInfo(%s),%s);',[ASymbol.Name,QuotedStr(itm.Name)]);
|
FImpFirstStream.WriteLn('RegisterAttributeProperty(TypeInfo(%s),%s);',[ASymbol.Name,QuotedStr(itm.Name)]);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2663,12 +2685,12 @@ begin
|
|||||||
|
|
||||||
Indent();
|
Indent();
|
||||||
WriteLn(
|
WriteLn(
|
||||||
'GetTypeRegistry().Register(%s,TypeInfo(%s),%s).RegisterExternalPropertyName(%s,%s);',
|
'%s.Register(%s,TypeInfo(%s),%s).RegisterExternalPropertyName(%s,%s);',
|
||||||
[ sNAME_SPACE,ASymbol.Name,QuotedStr(SymbolTable.GetExternalName(ASymbol)),
|
[ sLOCAL_TYPE_REGISTER_REFERENCE,sNAME_SPACE,ASymbol.Name,QuotedStr(SymbolTable.GetExternalName(ASymbol)),
|
||||||
QuotedStr(Format('__FIELDS__',[ASymbol.Name])),QuotedStr(strFieldList)
|
QuotedStr(Format('__FIELDS__',[ASymbol.Name])),QuotedStr(strFieldList)
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
s := 'GetTypeRegistry().ItemByTypeInfo[TypeInfo(%s)]' +
|
s := '%s.ItemByTypeInfo[TypeInfo(%s)]' +
|
||||||
'.RegisterObject(' +
|
'.RegisterObject(' +
|
||||||
'FIELDS_STRING,' +
|
'FIELDS_STRING,' +
|
||||||
'TRecordRttiDataObject.Create(' +
|
'TRecordRttiDataObject.Create(' +
|
||||||
@ -2677,11 +2699,11 @@ begin
|
|||||||
')' +
|
')' +
|
||||||
');';
|
');';
|
||||||
WriteLn('{$IFNDEF %s}',[sRECORD_RTTI_DEFINE]);
|
WriteLn('{$IFNDEF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
Indent(); WriteLn(s,[ASymbol.Name,Format('TypeInfo(%s)',[ASymbol.Name]),ASymbol.Name]);
|
Indent(); WriteLn(s,[sLOCAL_TYPE_REGISTER_REFERENCE,ASymbol.Name,Format('TypeInfo(%s)',[ASymbol.Name]),ASymbol.Name]);
|
||||||
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
|
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
|
|
||||||
WriteLn('{$IFDEF %s}',[sRECORD_RTTI_DEFINE]);
|
WriteLn('{$IFDEF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
Indent(); WriteLn(s,[ASymbol.Name,Format('__%s_TYPEINFO_FUNC__()',[ASymbol.Name]),ASymbol.Name]);
|
Indent(); WriteLn(s,[sLOCAL_TYPE_REGISTER_REFERENCE,ASymbol.Name,Format('__%s_TYPEINFO_FUNC__()',[ASymbol.Name]),ASymbol.Name]);
|
||||||
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
|
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
WriteAttributeProperties();
|
WriteAttributeProperties();
|
||||||
SetCurrentStream(FDecStream);
|
SetCurrentStream(FDecStream);
|
||||||
@ -3004,9 +3026,13 @@ begin
|
|||||||
GenerateCustomMetadatas();
|
GenerateCustomMetadatas();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
FImpFirstStream.NewLine();
|
||||||
FImpLastStream.NewLine();
|
FImpLastStream.NewLine();
|
||||||
GenerateUnitImplementationFooter();
|
GenerateUnitImplementationFooter();
|
||||||
FSrcMngr.Merge(GetDestUnitName() + '.pas',[FDecStream,FImpStream,FRttiFunc,FImpTempStream,FImpLastStream]);
|
FSrcMngr.Merge(
|
||||||
|
GetDestUnitName() + '.pas',
|
||||||
|
[FDecStream,FImpStream,FRttiFunc,FImpFirstStream,FImpTempStream,FImpLastStream]
|
||||||
|
);
|
||||||
FDecStream := nil;
|
FDecStream := nil;
|
||||||
FImpStream := nil;
|
FImpStream := nil;
|
||||||
FImpTempStream := nil;
|
FImpTempStream := nil;
|
||||||
@ -3024,8 +3050,10 @@ begin
|
|||||||
FDecStream := SrcMngr.CreateItem(GetDestUnitName() + '.dec');
|
FDecStream := SrcMngr.CreateItem(GetDestUnitName() + '.dec');
|
||||||
FImpStream := SrcMngr.CreateItem(GetDestUnitName() + '.imp');
|
FImpStream := SrcMngr.CreateItem(GetDestUnitName() + '.imp');
|
||||||
FImpTempStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp');
|
FImpTempStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp');
|
||||||
|
FImpFirstStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp_first');
|
||||||
FImpLastStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp_last');
|
FImpLastStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp_last');
|
||||||
FRttiFunc := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_rtti_func');
|
FRttiFunc := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_rtti_func');
|
||||||
|
FImpFirstStream.IncIndent();
|
||||||
FImpTempStream.IncIndent();
|
FImpTempStream.IncIndent();
|
||||||
FImpLastStream.IncIndent();
|
FImpLastStream.IncIndent();
|
||||||
end;
|
end;
|
||||||
|
Reference in New Issue
Block a user