You've already forked lazarus-ccr
Delphi6 compatibility fix
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@285 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -21,6 +21,7 @@ uses
|
|||||||
{$DEFINE wst_binary_header}
|
{$DEFINE wst_binary_header}
|
||||||
|
|
||||||
const
|
const
|
||||||
|
sBINARY_FORMAT_NAME = 'wst-binary';
|
||||||
sROOT = 'ROOT';
|
sROOT = 'ROOT';
|
||||||
sSCOPE_INNER_NAME = 'INNER_VAL';
|
sSCOPE_INNER_NAME = 'INNER_VAL';
|
||||||
sFORMAT = 'format';
|
sFORMAT = 'format';
|
||||||
@ -123,6 +124,8 @@ type
|
|||||||
function IsCurrentScopeNil():Boolean;virtual;abstract;
|
function IsCurrentScopeNil():Boolean;virtual;abstract;
|
||||||
property ScopeObject : PDataBuffer Read FScopeObject;
|
property ScopeObject : PDataBuffer Read FScopeObject;
|
||||||
property ScopeType : TScopeType Read FScopeType;
|
property ScopeType : TScopeType Read FScopeType;
|
||||||
|
|
||||||
|
function GetScopeItemNames(const AReturnList : TStrings) : Integer;virtual;abstract;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
{ TObjectStackItem }
|
{ TObjectStackItem }
|
||||||
@ -141,6 +144,7 @@ type
|
|||||||
function GetInnerBuffer():PDataBuffer;override;
|
function GetInnerBuffer():PDataBuffer;override;
|
||||||
procedure NilCurrentScope();override;
|
procedure NilCurrentScope();override;
|
||||||
function IsCurrentScopeNil():Boolean;override;
|
function IsCurrentScopeNil():Boolean;override;
|
||||||
|
function GetScopeItemNames(const AReturnList : TStrings) : Integer;override;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
{ TArrayStackItem }
|
{ TArrayStackItem }
|
||||||
@ -161,6 +165,7 @@ type
|
|||||||
function GetInnerBuffer():PDataBuffer;overload;override;
|
function GetInnerBuffer():PDataBuffer;overload;override;
|
||||||
procedure NilCurrentScope();override;
|
procedure NilCurrentScope();override;
|
||||||
function IsCurrentScopeNil():Boolean;override;
|
function IsCurrentScopeNil():Boolean;override;
|
||||||
|
function GetScopeItemNames(const AReturnList : TStrings) : Integer;override;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
{ TBaseBinaryFormatter }
|
{ TBaseBinaryFormatter }
|
||||||
@ -272,6 +277,7 @@ type
|
|||||||
public
|
public
|
||||||
constructor Create();override;
|
constructor Create();override;
|
||||||
destructor Destroy();override;
|
destructor Destroy();override;
|
||||||
|
function GetFormatName() : string;
|
||||||
|
|
||||||
procedure Clear();
|
procedure Clear();
|
||||||
|
|
||||||
@ -327,6 +333,7 @@ type
|
|||||||
var AData
|
var AData
|
||||||
);
|
);
|
||||||
function ReadBuffer(const AName : string) : string;
|
function ReadBuffer(const AName : string) : string;
|
||||||
|
procedure WriteBuffer(const AValue : string);
|
||||||
|
|
||||||
procedure SaveToStream(AStream : TStream);
|
procedure SaveToStream(AStream : TStream);
|
||||||
procedure LoadFromStream(AStream : TStream);
|
procedure LoadFromStream(AStream : TStream);
|
||||||
@ -776,6 +783,21 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
//----------------------------------------------------------------
|
//----------------------------------------------------------------
|
||||||
|
function TObjectStackItem.GetScopeItemNames(const AReturnList: TStrings): Integer;
|
||||||
|
var
|
||||||
|
locBuffer : PObjectBufferItem;
|
||||||
|
begin
|
||||||
|
AReturnList.Clear();
|
||||||
|
if Assigned(ScopeObject) and ( ScopeObject^.ObjectData^.Count > 0 ) then begin
|
||||||
|
locBuffer := ScopeObject^.ObjectData^.Head;
|
||||||
|
while Assigned(locBuffer) do begin
|
||||||
|
AReturnList.Add(locBuffer^.Data^.Name);
|
||||||
|
locBuffer := locBuffer^.Next;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Result := AReturnList.Count;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TBaseBinaryFormatter }
|
{ TBaseBinaryFormatter }
|
||||||
|
|
||||||
procedure TBaseBinaryFormatter.ClearStack();
|
procedure TBaseBinaryFormatter.ClearStack();
|
||||||
@ -1122,10 +1144,10 @@ begin
|
|||||||
Result := StackTop().GetItemCount();
|
Result := StackTop().GetItemCount();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TBaseBinaryFormatter.GetScopeItemNames(const AReturnList : TStrings
|
function TBaseBinaryFormatter.GetScopeItemNames(const AReturnList : TStrings) : Integer;
|
||||||
) : Integer;
|
|
||||||
begin
|
begin
|
||||||
|
CheckScope();
|
||||||
|
Result := StackTop.GetScopeItemNames(AReturnList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBaseBinaryFormatter.EndScopeRead();
|
procedure TBaseBinaryFormatter.EndScopeRead();
|
||||||
@ -1600,6 +1622,29 @@ begin
|
|||||||
inherited Destroy();
|
inherited Destroy();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TBaseBinaryFormatter.GetFormatName() : string;
|
||||||
|
begin
|
||||||
|
Result := sBINARY_FORMAT_NAME;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBinaryFormatter.WriteBuffer(const AValue: string);
|
||||||
|
var
|
||||||
|
locStore : IDataStoreReader;
|
||||||
|
bffr : PDataBuffer;
|
||||||
|
locStream : TStringStream;
|
||||||
|
begin
|
||||||
|
CheckScope();
|
||||||
|
locStream := TStringStream.Create(AValue);
|
||||||
|
try
|
||||||
|
locStream.Position := 0;
|
||||||
|
locStore := CreateBinaryReader(locStream);
|
||||||
|
bffr := LoadObjectFromStream(locStore);
|
||||||
|
AddObj(StackTop.ScopeObject,bffr);
|
||||||
|
finally
|
||||||
|
locStream.Free();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TArrayStackItem }
|
{ TArrayStackItem }
|
||||||
|
|
||||||
constructor TArrayStackItem.Create(const AScopeObject: PDataBuffer);
|
constructor TArrayStackItem.Create(const AScopeObject: PDataBuffer);
|
||||||
@ -1662,4 +1707,19 @@ begin
|
|||||||
Result := False;
|
Result := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TArrayStackItem.GetScopeItemNames(const AReturnList: TStrings): Integer;
|
||||||
|
var
|
||||||
|
locBuffer : PDataBufferList;
|
||||||
|
i : PtrInt;
|
||||||
|
begin
|
||||||
|
AReturnList.Clear();
|
||||||
|
if Assigned(ScopeObject) and ( ScopeObject^.ArrayData^.Count > 0 ) then begin
|
||||||
|
locBuffer := ScopeObject^.ArrayData^.Items;
|
||||||
|
for i := 0 to Pred(ScopeObject^.ArrayData^.Count) do begin
|
||||||
|
AReturnList.Add(locBuffer^[i]^.Name);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Result := AReturnList.Count;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -110,6 +110,7 @@ type
|
|||||||
public
|
public
|
||||||
procedure SetSerializationStyle(const ASerializationStyle : TSerializationStyle);
|
procedure SetSerializationStyle(const ASerializationStyle : TSerializationStyle);
|
||||||
function GetSerializationStyle():TSerializationStyle;
|
function GetSerializationStyle():TSerializationStyle;
|
||||||
|
function GetFormatName() : string;
|
||||||
procedure Clear();
|
procedure Clear();
|
||||||
|
|
||||||
procedure BeginObject(
|
procedure BeginObject(
|
||||||
@ -163,6 +164,7 @@ type
|
|||||||
var AData
|
var AData
|
||||||
);
|
);
|
||||||
function ReadBuffer(const AName : string) : string;
|
function ReadBuffer(const AName : string) : string;
|
||||||
|
procedure WriteBuffer(const AValue : string);
|
||||||
|
|
||||||
procedure SaveToStream(AStream : TStream);
|
procedure SaveToStream(AStream : TStream);
|
||||||
procedure LoadFromStream(AStream : TStream);
|
procedure LoadFromStream(AStream : TStream);
|
||||||
@ -231,7 +233,12 @@ begin
|
|||||||
Result := FSerializationStyle;
|
Result := FSerializationStyle;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TJsonRpcBaseFormatter.GetCurrentScope() : string;
|
function TJsonRpcBaseFormatter.GetFormatName(): string;
|
||||||
|
begin
|
||||||
|
Result := 'json';
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TJsonRpcBaseFormatter.GetCurrentScope : string;
|
||||||
begin
|
begin
|
||||||
CheckScope();
|
CheckScope();
|
||||||
Result := '';
|
Result := '';
|
||||||
@ -349,6 +356,11 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TJsonRpcBaseFormatter.WriteBuffer(const AValue: string);
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TJsonRpcBaseFormatter.SaveToStream(AStream : TStream);
|
procedure TJsonRpcBaseFormatter.SaveToStream(AStream : TStream);
|
||||||
begin
|
begin
|
||||||
|
|
||||||
|
@ -132,6 +132,7 @@ type
|
|||||||
|
|
||||||
IFormatterBase = Interface
|
IFormatterBase = Interface
|
||||||
['{2AB3BF54-B7D6-4C46-8245-133C8775E9C1}']
|
['{2AB3BF54-B7D6-4C46-8245-133C8775E9C1}']
|
||||||
|
function GetFormatName() : string;
|
||||||
procedure SetSerializationStyle(const ASerializationStyle : TSerializationStyle);
|
procedure SetSerializationStyle(const ASerializationStyle : TSerializationStyle);
|
||||||
function GetSerializationStyle():TSerializationStyle;
|
function GetSerializationStyle():TSerializationStyle;
|
||||||
function GetCurrentScope():string;
|
function GetCurrentScope():string;
|
||||||
@ -188,6 +189,8 @@ type
|
|||||||
var AData
|
var AData
|
||||||
);
|
);
|
||||||
function ReadBuffer(const AName : string) : string;
|
function ReadBuffer(const AName : string) : string;
|
||||||
|
//Please use this method if and _only_ if you do not have another way achieve your aim!
|
||||||
|
procedure WriteBuffer(const AValue : string);
|
||||||
|
|
||||||
procedure SaveToStream(AStream : TStream);
|
procedure SaveToStream(AStream : TStream);
|
||||||
procedure LoadFromStream(AStream : TStream);
|
procedure LoadFromStream(AStream : TStream);
|
||||||
@ -1238,15 +1241,10 @@ const
|
|||||||
|
|
||||||
function IsStoredPropClass(AClass : TClass;PropInfo : PPropInfo) : TPropStoreType;
|
function IsStoredPropClass(AClass : TClass;PropInfo : PPropInfo) : TPropStoreType;
|
||||||
|
|
||||||
{$IFDEF FPC}
|
{$IFDEF HAS_FORMAT_SETTINGS}
|
||||||
{$IFDEF FPC_211}
|
|
||||||
var
|
var
|
||||||
wst_FormatSettings : TFormatSettings;
|
wst_FormatSettings : TFormatSettings;
|
||||||
{$ENDIF}
|
{$ENDIF HAS_FORMAT_SETTINGS}
|
||||||
{$ELSE}
|
|
||||||
var
|
|
||||||
wst_FormatSettings : TFormatSettings;
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
uses imp_utils, record_rtti;
|
uses imp_utils, record_rtti;
|
||||||
@ -3512,7 +3510,7 @@ begin
|
|||||||
lst.Delimiter := PROP_LIST_DELIMITER;
|
lst.Delimiter := PROP_LIST_DELIMITER;
|
||||||
lst.DelimitedText := APropsStr;
|
lst.DelimitedText := APropsStr;
|
||||||
for i := 0 to Pred(lst.Count) do
|
for i := 0 to Pred(lst.Count) do
|
||||||
SetProperty(lst.Names[i],lst.ValueFromIndex[i]);
|
SetProperty(lst.Names[i],lst.Values[lst.Names[i]]);
|
||||||
finally
|
finally
|
||||||
lst.Free();
|
lst.Free();
|
||||||
end;
|
end;
|
||||||
@ -4860,15 +4858,15 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
{$IFDEF FPC}
|
{$IFDEF HAS_FORMAT_SETTINGS}
|
||||||
{$IFDEF FPC_211}
|
{$IFDEF FPC}
|
||||||
wst_FormatSettings := DefaultFormatSettings;
|
wst_FormatSettings := DefaultFormatSettings;
|
||||||
wst_FormatSettings.DecimalSeparator := '.';
|
wst_FormatSettings.DecimalSeparator := '.';
|
||||||
{$ENDIF}
|
{$ELSE}
|
||||||
{$ELSE}
|
|
||||||
GetLocaleFormatSettings(GetThreadLocale(),wst_FormatSettings);
|
GetLocaleFormatSettings(GetThreadLocale(),wst_FormatSettings);
|
||||||
wst_FormatSettings.DecimalSeparator := '.';
|
wst_FormatSettings.DecimalSeparator := '.';
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
{$ENDIF HAS_FORMAT_SETTINGS}
|
||||||
|
|
||||||
TypeRegistryInstance := TTypeRegistry.Create();
|
TypeRegistryInstance := TTypeRegistry.Create();
|
||||||
SerializeOptionsRegistryInstance := TSerializeOptionsRegistry.Create();
|
SerializeOptionsRegistryInstance := TSerializeOptionsRegistry.Create();
|
||||||
|
@ -73,6 +73,8 @@ type
|
|||||||
property EmbeddedScopeCount : Integer read FEmbeddedScopeCount;
|
property EmbeddedScopeCount : Integer read FEmbeddedScopeCount;
|
||||||
function BeginEmbeddedScope() : Integer;
|
function BeginEmbeddedScope() : Integer;
|
||||||
function EndEmbeddedScope() : Integer;
|
function EndEmbeddedScope() : Integer;
|
||||||
|
|
||||||
|
function GetScopeItemNames(const AReturnList : TStrings) : Integer;virtual;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
{ TObjectStackItem }
|
{ TObjectStackItem }
|
||||||
@ -286,6 +288,7 @@ type
|
|||||||
public
|
public
|
||||||
constructor Create();override;
|
constructor Create();override;
|
||||||
destructor Destroy();override;
|
destructor Destroy();override;
|
||||||
|
function GetFormatName() : string;
|
||||||
procedure Clear();
|
procedure Clear();
|
||||||
|
|
||||||
procedure BeginObject(
|
procedure BeginObject(
|
||||||
@ -339,6 +342,7 @@ type
|
|||||||
var AData
|
var AData
|
||||||
);
|
);
|
||||||
function ReadBuffer(const AName : string) : string;
|
function ReadBuffer(const AName : string) : string;
|
||||||
|
procedure WriteBuffer(const AValue : string);
|
||||||
|
|
||||||
procedure SaveToStream(AStream : TStream);
|
procedure SaveToStream(AStream : TStream);
|
||||||
procedure LoadFromStream(AStream : TStream);
|
procedure LoadFromStream(AStream : TStream);
|
||||||
@ -390,6 +394,17 @@ begin
|
|||||||
Result := FEmbeddedScopeCount;
|
Result := FEmbeddedScopeCount;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TStackItem.GetScopeItemNames(const AReturnList: TStrings): Integer;
|
||||||
|
var
|
||||||
|
i : Integer;
|
||||||
|
begin
|
||||||
|
AReturnList.Clear();
|
||||||
|
for i := 0 to Pred(GetItemsCount()) do begin
|
||||||
|
AReturnList.Add(ScopeObject.childNodes.Item[i].nodeName);
|
||||||
|
end;
|
||||||
|
Result := AReturnList.Count;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TObjectStackItem }
|
{ TObjectStackItem }
|
||||||
|
|
||||||
function TObjectStackItem.FindNode(var ANodeName: string): TDOMNode;
|
function TObjectStackItem.FindNode(var ANodeName: string): TDOMNode;
|
||||||
@ -497,7 +512,8 @@ end;
|
|||||||
|
|
||||||
function TSOAPBaseFormatter.GetScopeItemNames(const AReturnList : TStrings) : Integer;
|
function TSOAPBaseFormatter.GetScopeItemNames(const AReturnList : TStrings) : Integer;
|
||||||
begin
|
begin
|
||||||
|
CheckScope();
|
||||||
|
Result := StackTop().GetScopeItemNames(AReturnList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSOAPBaseFormatter.EndScopeRead();
|
procedure TSOAPBaseFormatter.EndScopeRead();
|
||||||
@ -769,7 +785,9 @@ function TSOAPBaseFormatter.PutFloat(
|
|||||||
Var
|
Var
|
||||||
s, frmt : string;
|
s, frmt : string;
|
||||||
prcsn : Integer;
|
prcsn : Integer;
|
||||||
{$IFDEF FPC} {$IFNDEF FPC_211} i : Integer; {$ENDIF}{$ENDIF}
|
{$IFNDEF HAS_FORMAT_SETTINGS}
|
||||||
|
i : Integer;
|
||||||
|
{$ENDIF HAS_FORMAT_SETTINGS}
|
||||||
begin
|
begin
|
||||||
Case GetTypeData(ATypeInfo)^.FloatType Of
|
Case GetTypeData(ATypeInfo)^.FloatType Of
|
||||||
ftSingle,
|
ftSingle,
|
||||||
@ -779,18 +797,14 @@ begin
|
|||||||
ftExtended : prcsn := 15;
|
ftExtended : prcsn := 15;
|
||||||
End;
|
End;
|
||||||
frmt := '#.' + StringOfChar('#',prcsn) + 'E-0';
|
frmt := '#.' + StringOfChar('#',prcsn) + 'E-0';
|
||||||
{$IFDEF FPC}
|
{$IFDEF HAS_FORMAT_SETTINGS}
|
||||||
{$IFDEF FPC_211}
|
|
||||||
s := FormatFloat(frmt,AData,wst_FormatSettings);
|
s := FormatFloat(frmt,AData,wst_FormatSettings);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
s := FormatFloat(frmt,AData);
|
s := FormatFloat(frmt,AData);
|
||||||
i := Pos(',',s);
|
i := Pos(',',s);
|
||||||
If ( i > 0 ) Then
|
if ( i > 0 ) then
|
||||||
s[i] := '.';
|
s[i] := '.';
|
||||||
{$ENDIF}
|
{$ENDIF HAS_FORMAT_SETTINGS}
|
||||||
{$ELSE}
|
|
||||||
s := FormatFloat(frmt,AData,wst_FormatSettings);
|
|
||||||
{$ENDIF}
|
|
||||||
Result := InternalPutData(AName,ATypeInfo,s);
|
Result := InternalPutData(AName,ATypeInfo,s);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -881,16 +895,11 @@ procedure TSOAPBaseFormatter.GetFloat(
|
|||||||
var AData : Extended
|
var AData : Extended
|
||||||
);
|
);
|
||||||
begin
|
begin
|
||||||
{$IFDEF FPC}
|
{$IFDEF HAS_FORMAT_SETTINGS}
|
||||||
{$IFDEF FPC_211}
|
|
||||||
AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
|
AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
|
||||||
{$ELSE}
|
|
||||||
AData := StrToFloatDef(Trim(GetNodeValue(AName)),0);
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
|
AData := StrToFloatDef(TranslateDotToDecimalSeperator(Trim(GetNodeValue(AName))),0);
|
||||||
{$ENDIF}
|
{$ENDIF HAS_FORMAT_SETTINGS}
|
||||||
//AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TSOAPBaseFormatter.GetStr(
|
procedure TSOAPBaseFormatter.GetStr(
|
||||||
@ -1729,15 +1738,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
tkFloat :
|
tkFloat :
|
||||||
begin
|
begin
|
||||||
{$IFDEF FPC}
|
{$IFDEF HAS_FORMAT_SETTINGS}
|
||||||
{$IFDEF FPC_211}
|
|
||||||
floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
|
floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
|
||||||
{$ELSE}
|
|
||||||
floatDt := StrToFloatDef(Trim(dataBuffer),0);
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
|
floatDt := StrToFloatDef(TranslateDotToDecimalSeperator(Trim(dataBuffer)),0);
|
||||||
{$ENDIF}
|
{$ENDIF HAS_FORMAT_SETTINGS}
|
||||||
case GetTypeData(ATypeInfo)^.FloatType of
|
case GetTypeData(ATypeInfo)^.FloatType of
|
||||||
ftSingle : Single(AData) := floatDt;
|
ftSingle : Single(AData) := floatDt;
|
||||||
ftDouble : Double(AData) := floatDt;
|
ftDouble : Double(AData) := floatDt;
|
||||||
@ -1805,6 +1810,30 @@ begin
|
|||||||
Raise ESOAPException.CreateFmt(AMsg,AArgs);
|
Raise ESOAPException.CreateFmt(AMsg,AArgs);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TSOAPBaseFormatter.GetFormatName() : string;
|
||||||
|
begin
|
||||||
|
Result := sPROTOCOL_NAME;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSOAPBaseFormatter.WriteBuffer(const AValue: string);
|
||||||
|
var
|
||||||
|
strm : TStringStream;
|
||||||
|
locDoc : TwstXMLDocument;
|
||||||
|
locNode : TDOMNode;
|
||||||
|
begin
|
||||||
|
CheckScope();
|
||||||
|
locDoc := nil;
|
||||||
|
strm := TStringStream.Create(AValue);
|
||||||
|
try
|
||||||
|
ReadXMLFile(locDoc,strm);
|
||||||
|
locNode := locDoc.DocumentElement.CloneNode(True {$IFDEF FPC}, StackTop().ScopeObject.OwnerDocument{$ENDIF});
|
||||||
|
StackTop().ScopeObject.AppendChild(locNode);
|
||||||
|
finally
|
||||||
|
ReleaseDomNode(locDoc);
|
||||||
|
strm.Free();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TScopedArrayStackItem }
|
{ TScopedArrayStackItem }
|
||||||
|
|
||||||
function TScopedArrayStackItem.CreateList(const ANodeName : string): TDOMNodeList;
|
function TScopedArrayStackItem.CreateList(const ANodeName : string): TDOMNodeList;
|
||||||
|
@ -87,6 +87,8 @@ type
|
|||||||
property ScopeType : TScopeType Read FScopeType;
|
property ScopeType : TScopeType Read FScopeType;
|
||||||
property ItemsCount : Integer read GetItemsCount;
|
property ItemsCount : Integer read GetItemsCount;
|
||||||
property FoundState : TFoundState read FFoundState;
|
property FoundState : TFoundState read FFoundState;
|
||||||
|
|
||||||
|
function GetScopeItemNames(const AReturnList : TStrings) : Integer;virtual;abstract;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TObjectStackItem }
|
{ TObjectStackItem }
|
||||||
@ -98,21 +100,36 @@ type
|
|||||||
Const AName : string;
|
Const AName : string;
|
||||||
const ADataType : TXmlRpcDataType
|
const ADataType : TXmlRpcDataType
|
||||||
):TDOMNode;override;
|
):TDOMNode;override;
|
||||||
|
|
||||||
|
function GetScopeItemNames(const AReturnList : TStrings) : Integer;override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TBaseArrayStackItem = class(TStackItem)
|
||||||
|
private
|
||||||
|
FItemList : TDOMNodeList;
|
||||||
|
FIndex : Integer;
|
||||||
|
FIndexStack : array of Integer;
|
||||||
|
FIndexStackIDX : Integer;
|
||||||
|
private
|
||||||
|
function PushIndex(const AValue : Integer) : Integer;
|
||||||
|
function PopIndex() : Integer;
|
||||||
|
public
|
||||||
|
destructor Destroy();override;
|
||||||
|
function GetScopeItemNames(const AReturnList : TStrings) : Integer;override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TArrayStackItem }
|
{ TArrayStackItem }
|
||||||
|
|
||||||
TArrayStackItem = class(TStackItem)
|
TArrayStackItem = class(TBaseArrayStackItem)
|
||||||
private
|
private
|
||||||
FItemList : TDOMNodeList;
|
|
||||||
FIndex : Integer;
|
|
||||||
FDataScope : TDOMNode;
|
FDataScope : TDOMNode;
|
||||||
protected
|
protected
|
||||||
procedure EnsureListCreated();
|
procedure EnsureListCreated();
|
||||||
function GetItemsCount() : Integer;override;
|
function GetItemsCount() : Integer;override;
|
||||||
function CreateList():TDOMNodeList;
|
function CreateList():TDOMNodeList;
|
||||||
|
function PushIndex(const AValue : Integer) : Integer;
|
||||||
|
function PopIndex() : Integer;
|
||||||
public
|
public
|
||||||
destructor Destroy();override;
|
|
||||||
function FindNode(var ANodeName : string):TDOMNode;override;
|
function FindNode(var ANodeName : string):TDOMNode;override;
|
||||||
function CreateBuffer(
|
function CreateBuffer(
|
||||||
Const AName : string;
|
Const AName : string;
|
||||||
@ -122,16 +139,12 @@ type
|
|||||||
|
|
||||||
{ TParamsArrayStackItem }
|
{ TParamsArrayStackItem }
|
||||||
|
|
||||||
TParamsArrayStackItem = class(TStackItem)
|
TParamsArrayStackItem = class(TBaseArrayStackItem)
|
||||||
private
|
|
||||||
FItemList : TDOMNodeList;
|
|
||||||
FIndex : Integer;
|
|
||||||
protected
|
protected
|
||||||
procedure EnsureListCreated();
|
procedure EnsureListCreated();
|
||||||
function GetItemsCount() : Integer;override;
|
function GetItemsCount() : Integer;override;
|
||||||
function CreateList():TDOMNodeList;
|
function CreateList():TDOMNodeList;
|
||||||
public
|
public
|
||||||
destructor Destroy();override;
|
|
||||||
function FindNode(var ANodeName : string):TDOMNode;override;
|
function FindNode(var ANodeName : string):TDOMNode;override;
|
||||||
function CreateBuffer(
|
function CreateBuffer(
|
||||||
Const AName : string;
|
Const AName : string;
|
||||||
@ -287,6 +300,7 @@ type
|
|||||||
public
|
public
|
||||||
constructor Create();override;
|
constructor Create();override;
|
||||||
destructor Destroy();override;
|
destructor Destroy();override;
|
||||||
|
function GetFormatName() : string;
|
||||||
procedure Clear();
|
procedure Clear();
|
||||||
|
|
||||||
procedure BeginObject(
|
procedure BeginObject(
|
||||||
@ -340,6 +354,7 @@ type
|
|||||||
var AData
|
var AData
|
||||||
);
|
);
|
||||||
function ReadBuffer(const AName : string) : string;
|
function ReadBuffer(const AName : string) : string;
|
||||||
|
procedure WriteBuffer(const AValue : string);
|
||||||
|
|
||||||
procedure SaveToStream(AStream : TStream);
|
procedure SaveToStream(AStream : TStream);
|
||||||
procedure LoadFromStream(AStream : TStream);
|
procedure LoadFromStream(AStream : TStream);
|
||||||
@ -444,6 +459,35 @@ begin
|
|||||||
nd.AppendChild(Result);
|
nd.AppendChild(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TObjectStackItem.GetScopeItemNames(const AReturnList: TStrings): Integer;
|
||||||
|
var
|
||||||
|
memberNode, tmpNode : TDOMNode;
|
||||||
|
i : Integer;
|
||||||
|
chilNodes : TDOMNodeList;
|
||||||
|
begin
|
||||||
|
AReturnList.Clear();
|
||||||
|
if ScopeObject.HasChildNodes() then begin
|
||||||
|
memberNode := ScopeObject.FirstChild;
|
||||||
|
while ( memberNode <> nil ) do begin
|
||||||
|
if memberNode.HasChildNodes() then begin
|
||||||
|
chilNodes := memberNode.ChildNodes;
|
||||||
|
for i := 0 to Pred(GetNodeListCount(chilNodes)) do begin
|
||||||
|
tmpNode := chilNodes.Item[i];
|
||||||
|
if AnsiSameText(sNAME,tmpNode.NodeName) then begin
|
||||||
|
if ( tmpNode.FirstChild <> nil ) then
|
||||||
|
AReturnList.Add(tmpNode.FirstChild.NodeValue)
|
||||||
|
else
|
||||||
|
AReturnList.Add('');
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
memberNode := memberNode.NextSibling;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Result := AReturnList.Count;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TArrayStackItem }
|
{ TArrayStackItem }
|
||||||
|
|
||||||
procedure TArrayStackItem.EnsureListCreated();
|
procedure TArrayStackItem.EnsureListCreated();
|
||||||
@ -472,13 +516,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TArrayStackItem.Destroy();
|
|
||||||
begin
|
|
||||||
if Assigned(FItemList) then
|
|
||||||
ReleaseDomNode(FItemList);
|
|
||||||
inherited Destroy();
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TArrayStackItem.FindNode(var ANodeName: string): TDOMNode;
|
function TArrayStackItem.FindNode(var ANodeName: string): TDOMNode;
|
||||||
begin
|
begin
|
||||||
EnsureListCreated();
|
EnsureListCreated();
|
||||||
@ -516,6 +553,26 @@ begin
|
|||||||
nd.AppendChild(Result);
|
nd.AppendChild(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TArrayStackItem.PushIndex(const AValue: Integer): Integer;
|
||||||
|
begin
|
||||||
|
if ( FIndexStackIDX = Length(FIndexStack) ) then begin
|
||||||
|
if ( Length(FIndexStack) = 0 ) then
|
||||||
|
FIndexStackIDX := -1;
|
||||||
|
SetLength(FIndexStack, Length(FIndexStack) + 4);
|
||||||
|
end;
|
||||||
|
Result := FIndex;
|
||||||
|
Inc(FIndexStackIDX);
|
||||||
|
FIndexStack[FIndexStackIDX] := AValue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TArrayStackItem.PopIndex() : Integer;
|
||||||
|
begin
|
||||||
|
if ( Length(FIndexStack) = 0 ) or ( FIndexStackIDX < 0 ) then
|
||||||
|
raise EXmlRpcException.Create('TArrayStackItem.PopIndex() >> No saved index.');
|
||||||
|
FIndex := FIndexStack[FIndexStackIDX];
|
||||||
|
Dec(FIndexStackIDX);
|
||||||
|
end;
|
||||||
|
|
||||||
{ TXmlRpcBaseFormatter }
|
{ TXmlRpcBaseFormatter }
|
||||||
|
|
||||||
procedure TXmlRpcBaseFormatter.ClearStack();
|
procedure TXmlRpcBaseFormatter.ClearStack();
|
||||||
@ -564,10 +621,10 @@ begin
|
|||||||
Result := InternalBeginScopeRead(AScopeName,ATypeInfo,stArray,AStyle,AItemName);
|
Result := InternalBeginScopeRead(AScopeName,ATypeInfo,stArray,AStyle,AItemName);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TXmlRpcBaseFormatter.GetScopeItemNames(const AReturnList : TStrings
|
function TXmlRpcBaseFormatter.GetScopeItemNames(const AReturnList : TStrings) : Integer;
|
||||||
) : Integer;
|
|
||||||
begin
|
begin
|
||||||
|
CheckScope();
|
||||||
|
Result := StackTop.GetScopeItemNames(AReturnList);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TXmlRpcBaseFormatter.EndScopeRead();
|
procedure TXmlRpcBaseFormatter.EndScopeRead();
|
||||||
@ -858,16 +915,11 @@ procedure TXmlRpcBaseFormatter.GetFloat(
|
|||||||
var AData : Extended
|
var AData : Extended
|
||||||
);
|
);
|
||||||
begin
|
begin
|
||||||
{$IFDEF FPC}
|
{$IFDEF HAS_FORMAT_SETTINGS}
|
||||||
{$IFDEF FPC_211}
|
|
||||||
AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
|
AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
|
||||||
{$ELSE}
|
|
||||||
AData := StrToFloatDef(Trim(GetNodeValue(AName)),0);
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
|
AData := StrToFloatDef(TranslateDotToDecimalSeperator(Trim(GetNodeValue(AName))),0);
|
||||||
{$ENDIF}
|
{$ENDIF HAS_FORMAT_SETTINGS}
|
||||||
//AData := StrToFloatDef(Trim(GetNodeValue(AName)),0,wst_FormatSettings);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TXmlRpcBaseFormatter.GetStr(
|
procedure TXmlRpcBaseFormatter.GetStr(
|
||||||
@ -1375,16 +1427,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
tkFloat :
|
tkFloat :
|
||||||
begin
|
begin
|
||||||
{$IFDEF FPC}
|
{$IFDEF HAS_FORMAT_SETTINGS}
|
||||||
{$IFDEF FPC_211}
|
|
||||||
floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
|
floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
|
||||||
{$ELSE}
|
|
||||||
floatDt := StrToFloatDef(Trim(dataBuffer),0);
|
|
||||||
{$ENDIF}
|
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
|
floatDt := StrToFloatDef(TranslateDotToDecimalSeperator(Trim(dataBuffer)),0);
|
||||||
{$ENDIF}
|
{$ENDIF HAS_FORMAT_SETTINGS}
|
||||||
//floatDt := StrToFloatDef(Trim(dataBuffer),0,wst_FormatSettings);
|
|
||||||
case GetTypeData(ATypeInfo)^.FloatType of
|
case GetTypeData(ATypeInfo)^.FloatType of
|
||||||
ftSingle : Single(AData) := floatDt;
|
ftSingle : Single(AData) := floatDt;
|
||||||
ftDouble : Double(AData) := floatDt;
|
ftDouble : Double(AData) := floatDt;
|
||||||
@ -1441,6 +1488,29 @@ begin
|
|||||||
Raise EXmlRpcException.CreateFmt(AMsg,AArgs);
|
Raise EXmlRpcException.CreateFmt(AMsg,AArgs);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TXmlRpcBaseFormatter.GetFormatName() : string;
|
||||||
|
begin
|
||||||
|
Result := sPROTOCOL_NAME;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TXmlRpcBaseFormatter.WriteBuffer(const AValue: string);
|
||||||
|
var
|
||||||
|
strm : TStringStream;
|
||||||
|
locDoc : TwstXMLDocument;
|
||||||
|
locNode : TDOMNode;
|
||||||
|
begin
|
||||||
|
CheckScope();
|
||||||
|
locDoc := nil;
|
||||||
|
strm := TStringStream.Create(AValue);
|
||||||
|
try
|
||||||
|
ReadXMLFile(locDoc,strm);
|
||||||
|
locNode := locDoc.DocumentElement.CloneNode(True {$IFDEF FPC}, StackTop().ScopeObject.OwnerDocument{$ENDIF});
|
||||||
|
StackTop().ScopeObject.AppendChild(locNode);
|
||||||
|
finally
|
||||||
|
ReleaseDomNode(locDoc);
|
||||||
|
strm.Free();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TParamsArrayStackItem }
|
{ TParamsArrayStackItem }
|
||||||
|
|
||||||
@ -1470,13 +1540,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TParamsArrayStackItem.Destroy();
|
|
||||||
begin
|
|
||||||
if Assigned(FItemList) then
|
|
||||||
ReleaseDomNode(FItemList);
|
|
||||||
inherited Destroy();
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TParamsArrayStackItem.FindNode(var ANodeName: string): TDOMNode;
|
function TParamsArrayStackItem.FindNode(var ANodeName: string): TDOMNode;
|
||||||
begin
|
begin
|
||||||
EnsureListCreated();
|
EnsureListCreated();
|
||||||
@ -1511,4 +1574,55 @@ begin
|
|||||||
valueNode.AppendChild(Result);
|
valueNode.AppendChild(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TBaseArrayStackItem }
|
||||||
|
|
||||||
|
destructor TBaseArrayStackItem.Destroy;
|
||||||
|
begin
|
||||||
|
SetLength(FIndexStack,0);
|
||||||
|
if Assigned(FItemList) then
|
||||||
|
ReleaseDomNode(FItemList);
|
||||||
|
inherited Destroy();
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TBaseArrayStackItem.GetScopeItemNames(const AReturnList: TStrings): Integer;
|
||||||
|
var
|
||||||
|
i : Integer;
|
||||||
|
locName : string;
|
||||||
|
begin
|
||||||
|
AReturnList.Clear();
|
||||||
|
PushIndex(0);
|
||||||
|
try
|
||||||
|
locName := '';
|
||||||
|
for i := 0 to Pred(GetItemsCount()) do begin
|
||||||
|
FindNode(locName);
|
||||||
|
AReturnList.Add(locName);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
PopIndex();
|
||||||
|
end;
|
||||||
|
Result := AReturnList.Count;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TBaseArrayStackItem.PopIndex() : Integer;
|
||||||
|
begin
|
||||||
|
if ( Length(FIndexStack) = 0 ) or ( FIndexStackIDX < 0 ) then
|
||||||
|
raise EXmlRpcException.Create('TArrayStackItem.PopIndex() >> No saved index.');
|
||||||
|
Result := FIndex;
|
||||||
|
FIndex := FIndexStack[FIndexStackIDX];
|
||||||
|
Dec(FIndexStackIDX);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TBaseArrayStackItem.PushIndex(const AValue: Integer): Integer;
|
||||||
|
begin
|
||||||
|
if ( FIndexStackIDX = Length(FIndexStack) ) then begin
|
||||||
|
if ( Length(FIndexStack) = 0 ) then
|
||||||
|
FIndexStackIDX := -1;
|
||||||
|
SetLength(FIndexStack, Length(FIndexStack) + 4);
|
||||||
|
end;
|
||||||
|
Inc(FIndexStackIDX);
|
||||||
|
Result := FIndex;
|
||||||
|
FIndex := AValue;
|
||||||
|
FIndexStack[FIndexStackIDX] := Result;
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -45,6 +45,7 @@ Type
|
|||||||
function IsStrEmpty(Const AStr:String):Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
function IsStrEmpty(Const AStr:String):Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function GetToken(var ABuffer : string; const ADelimiter : string): string;
|
function GetToken(var ABuffer : string; const ADelimiter : string): string;
|
||||||
function ExtractOptionName(const ACompleteName : string):string;
|
function ExtractOptionName(const ACompleteName : string):string;
|
||||||
|
function TranslateDotToDecimalSeperator(const Value: string) : string;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
uses wst_types;
|
uses wst_types;
|
||||||
@ -86,6 +87,17 @@ begin
|
|||||||
Result := Trim(Result);
|
Result := Trim(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TranslateDotToDecimalSeperator(const Value: string) : string;
|
||||||
|
var
|
||||||
|
i : PtrInt;
|
||||||
|
begin
|
||||||
|
Result := Value;
|
||||||
|
for i := 1 to length(Result) do begin
|
||||||
|
if ( Result[i] = '.' ) then
|
||||||
|
Result[i] := DecimalSeparator;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TPublishedPropertyManager }
|
{ TPublishedPropertyManager }
|
||||||
|
|
||||||
procedure TPublishedPropertyManager.Error(const AMsg: string);
|
procedure TPublishedPropertyManager.Error(const AMsg: string);
|
||||||
@ -124,9 +136,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPublishedPropertyManager.SetProperties(const APropsStr: string);
|
procedure TPublishedPropertyManager.SetProperties(const APropsStr: string);
|
||||||
Var
|
var
|
||||||
lst : TStringList;
|
lst : TStringList;
|
||||||
i : Integer;
|
i : PtrInt;
|
||||||
begin
|
begin
|
||||||
If IsStrEmpty(APropsStr) Then
|
If IsStrEmpty(APropsStr) Then
|
||||||
Exit;
|
Exit;
|
||||||
@ -135,8 +147,8 @@ begin
|
|||||||
lst.QuoteChar := #0;
|
lst.QuoteChar := #0;
|
||||||
lst.Delimiter := PROP_LIST_DELIMITER;
|
lst.Delimiter := PROP_LIST_DELIMITER;
|
||||||
lst.DelimitedText := APropsStr;
|
lst.DelimitedText := APropsStr;
|
||||||
For i := 0 To Pred(lst.Count) Do
|
for i := 0 to Pred(lst.Count) do
|
||||||
SetProperty(lst.Names[i],lst.ValueFromIndex[i]);
|
SetProperty(lst.Names[i],lst.Values[lst.Names[i]]);
|
||||||
Finally
|
Finally
|
||||||
lst.Free();
|
lst.Free();
|
||||||
End;
|
End;
|
||||||
|
@ -30,6 +30,9 @@ type
|
|||||||
|
|
||||||
TTestEnum = ( teOne, teTwo, teThree, teFour );
|
TTestEnum = ( teOne, teTwo, teThree, teFour );
|
||||||
|
|
||||||
|
TArrayOfStringRemotableSample = class(TArrayOfStringRemotable)
|
||||||
|
end;
|
||||||
|
|
||||||
{ TClass_A }
|
{ TClass_A }
|
||||||
|
|
||||||
TClass_A = class(TBaseComplexRemotable)
|
TClass_A = class(TBaseComplexRemotable)
|
||||||
@ -334,7 +337,9 @@ type
|
|||||||
|
|
||||||
{ TTestFormatter }
|
{ TTestFormatter }
|
||||||
|
|
||||||
TTestFormatter= class(TTestFormatterSimpleType)
|
TTestFormatter = class(TTestFormatterSimpleType)
|
||||||
|
protected
|
||||||
|
class function GetFormaterName() : string;virtual;abstract;
|
||||||
published
|
published
|
||||||
procedure Test_Int_WithClass;
|
procedure Test_Int_WithClass;
|
||||||
|
|
||||||
@ -380,13 +385,17 @@ type
|
|||||||
procedure Test_Record_nested();
|
procedure Test_Record_nested();
|
||||||
|
|
||||||
procedure test_GetScopeItemNames();
|
procedure test_GetScopeItemNames();
|
||||||
|
procedure test_GetFormaterName();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TTestBinaryFormatter }
|
{ TTestBinaryFormatter }
|
||||||
|
|
||||||
TTestBinaryFormatter= class(TTestFormatter)
|
TTestBinaryFormatter= class(TTestFormatter)
|
||||||
protected
|
protected
|
||||||
|
class function GetFormaterName() : string;override;
|
||||||
function CreateFormatter(ARootType : PTypeInfo):IFormatterBase;override;
|
function CreateFormatter(ARootType : PTypeInfo):IFormatterBase;override;
|
||||||
|
published
|
||||||
|
procedure test_WriteBuffer();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TTestBinaryFormatterAttributes }
|
{ TTestBinaryFormatterAttributes }
|
||||||
@ -400,7 +409,10 @@ type
|
|||||||
|
|
||||||
TTestSOAPFormatter= class(TTestFormatter)
|
TTestSOAPFormatter= class(TTestFormatter)
|
||||||
protected
|
protected
|
||||||
|
class function GetFormaterName() : string;override;
|
||||||
function CreateFormatter(ARootType : PTypeInfo):IFormatterBase;override;
|
function CreateFormatter(ARootType : PTypeInfo):IFormatterBase;override;
|
||||||
|
published
|
||||||
|
procedure test_WriteBuffer();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TTestSOAPFormatterAttributes }
|
{ TTestSOAPFormatterAttributes }
|
||||||
@ -419,9 +431,12 @@ type
|
|||||||
|
|
||||||
TTestXmlRpcFormatter= class(TTestFormatter)
|
TTestXmlRpcFormatter= class(TTestFormatter)
|
||||||
protected
|
protected
|
||||||
|
class function GetFormaterName() : string;override;
|
||||||
function CreateFormatter(ARootType : PTypeInfo):IFormatterBase;override;
|
function CreateFormatter(ARootType : PTypeInfo):IFormatterBase;override;
|
||||||
function Support_ComplextType_with_SimpleContent():Boolean;override;
|
function Support_ComplextType_with_SimpleContent():Boolean;override;
|
||||||
function Support_nil():Boolean;override;
|
function Support_nil():Boolean;override;
|
||||||
|
published
|
||||||
|
procedure test_WriteBuffer();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TTestArray }
|
{ TTestArray }
|
||||||
@ -530,6 +545,152 @@ uses base_binary_formatter, base_soap_formatter, base_xmlrpc_formatter, record_r
|
|||||||
server_service_xmlrpc, xmlrpc_formatter,
|
server_service_xmlrpc, xmlrpc_formatter,
|
||||||
binary_streamer, server_binary_formatter, binary_formatter;
|
binary_streamer, server_binary_formatter, binary_formatter;
|
||||||
|
|
||||||
|
function CompareNodes(const A,B : PDataBuffer) : Boolean;overload;forward;
|
||||||
|
|
||||||
|
function CompareObjectBuffers(const A,B : PObjectBuffer) : Boolean;overload;
|
||||||
|
var
|
||||||
|
ca, cb : PObjectBufferItem;
|
||||||
|
ok : Boolean;
|
||||||
|
begin
|
||||||
|
if ( A = nil ) and ( B = nil ) then begin
|
||||||
|
Result := True
|
||||||
|
end else if ( A <> nil ) and ( B <> nil ) then begin
|
||||||
|
if ( A^.NilObject = B^.NilObject ) and
|
||||||
|
( A^.Count = B^.Count ) and
|
||||||
|
( CompareNodes(A^.InnerData,B^.InnerData) )
|
||||||
|
then begin
|
||||||
|
if ( A^.Count > 0 ) then begin
|
||||||
|
ca := A^.Head;
|
||||||
|
cb := B^.Head;
|
||||||
|
while Assigned(ca) do begin
|
||||||
|
if not CompareNodes(ca^.Data,cb^.Data) then
|
||||||
|
Break;
|
||||||
|
ca := ca^.Next;
|
||||||
|
cb := cb^.Next;
|
||||||
|
end;
|
||||||
|
ok := ( ca = nil );
|
||||||
|
end else begin
|
||||||
|
ok := True;
|
||||||
|
end;
|
||||||
|
end else begin
|
||||||
|
ok := False;
|
||||||
|
end;
|
||||||
|
if ok then
|
||||||
|
Result := CompareObjectBuffers(A^.Attributes,B^.Attributes);
|
||||||
|
end else begin
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompareObjectBuffers(const A,B : PArrayBuffer) : Boolean;overload;
|
||||||
|
var
|
||||||
|
i : Integer;
|
||||||
|
ok : Boolean;
|
||||||
|
begin
|
||||||
|
if ( A = nil ) and ( B = nil ) then begin
|
||||||
|
Result := ok
|
||||||
|
end else if ( A <> nil ) and ( B <> nil ) then begin
|
||||||
|
if ( A^.Count = B^.Count ) then begin
|
||||||
|
ok := True;
|
||||||
|
if ( A^.Count > 0 ) then begin
|
||||||
|
for i := 0 to Pred(A^.Count) do begin
|
||||||
|
if not CompareNodes(A^.Items^[i],B^.Items^[i]) then begin
|
||||||
|
ok := False;
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if ok then
|
||||||
|
ok := CompareObjectBuffers(A^.Attributes,B^.Attributes);
|
||||||
|
end else begin
|
||||||
|
ok := False;
|
||||||
|
end;
|
||||||
|
end else begin
|
||||||
|
Result := ok;
|
||||||
|
end;
|
||||||
|
Result := ok;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompareNodes(const A,B : PDataBuffer) : Boolean;overload;
|
||||||
|
var
|
||||||
|
ca, cb : PObjectBufferItem;
|
||||||
|
i : PtrInt;
|
||||||
|
ok : Boolean;
|
||||||
|
begin
|
||||||
|
if ( A = nil ) and ( B = nil ) then begin
|
||||||
|
ok := True;
|
||||||
|
end else if ( A <> nil ) and ( B <> nil ) then begin
|
||||||
|
ok := False;
|
||||||
|
if ( A^.DataType = B^.DataType ) and
|
||||||
|
( A^.Name = B^.Name )
|
||||||
|
then begin
|
||||||
|
case A^.DataType of
|
||||||
|
dtInt8U,dtInt8S : ok := ( A^.Int8U = A^.Int8U );
|
||||||
|
dtInt16U,dtInt16S : ok := ( A^.Int16U = A^.Int16U );
|
||||||
|
dtInt32U,dtInt32S : ok := ( A^.Int32U = A^.Int32U );
|
||||||
|
dtInt64U,dtInt64S : ok := ( A^.Int64U = A^.Int64U );
|
||||||
|
dtBool : ok := ( A^.BoolData = A^.BoolData );
|
||||||
|
dtEnum : ok := ( A^.EnumData = A^.EnumData );
|
||||||
|
dtSingle : ok := ( A^.SingleData = A^.SingleData );
|
||||||
|
dtDouble : ok := ( A^.DoubleData = A^.DoubleData );
|
||||||
|
dtExtended : ok := ( A^.ExtendedData = A^.ExtendedData );
|
||||||
|
dtCurrency : ok := ( A^.CurrencyData = A^.CurrencyData );
|
||||||
|
dtString : ok := ( A^.StrData = A^.StrData );
|
||||||
|
dtObject : ok := CompareObjectBuffers(A^.ObjectData,B^.ObjectData);
|
||||||
|
dtArray : ok := CompareObjectBuffers(A^.ArrayData,B^.ArrayData);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end else begin
|
||||||
|
ok := False;
|
||||||
|
end;
|
||||||
|
Result := ok;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CompareNodes(const A,B : TDOMNode) : Boolean;overload;
|
||||||
|
var
|
||||||
|
ca, cb : TDOMNode;
|
||||||
|
i : PtrInt;
|
||||||
|
begin
|
||||||
|
if ( A = nil ) and ( B = nil ) then begin
|
||||||
|
Result := True;
|
||||||
|
end else if ( A <> nil ) and ( B <> nil ) then begin
|
||||||
|
Result := False;
|
||||||
|
if ( A.NodeName = B.NodeName ) and
|
||||||
|
( A.NodeValue = B.NodeValue )
|
||||||
|
then begin
|
||||||
|
if ( ( A.FirstChild = nil ) and ( B.FirstChild = nil ) ) or
|
||||||
|
( ( A.FirstChild <> nil ) and ( B.FirstChild <> nil ) )
|
||||||
|
then begin
|
||||||
|
ca := a.FirstChild;
|
||||||
|
cb := b.FirstChild;
|
||||||
|
while ( ca <> nil ) do begin
|
||||||
|
if not CompareNodes(ca,cb) then
|
||||||
|
Exit;
|
||||||
|
ca := ca.NextSibling;
|
||||||
|
cb := cb.NextSibling;
|
||||||
|
end;
|
||||||
|
if ( ( A.Attributes = nil ) and ( B.Attributes = nil ) ) or
|
||||||
|
( ( A.Attributes <> nil ) and ( B.Attributes <> nil ) )
|
||||||
|
then begin
|
||||||
|
if ( A.Attributes <> nil ) then begin
|
||||||
|
if ( A.Attributes.Length <> B.Attributes.Length ) then
|
||||||
|
Exit;
|
||||||
|
if ( A.Attributes.Length > 0 ) then begin
|
||||||
|
for i := 0 to Pred(A.Attributes.Length) do begin
|
||||||
|
if not CompareNodes(A.Attributes.Item[i],B.Attributes.Item[i]) then
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end else begin
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TTestFormatterSimpleType.Support_ComplextType_with_SimpleContent( ): Boolean;
|
function TTestFormatterSimpleType.Support_ComplextType_with_SimpleContent( ): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := True;
|
||||||
@ -2717,10 +2878,12 @@ Var
|
|||||||
a, b : TClass_A;
|
a, b : TClass_A;
|
||||||
x : string;
|
x : string;
|
||||||
ls : TStringList;
|
ls : TStringList;
|
||||||
|
intv : TArrayOfStringRemotableSample;
|
||||||
begin
|
begin
|
||||||
ls := nil;
|
ls := nil;
|
||||||
s := Nil;
|
s := Nil;
|
||||||
b := nil;
|
b := nil;
|
||||||
|
intv := nil;
|
||||||
a := TClass_A.Create();
|
a := TClass_A.Create();
|
||||||
try
|
try
|
||||||
a.Val_Bool := False;
|
a.Val_Bool := False;
|
||||||
@ -2728,17 +2891,25 @@ begin
|
|||||||
a.Val_String := '123';
|
a.Val_String := '123';
|
||||||
a.Val_32S := 55;
|
a.Val_32S := 55;
|
||||||
b := TClass_A.Create();
|
b := TClass_A.Create();
|
||||||
|
intv := TArrayOfStringRemotableSample.Create();
|
||||||
|
intv.SetLength(3);
|
||||||
|
intv[0] := 'wst';
|
||||||
|
intv[1] := 'azerty';
|
||||||
|
intv[2] := 'qwerty';
|
||||||
|
|
||||||
f := CreateFormatter(TypeInfo(TClass_A));
|
f := CreateFormatter(TypeInfo(TClass_A));
|
||||||
|
|
||||||
f.BeginObject('Root',TypeInfo(TClass_A));
|
f.BeginObject('Root',TypeInfo(TClass_A));
|
||||||
f.Put('a',TypeInfo(TClass_A),a);
|
f.Put('a',TypeInfo(TClass_A),a);
|
||||||
f.Put('b',TypeInfo(TClass_A),b);
|
f.Put('b',TypeInfo(TClass_A),b);
|
||||||
|
f.Put('intv',TypeInfo(TArrayOfStringRemotable),intv);
|
||||||
f.EndScope();
|
f.EndScope();
|
||||||
|
|
||||||
s := TMemoryStream.Create();
|
s := TMemoryStream.Create();
|
||||||
f.SaveToStream(s);
|
f.SaveToStream(s);
|
||||||
FreeAndNil(a);
|
FreeAndNil(a);
|
||||||
|
FreeAndNil(b);
|
||||||
|
FreeAndNil(intv);
|
||||||
|
|
||||||
ls := TStringList.Create();
|
ls := TStringList.Create();
|
||||||
f := CreateFormatter(TypeInfo(TClass_A));
|
f := CreateFormatter(TypeInfo(TClass_A));
|
||||||
@ -2746,13 +2917,37 @@ begin
|
|||||||
f.LoadFromStream(s);
|
f.LoadFromStream(s);
|
||||||
x := 'Root';
|
x := 'Root';
|
||||||
f.BeginObjectRead(x,TypeInfo(TClass_A));
|
f.BeginObjectRead(x,TypeInfo(TClass_A));
|
||||||
CheckEquals(0, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count()');
|
CheckEquals(3, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count(Root)');
|
||||||
|
Check( ls.IndexOf('a') >= 0 );
|
||||||
|
Check( ls.IndexOf('b') >= 0 );
|
||||||
|
Check( ls.IndexOf('intv') >= 0 );
|
||||||
|
x := 'a';
|
||||||
|
f.BeginObjectRead(x,TypeInfo(TClass_A));
|
||||||
|
CheckEquals(4, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count(a)');
|
||||||
Check( ls.IndexOf('Val_Bool') >= 0 );
|
Check( ls.IndexOf('Val_Bool') >= 0 );
|
||||||
Check( ls.IndexOf('Val_Enum') >= 0 );
|
Check( ls.IndexOf('Val_Enum') >= 0 );
|
||||||
Check( ls.IndexOf('Val_String') >= 0 );
|
Check( ls.IndexOf('Val_String') >= 0 );
|
||||||
Check( ls.IndexOf('Val_32S') >= 0 );
|
Check( ls.IndexOf('Val_32S') >= 0 );
|
||||||
f.EndScopeRead();
|
f.EndScopeRead();
|
||||||
|
|
||||||
|
x := 'b';
|
||||||
|
f.BeginObjectRead(x,TypeInfo(TClass_A));
|
||||||
|
CheckEquals(4, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count(b)');
|
||||||
|
Check( ls.IndexOf('Val_Bool') >= 0 );
|
||||||
|
Check( ls.IndexOf('Val_Enum') >= 0 );
|
||||||
|
Check( ls.IndexOf('Val_String') >= 0 );
|
||||||
|
Check( ls.IndexOf('Val_32S') >= 0 );
|
||||||
|
f.EndScopeRead();
|
||||||
|
|
||||||
|
x := 'intv';
|
||||||
|
f.BeginArrayRead(x,TypeInfo(TArrayOfStringRemotableSample),asScoped,'OI');
|
||||||
|
CheckEquals(3, f.GetScopeItemNames(ls), 'GetScopeItemNames.Count(intv)');
|
||||||
|
//Check( ls.IndexOf('OI') >= 0 );
|
||||||
|
f.EndScopeRead();
|
||||||
|
|
||||||
|
f.EndScopeRead();
|
||||||
finally
|
finally
|
||||||
|
intv.Free();
|
||||||
ls.Free();
|
ls.Free();
|
||||||
b.Free();;
|
b.Free();;
|
||||||
a.Free();
|
a.Free();
|
||||||
@ -2769,6 +2964,51 @@ begin
|
|||||||
//Result.BeginObject('root',Nil);
|
//Result.BeginObject('root',Nil);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
class function TTestBinaryFormatter.GetFormaterName(): string;
|
||||||
|
begin
|
||||||
|
Result := 'wst-binary';
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTestBinaryFormatter.test_WriteBuffer();
|
||||||
|
var
|
||||||
|
bw : IDataStore;
|
||||||
|
br : IDataStoreReader;
|
||||||
|
f : IFormatterBase;
|
||||||
|
strm : TStringStream;
|
||||||
|
a, b, tmp : PDataBuffer;
|
||||||
|
locBuffer : string;
|
||||||
|
begin
|
||||||
|
a := CreateObjBuffer(dtObject,'a',nil);
|
||||||
|
CreateObjBuffer(dtString,'aa',a)^.StrData^.Data := 'val_aa';
|
||||||
|
tmp := CreateObjBuffer(dtObject,'b',a);
|
||||||
|
tmp := CreateObjBuffer(dtObject,'c',tmp);
|
||||||
|
CreateObjBuffer(dtInt32U,'i',tmp)^.Int32S := 1210;
|
||||||
|
CreateObjBuffer(dtString,'s',tmp)^.StrData^.Data := 's string sample';
|
||||||
|
b := nil;
|
||||||
|
strm := TStringStream.Create('');
|
||||||
|
try
|
||||||
|
bw := CreateBinaryWriter(strm);
|
||||||
|
SaveObjectToStream(a,bw);
|
||||||
|
strm.Position := 0;
|
||||||
|
locBuffer := strm.DataString;
|
||||||
|
|
||||||
|
f := TBaseBinaryFormatter.Create() as IFormatterBase;
|
||||||
|
//f.BeginObject('Root',TypeInfo(TClass_A)); //done in the constructor!
|
||||||
|
f.WriteBuffer(locBuffer);
|
||||||
|
//f.EndScope();
|
||||||
|
strm.Size := 0;
|
||||||
|
f.SaveToStream(strm);
|
||||||
|
strm.Position := 0;
|
||||||
|
br := CreateBinaryReader(strm);
|
||||||
|
b := LoadObjectFromStream(br);
|
||||||
|
Check(CompareNodes(a,b^.ObjectData^.Head^.Data));
|
||||||
|
finally
|
||||||
|
strm.Free();
|
||||||
|
ClearObj(a);
|
||||||
|
ClearObj(b);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TTestSOAPFormatter }
|
{ TTestSOAPFormatter }
|
||||||
|
|
||||||
function TTestSOAPFormatter.CreateFormatter(ARootType : PTypeInfo):IFormatterBase;
|
function TTestSOAPFormatter.CreateFormatter(ARootType : PTypeInfo):IFormatterBase;
|
||||||
@ -2777,6 +3017,53 @@ begin
|
|||||||
Result.BeginObject('Env',ARootType)
|
Result.BeginObject('Env',ARootType)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
class function TTestSOAPFormatter.GetFormaterName(): string;
|
||||||
|
begin
|
||||||
|
Result := 'SOAP';
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTestSOAPFormatter.test_WriteBuffer();
|
||||||
|
const
|
||||||
|
s_XML_BUFFER =
|
||||||
|
'<?xml version="1.0"?> ' +
|
||||||
|
'<a aa="val_aa"> ' +
|
||||||
|
' <b> ' +
|
||||||
|
' <c cc="cc_val"> ' +
|
||||||
|
' <i>-76</i> ' +
|
||||||
|
' <s>wst record sample</s> ' +
|
||||||
|
' </c> ' +
|
||||||
|
' </b> ' +
|
||||||
|
'</a>';
|
||||||
|
var
|
||||||
|
f : IFormatterBase;
|
||||||
|
strm : TMemoryStream;
|
||||||
|
da, db : TXMLDocument;
|
||||||
|
begin
|
||||||
|
f := TSOAPBaseFormatter.Create() as IFormatterBase;
|
||||||
|
f.BeginObject('Root',TypeInfo(TClass_A));
|
||||||
|
f.WriteBuffer(s_XML_BUFFER);
|
||||||
|
f.EndScope();
|
||||||
|
da := nil;
|
||||||
|
db := nil;
|
||||||
|
strm := TMemoryStream.Create();
|
||||||
|
try
|
||||||
|
f.SaveToStream(strm);
|
||||||
|
strm.Position := 0;
|
||||||
|
ReadXMLFile(da,strm);
|
||||||
|
|
||||||
|
strm.Size := 0;
|
||||||
|
strm.WriteBuffer(s_XML_BUFFER[1],Length(s_XML_BUFFER));
|
||||||
|
strm.Position := 0;
|
||||||
|
ReadXMLFile(db,strm);
|
||||||
|
|
||||||
|
Check(CompareNodes(da.DocumentElement.FirstChild,db.DocumentElement));
|
||||||
|
finally
|
||||||
|
ReleaseDomNode(da);
|
||||||
|
ReleaseDomNode(db);
|
||||||
|
strm.Free();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TClass_B }
|
{ TClass_B }
|
||||||
|
|
||||||
procedure TClass_B.SetObjProp(const AValue: TClass_A);
|
procedure TClass_B.SetObjProp(const AValue: TClass_A);
|
||||||
@ -3399,6 +3686,11 @@ begin
|
|||||||
Result := TXmlRpcBaseFormatter.Create() as IFormatterBase;
|
Result := TXmlRpcBaseFormatter.Create() as IFormatterBase;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
class function TTestXmlRpcFormatter.GetFormaterName(): string;
|
||||||
|
begin
|
||||||
|
Result := 'XMLRPC';
|
||||||
|
end;
|
||||||
|
|
||||||
function TTestXmlRpcFormatter.Support_ComplextType_with_SimpleContent(): Boolean;
|
function TTestXmlRpcFormatter.Support_ComplextType_with_SimpleContent(): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
@ -3409,6 +3701,48 @@ begin
|
|||||||
Result := False;
|
Result := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestXmlRpcFormatter.test_WriteBuffer();
|
||||||
|
const
|
||||||
|
s_XML_BUFFER =
|
||||||
|
'<?xml version="1.0"?> ' +
|
||||||
|
'<a aa="val_aa"> ' +
|
||||||
|
' <b> ' +
|
||||||
|
' <c cc="cc_val"> ' +
|
||||||
|
' <i>-76</i> ' +
|
||||||
|
' <s>wst record sample</s> ' +
|
||||||
|
' </c> ' +
|
||||||
|
' </b> ' +
|
||||||
|
'</a>';
|
||||||
|
var
|
||||||
|
f : IFormatterBase;
|
||||||
|
strm : TMemoryStream;
|
||||||
|
da, db : TXMLDocument;
|
||||||
|
begin
|
||||||
|
f := TXmlRpcBaseFormatter.Create() as IFormatterBase;
|
||||||
|
f.BeginObject('Root',TypeInfo(TClass_A));
|
||||||
|
f.WriteBuffer(s_XML_BUFFER);
|
||||||
|
f.EndScope();
|
||||||
|
da := nil;
|
||||||
|
db := nil;
|
||||||
|
strm := TMemoryStream.Create();
|
||||||
|
try
|
||||||
|
f.SaveToStream(strm);
|
||||||
|
strm.Position := 0;
|
||||||
|
ReadXMLFile(da,strm);
|
||||||
|
|
||||||
|
strm.Size := 0;
|
||||||
|
strm.WriteBuffer(s_XML_BUFFER[1],Length(s_XML_BUFFER));
|
||||||
|
strm.Position := 0;
|
||||||
|
ReadXMLFile(db,strm);
|
||||||
|
|
||||||
|
Check(CompareNodes(da.DocumentElement.FirstChild,db.DocumentElement));
|
||||||
|
finally
|
||||||
|
ReleaseDomNode(da);
|
||||||
|
ReleaseDomNode(db);
|
||||||
|
strm.Free();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TTest_SoapFormatterExceptionBlock }
|
{ TTest_SoapFormatterExceptionBlock }
|
||||||
|
|
||||||
function TTest_SoapFormatterExceptionBlock.CreateFormatter() : IFormatterResponse;
|
function TTest_SoapFormatterExceptionBlock.CreateFormatter() : IFormatterResponse;
|
||||||
@ -3913,6 +4247,14 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestFormatter.test_GetFormaterName();
|
||||||
|
var
|
||||||
|
f : IFormatterBase;
|
||||||
|
begin
|
||||||
|
f := CreateFormatter(TypeInfo(TClass_A));
|
||||||
|
CheckEquals(Self.GetFormaterName(),f.GetFormatName());
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterStdTypes();
|
RegisterStdTypes();
|
||||||
GetTypeRegistry().Register(sXSD_NS,TypeInfo(TTestEnum),'TTestEnum').RegisterExternalPropertyName('teOne', '1');
|
GetTypeRegistry().Register(sXSD_NS,TypeInfo(TTestEnum),'TTestEnum').RegisterExternalPropertyName('teOne', '1');
|
||||||
@ -3938,6 +4280,10 @@ initialization
|
|||||||
RegisterExternalPropertyName(sARRAY_ITEM,'abc');
|
RegisterExternalPropertyName(sARRAY_ITEM,'abc');
|
||||||
RegisterExternalPropertyName(sARRAY_STYLE,sEmbedded);
|
RegisterExternalPropertyName(sARRAY_STYLE,sEmbedded);
|
||||||
end;
|
end;
|
||||||
|
with GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TArrayOfStringRemotableSample),'TArrayOfStringRemotableSample') do begin
|
||||||
|
RegisterExternalPropertyName(sARRAY_ITEM,'OI');
|
||||||
|
RegisterExternalPropertyName(sARRAY_STYLE,sScoped);
|
||||||
|
end;
|
||||||
|
|
||||||
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TTestSmallRecord),'TTestSmallRecord').RegisterExternalPropertyName('__FIELDS__','fieldSmallint;fieldWord;fieldString');
|
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TTestSmallRecord),'TTestSmallRecord').RegisterExternalPropertyName('__FIELDS__','fieldSmallint;fieldWord;fieldString');
|
||||||
{$IFNDEF WST_RECORD_RTTI}
|
{$IFNDEF WST_RECORD_RTTI}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<IconPath Value="./"/>
|
<IconPath Value="./"/>
|
||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<ActiveEditorIndexAtStart Value="16"/>
|
<ActiveEditorIndexAtStart Value="15"/>
|
||||||
</General>
|
</General>
|
||||||
<PublishOptions>
|
<PublishOptions>
|
||||||
<Version Value="2"/>
|
<Version Value="2"/>
|
||||||
@ -27,7 +27,7 @@
|
|||||||
<PackageName Value="FPCUnitTestRunner"/>
|
<PackageName Value="FPCUnitTestRunner"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="74">
|
<Units Count="72">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="wst_test_suite.lpr"/>
|
<Filename Value="wst_test_suite.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
@ -40,12 +40,12 @@
|
|||||||
<Filename Value="testformatter_unit.pas"/>
|
<Filename Value="testformatter_unit.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="testformatter_unit"/>
|
<UnitName Value="testformatter_unit"/>
|
||||||
<CursorPos X="57" Y="195"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="181"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Bookmarks Count="1">
|
<Bookmarks Count="1">
|
||||||
<Item0 X="17" Y="1060" ID="3"/>
|
<Item0 X="17" Y="1105" ID="3"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
@ -69,8 +69,8 @@
|
|||||||
<Filename Value="..\..\base_binary_formatter.pas"/>
|
<Filename Value="..\..\base_binary_formatter.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="base_binary_formatter"/>
|
<UnitName Value="base_binary_formatter"/>
|
||||||
<CursorPos X="3" Y="1358"/>
|
<CursorPos X="1" Y="463"/>
|
||||||
<TopLine Value="1346"/>
|
<TopLine Value="448"/>
|
||||||
<EditorIndex Value="14"/>
|
<EditorIndex Value="14"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -79,8 +79,8 @@
|
|||||||
<Filename Value="..\..\base_service_intf.pas"/>
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="base_service_intf"/>
|
<UnitName Value="base_service_intf"/>
|
||||||
<CursorPos X="3" Y="152"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="152"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="13"/>
|
<EditorIndex Value="13"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Bookmarks Count="2">
|
<Bookmarks Count="2">
|
||||||
@ -93,8 +93,8 @@
|
|||||||
<Filename Value="..\..\base_soap_formatter.pas"/>
|
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="base_soap_formatter"/>
|
<UnitName Value="base_soap_formatter"/>
|
||||||
<CursorPos X="92" Y="1568"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1561"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="1"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -176,7 +176,7 @@
|
|||||||
<UnitName Value="DOM"/>
|
<UnitName Value="DOM"/>
|
||||||
<CursorPos X="15" Y="429"/>
|
<CursorPos X="15" Y="429"/>
|
||||||
<TopLine Value="413"/>
|
<TopLine Value="413"/>
|
||||||
<UsageCount Value="3"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit15>
|
</Unit15>
|
||||||
<Unit16>
|
<Unit16>
|
||||||
<Filename Value="..\..\server_service_intf.pas"/>
|
<Filename Value="..\..\server_service_intf.pas"/>
|
||||||
@ -191,21 +191,21 @@
|
|||||||
<UnitName Value="service_intf"/>
|
<UnitName Value="service_intf"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="17"/>
|
<UsageCount Value="15"/>
|
||||||
</Unit17>
|
</Unit17>
|
||||||
<Unit18>
|
<Unit18>
|
||||||
<Filename Value="..\..\imp_utils.pas"/>
|
<Filename Value="..\..\imp_utils.pas"/>
|
||||||
<UnitName Value="imp_utils"/>
|
<UnitName Value="imp_utils"/>
|
||||||
<CursorPos X="1" Y="105"/>
|
<CursorPos X="1" Y="105"/>
|
||||||
<TopLine Value="90"/>
|
<TopLine Value="90"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit18>
|
</Unit18>
|
||||||
<Unit19>
|
<Unit19>
|
||||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\xmlread.pp"/>
|
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\xmlread.pp"/>
|
||||||
<UnitName Value="XMLRead"/>
|
<UnitName Value="XMLRead"/>
|
||||||
<CursorPos X="43" Y="13"/>
|
<CursorPos X="43" Y="13"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="3"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit19>
|
</Unit19>
|
||||||
<Unit20>
|
<Unit20>
|
||||||
<Filename Value="test_parserdef.pas"/>
|
<Filename Value="test_parserdef.pas"/>
|
||||||
@ -219,21 +219,21 @@
|
|||||||
<Filename Value="..\..\wst.inc"/>
|
<Filename Value="..\..\wst.inc"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit21>
|
</Unit21>
|
||||||
<Unit22>
|
<Unit22>
|
||||||
<Filename Value="..\test_fpc\interface_problem\interface_problem.pas"/>
|
<Filename Value="..\test_fpc\interface_problem\interface_problem.pas"/>
|
||||||
<UnitName Value="interface_problem"/>
|
<UnitName Value="interface_problem"/>
|
||||||
<CursorPos X="1" Y="10"/>
|
<CursorPos X="1" Y="10"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit22>
|
</Unit22>
|
||||||
<Unit23>
|
<Unit23>
|
||||||
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
|
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="base_xmlrpc_formatter"/>
|
<UnitName Value="base_xmlrpc_formatter"/>
|
||||||
<CursorPos X="3" Y="1242"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1224"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="10"/>
|
<EditorIndex Value="10"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -243,7 +243,7 @@
|
|||||||
<UnitName Value="PScanner"/>
|
<UnitName Value="PScanner"/>
|
||||||
<CursorPos X="19" Y="505"/>
|
<CursorPos X="19" Y="505"/>
|
||||||
<TopLine Value="491"/>
|
<TopLine Value="491"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit24>
|
</Unit24>
|
||||||
<Unit25>
|
<Unit25>
|
||||||
<Filename Value="..\..\ws_helper\pascal_parser_intf.pas"/>
|
<Filename Value="..\..\ws_helper\pascal_parser_intf.pas"/>
|
||||||
@ -251,7 +251,7 @@
|
|||||||
<CursorPos X="3" Y="174"/>
|
<CursorPos X="3" Y="174"/>
|
||||||
<TopLine Value="165"/>
|
<TopLine Value="165"/>
|
||||||
<EditorIndex Value="9"/>
|
<EditorIndex Value="9"/>
|
||||||
<UsageCount Value="46"/>
|
<UsageCount Value="58"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit25>
|
</Unit25>
|
||||||
<Unit26>
|
<Unit26>
|
||||||
@ -259,46 +259,46 @@
|
|||||||
<UnitName Value="PasTree"/>
|
<UnitName Value="PasTree"/>
|
||||||
<CursorPos X="3" Y="75"/>
|
<CursorPos X="3" Y="75"/>
|
||||||
<TopLine Value="68"/>
|
<TopLine Value="68"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit26>
|
</Unit26>
|
||||||
<Unit27>
|
<Unit27>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\packages\fcl-xml\src\dom.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\packages\fcl-xml\src\dom.pp"/>
|
||||||
<UnitName Value="DOM"/>
|
<UnitName Value="DOM"/>
|
||||||
<CursorPos X="38" Y="225"/>
|
<CursorPos X="38" Y="225"/>
|
||||||
<TopLine Value="203"/>
|
<TopLine Value="203"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit27>
|
</Unit27>
|
||||||
<Unit28>
|
<Unit28>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
|
||||||
<UnitName Value="DOM"/>
|
<UnitName Value="DOM"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="3"/>
|
||||||
</Unit28>
|
</Unit28>
|
||||||
<Unit29>
|
<Unit29>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\contnrs.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\contnrs.pp"/>
|
||||||
<UnitName Value="contnrs"/>
|
<UnitName Value="contnrs"/>
|
||||||
<CursorPos X="3" Y="1376"/>
|
<CursorPos X="3" Y="1376"/>
|
||||||
<TopLine Value="1370"/>
|
<TopLine Value="1370"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit29>
|
</Unit29>
|
||||||
<Unit30>
|
<Unit30>
|
||||||
<Filename Value="..\..\wst_delphi.inc"/>
|
<Filename Value="..\..\wst_delphi.inc"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit30>
|
</Unit30>
|
||||||
<Unit31>
|
<Unit31>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
||||||
<CursorPos X="8" Y="142"/>
|
<CursorPos X="8" Y="142"/>
|
||||||
<TopLine Value="197"/>
|
<TopLine Value="197"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit31>
|
</Unit31>
|
||||||
<Unit32>
|
<Unit32>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpas.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpas.inc"/>
|
||||||
<CursorPos X="11" Y="333"/>
|
<CursorPos X="11" Y="333"/>
|
||||||
<TopLine Value="375"/>
|
<TopLine Value="375"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit32>
|
</Unit32>
|
||||||
<Unit33>
|
<Unit33>
|
||||||
<Filename Value="..\..\wst_fpc_xml.pas"/>
|
<Filename Value="..\..\wst_fpc_xml.pas"/>
|
||||||
@ -309,56 +309,50 @@
|
|||||||
<UsageCount Value="201"/>
|
<UsageCount Value="201"/>
|
||||||
</Unit33>
|
</Unit33>
|
||||||
<Unit34>
|
<Unit34>
|
||||||
<Filename Value="..\..\wst_global.inc"/>
|
|
||||||
<CursorPos X="3" Y="4"/>
|
|
||||||
<TopLine Value="1"/>
|
|
||||||
<UsageCount Value="1"/>
|
|
||||||
</Unit34>
|
|
||||||
<Unit35>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
<Filename Value="test_utilities.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="test_utilities"/>
|
<UnitName Value="test_utilities"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="49"/>
|
<TopLine Value="49"/>
|
||||||
<EditorIndex Value="15"/>
|
<EditorIndex Value="16"/>
|
||||||
<UsageCount Value="195"/>
|
<UsageCount Value="207"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit35>
|
</Unit34>
|
||||||
<Unit36>
|
<Unit35>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
||||||
<UnitName Value="fpcunit"/>
|
<UnitName Value="fpcunit"/>
|
||||||
<CursorPos X="66" Y="231"/>
|
<CursorPos X="66" Y="231"/>
|
||||||
<TopLine Value="231"/>
|
<TopLine Value="231"/>
|
||||||
<UsageCount Value="3"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit36>
|
</Unit35>
|
||||||
<Unit37>
|
<Unit36>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\testregistry.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\testregistry.pp"/>
|
||||||
<UnitName Value="testregistry"/>
|
<UnitName Value="testregistry"/>
|
||||||
<CursorPos X="11" Y="32"/>
|
<CursorPos X="11" Y="32"/>
|
||||||
<TopLine Value="17"/>
|
<TopLine Value="17"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="3"/>
|
||||||
</Unit37>
|
</Unit36>
|
||||||
<Unit38>
|
<Unit37>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\DUnitCompatibleInterface.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\DUnitCompatibleInterface.inc"/>
|
||||||
<CursorPos X="21" Y="9"/>
|
<CursorPos X="21" Y="9"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="0"/>
|
||||||
</Unit38>
|
</Unit37>
|
||||||
<Unit39>
|
<Unit38>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/>
|
||||||
<UnitName Value="typinfo"/>
|
<UnitName Value="typinfo"/>
|
||||||
<CursorPos X="53" Y="41"/>
|
<CursorPos X="53" Y="41"/>
|
||||||
<TopLine Value="37"/>
|
<TopLine Value="37"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit39>
|
</Unit38>
|
||||||
<Unit40>
|
<Unit39>
|
||||||
<Filename Value="..\..\ws_helper\wsdl2pas_imp.pas"/>
|
<Filename Value="..\..\ws_helper\wsdl2pas_imp.pas"/>
|
||||||
<UnitName Value="wsdl2pas_imp"/>
|
<UnitName Value="wsdl2pas_imp"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="31"/>
|
<TopLine Value="31"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit40>
|
</Unit39>
|
||||||
<Unit41>
|
<Unit40>
|
||||||
<Filename Value="..\..\type_lib_edtr\umoduleedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\umoduleedit.pas"/>
|
||||||
<ComponentName Value="fModuleEdit"/>
|
<ComponentName Value="fModuleEdit"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -366,9 +360,9 @@
|
|||||||
<UnitName Value="umoduleedit"/>
|
<UnitName Value="umoduleedit"/>
|
||||||
<CursorPos X="47" Y="21"/>
|
<CursorPos X="47" Y="21"/>
|
||||||
<TopLine Value="18"/>
|
<TopLine Value="18"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit41>
|
</Unit40>
|
||||||
<Unit42>
|
<Unit41>
|
||||||
<Filename Value="..\..\type_lib_edtr\ubindingedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\ubindingedit.pas"/>
|
||||||
<ComponentName Value="fBindingEdit"/>
|
<ComponentName Value="fBindingEdit"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -376,9 +370,9 @@
|
|||||||
<UnitName Value="ubindingedit"/>
|
<UnitName Value="ubindingedit"/>
|
||||||
<CursorPos X="41" Y="21"/>
|
<CursorPos X="41" Y="21"/>
|
||||||
<TopLine Value="18"/>
|
<TopLine Value="18"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit42>
|
</Unit41>
|
||||||
<Unit43>
|
<Unit42>
|
||||||
<Filename Value="..\..\type_lib_edtr\ufarrayedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\ufarrayedit.pas"/>
|
||||||
<ComponentName Value="fArrayEdit"/>
|
<ComponentName Value="fArrayEdit"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -386,9 +380,9 @@
|
|||||||
<UnitName Value="ufarrayedit"/>
|
<UnitName Value="ufarrayedit"/>
|
||||||
<CursorPos X="41" Y="9"/>
|
<CursorPos X="41" Y="9"/>
|
||||||
<TopLine Value="5"/>
|
<TopLine Value="5"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit43>
|
</Unit42>
|
||||||
<Unit44>
|
<Unit43>
|
||||||
<Filename Value="..\..\type_lib_edtr\uftypealiasedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\uftypealiasedit.pas"/>
|
||||||
<ComponentName Value="fTypeAliasEdit"/>
|
<ComponentName Value="fTypeAliasEdit"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -396,9 +390,9 @@
|
|||||||
<UnitName Value="uftypealiasedit"/>
|
<UnitName Value="uftypealiasedit"/>
|
||||||
<CursorPos X="22" Y="9"/>
|
<CursorPos X="22" Y="9"/>
|
||||||
<TopLine Value="7"/>
|
<TopLine Value="7"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit44>
|
</Unit43>
|
||||||
<Unit45>
|
<Unit44>
|
||||||
<Filename Value="..\..\type_lib_edtr\ufrmsaveoption.pas"/>
|
<Filename Value="..\..\type_lib_edtr\ufrmsaveoption.pas"/>
|
||||||
<ComponentName Value="frmSaveOptions"/>
|
<ComponentName Value="frmSaveOptions"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -406,326 +400,221 @@
|
|||||||
<UnitName Value="ufrmsaveoption"/>
|
<UnitName Value="ufrmsaveoption"/>
|
||||||
<CursorPos X="22" Y="9"/>
|
<CursorPos X="22" Y="9"/>
|
||||||
<TopLine Value="6"/>
|
<TopLine Value="6"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit45>
|
</Unit44>
|
||||||
<Unit46>
|
<Unit45>
|
||||||
<Filename Value="..\..\server_service_xmlrpc.pas"/>
|
<Filename Value="..\..\server_service_xmlrpc.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="server_service_xmlrpc"/>
|
<UnitName Value="server_service_xmlrpc"/>
|
||||||
<CursorPos X="38" Y="33"/>
|
<CursorPos X="38" Y="33"/>
|
||||||
<TopLine Value="27"/>
|
<TopLine Value="27"/>
|
||||||
<UsageCount Value="149"/>
|
<UsageCount Value="175"/>
|
||||||
</Unit46>
|
</Unit45>
|
||||||
<Unit47>
|
<Unit46>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\xmlread.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\xmlread.pp"/>
|
||||||
<UnitName Value="XMLRead"/>
|
<UnitName Value="XMLRead"/>
|
||||||
<CursorPos X="3" Y="1205"/>
|
<CursorPos X="3" Y="1205"/>
|
||||||
<TopLine Value="1203"/>
|
<TopLine Value="1203"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit47>
|
</Unit46>
|
||||||
<Unit48>
|
<Unit47>
|
||||||
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
||||||
<UnitName Value="xmlrpc_formatter"/>
|
<UnitName Value="xmlrpc_formatter"/>
|
||||||
<CursorPos X="1" Y="169"/>
|
<CursorPos X="1" Y="169"/>
|
||||||
<TopLine Value="154"/>
|
<TopLine Value="154"/>
|
||||||
<UsageCount Value="4"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit48>
|
</Unit47>
|
||||||
<Unit49>
|
<Unit48>
|
||||||
<Filename Value="..\..\record_rtti.pas"/>
|
<Filename Value="..\..\record_rtti.pas"/>
|
||||||
<UnitName Value="record_rtti"/>
|
<UnitName Value="record_rtti"/>
|
||||||
<CursorPos X="37" Y="276"/>
|
<CursorPos X="37" Y="276"/>
|
||||||
<TopLine Value="265"/>
|
<TopLine Value="265"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit49>
|
</Unit48>
|
||||||
<Unit50>
|
<Unit49>
|
||||||
<Filename Value="..\..\wst_rtl_imp.inc"/>
|
<Filename Value="..\..\wst_rtl_imp.inc"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit50>
|
</Unit49>
|
||||||
<Unit51>
|
<Unit50>
|
||||||
<Filename Value="test_parsers.pas"/>
|
<Filename Value="test_parsers.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="test_parsers"/>
|
<UnitName Value="test_parsers"/>
|
||||||
<CursorPos X="50" Y="24"/>
|
<CursorPos X="50" Y="24"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="4"/>
|
<EditorIndex Value="4"/>
|
||||||
<UsageCount Value="127"/>
|
<UsageCount Value="153"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit51>
|
</Unit50>
|
||||||
<Unit52>
|
<Unit51>
|
||||||
<Filename Value="..\..\ws_helper\xsd_parser.pas"/>
|
<Filename Value="..\..\ws_helper\xsd_parser.pas"/>
|
||||||
<UnitName Value="xsd_parser"/>
|
<UnitName Value="xsd_parser"/>
|
||||||
<CursorPos X="17" Y="190"/>
|
<CursorPos X="17" Y="190"/>
|
||||||
<TopLine Value="188"/>
|
<TopLine Value="188"/>
|
||||||
<EditorIndex Value="6"/>
|
<EditorIndex Value="6"/>
|
||||||
<UsageCount Value="30"/>
|
<UsageCount Value="42"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit52>
|
</Unit51>
|
||||||
<Unit53>
|
<Unit52>
|
||||||
<Filename Value="..\..\ws_helper\parserutils.pas"/>
|
<Filename Value="..\..\ws_helper\parserutils.pas"/>
|
||||||
<UnitName Value="parserutils"/>
|
<UnitName Value="parserutils"/>
|
||||||
<CursorPos X="98" Y="94"/>
|
<CursorPos X="98" Y="94"/>
|
||||||
<TopLine Value="71"/>
|
<TopLine Value="71"/>
|
||||||
<EditorIndex Value="8"/>
|
<EditorIndex Value="8"/>
|
||||||
<UsageCount Value="22"/>
|
<UsageCount Value="34"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit53>
|
</Unit52>
|
||||||
<Unit54>
|
<Unit53>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\testregistry.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\testregistry.pp"/>
|
||||||
<UnitName Value="testregistry"/>
|
<UnitName Value="testregistry"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="18"/>
|
<TopLine Value="18"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="0"/>
|
||||||
</Unit54>
|
</Unit53>
|
||||||
<Unit55>
|
<Unit54>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\DUnitCompatibleInterface.inc"/>
|
|
||||||
<CursorPos X="3" Y="120"/>
|
|
||||||
<TopLine Value="115"/>
|
|
||||||
<UsageCount Value="1"/>
|
|
||||||
</Unit55>
|
|
||||||
<Unit56>
|
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
||||||
<UnitName Value="fpcunit"/>
|
<UnitName Value="fpcunit"/>
|
||||||
<CursorPos X="60" Y="449"/>
|
<CursorPos X="33" Y="438"/>
|
||||||
<TopLine Value="424"/>
|
<TopLine Value="431"/>
|
||||||
<UsageCount Value="4"/>
|
<EditorIndex Value="15"/>
|
||||||
</Unit56>
|
<UsageCount Value="13"/>
|
||||||
<Unit57>
|
<Loaded Value="True"/>
|
||||||
<Filename Value="..\..\ws_helper\logger_intf.pas"/>
|
</Unit54>
|
||||||
<UnitName Value="logger_intf"/>
|
<Unit55>
|
||||||
<CursorPos X="85" Y="50"/>
|
|
||||||
<TopLine Value="35"/>
|
|
||||||
<UsageCount Value="1"/>
|
|
||||||
</Unit57>
|
|
||||||
<Unit58>
|
|
||||||
<Filename Value="..\..\ws_helper\ws_parser_imp.pas"/>
|
<Filename Value="..\..\ws_helper\ws_parser_imp.pas"/>
|
||||||
<UnitName Value="ws_parser_imp"/>
|
<UnitName Value="ws_parser_imp"/>
|
||||||
<CursorPos X="14" Y="91"/>
|
<CursorPos X="14" Y="91"/>
|
||||||
<TopLine Value="77"/>
|
<TopLine Value="77"/>
|
||||||
<EditorIndex Value="7"/>
|
<EditorIndex Value="7"/>
|
||||||
<UsageCount Value="29"/>
|
<UsageCount Value="41"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit58>
|
</Unit55>
|
||||||
<Unit59>
|
<Unit56>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpash.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpash.inc"/>
|
||||||
<CursorPos X="21" Y="151"/>
|
<CursorPos X="21" Y="151"/>
|
||||||
<TopLine Value="129"/>
|
<TopLine Value="129"/>
|
||||||
<UsageCount Value="4"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit59>
|
</Unit56>
|
||||||
<Unit60>
|
<Unit57>
|
||||||
<Filename Value="..\..\ws_helper\wsdl_generator.pas"/>
|
<Filename Value="..\..\ws_helper\wsdl_generator.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="wsdl_generator"/>
|
<UnitName Value="wsdl_generator"/>
|
||||||
<CursorPos X="27" Y="146"/>
|
<CursorPos X="27" Y="146"/>
|
||||||
<TopLine Value="124"/>
|
<TopLine Value="124"/>
|
||||||
<UsageCount Value="107"/>
|
<UsageCount Value="133"/>
|
||||||
</Unit60>
|
</Unit57>
|
||||||
<Unit61>
|
<Unit58>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-xml\src\xmlread.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-xml\src\xmlread.pp"/>
|
||||||
<UnitName Value="XMLRead"/>
|
<UnitName Value="XMLRead"/>
|
||||||
<CursorPos X="1" Y="1975"/>
|
<CursorPos X="1" Y="1975"/>
|
||||||
<TopLine Value="1963"/>
|
<TopLine Value="1963"/>
|
||||||
<UsageCount Value="3"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit61>
|
</Unit58>
|
||||||
<Unit62>
|
<Unit59>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\inc\objpas.inc"/>
|
||||||
<CursorPos X="11" Y="222"/>
|
<CursorPos X="11" Y="222"/>
|
||||||
<TopLine Value="219"/>
|
<TopLine Value="219"/>
|
||||||
<UsageCount Value="4"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit62>
|
</Unit59>
|
||||||
<Unit63>
|
<Unit60>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-base\src\inc\contnrs.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-base\src\inc\contnrs.pp"/>
|
||||||
<UnitName Value="contnrs"/>
|
<UnitName Value="contnrs"/>
|
||||||
<CursorPos X="3" Y="701"/>
|
<CursorPos X="3" Y="701"/>
|
||||||
<TopLine Value="698"/>
|
<TopLine Value="698"/>
|
||||||
<UsageCount Value="4"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit63>
|
</Unit60>
|
||||||
<Unit64>
|
<Unit61>
|
||||||
<Filename Value="..\..\ws_helper\xsd_generator.pas"/>
|
<Filename Value="..\..\ws_helper\xsd_generator.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="xsd_generator"/>
|
<UnitName Value="xsd_generator"/>
|
||||||
<CursorPos X="3" Y="81"/>
|
<CursorPos X="3" Y="81"/>
|
||||||
<TopLine Value="261"/>
|
<TopLine Value="261"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="2"/>
|
||||||
<UsageCount Value="90"/>
|
<UsageCount Value="116"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit64>
|
</Unit61>
|
||||||
<Unit65>
|
<Unit62>
|
||||||
<Filename Value="..\..\ws_helper\xsd_consts.pas"/>
|
<Filename Value="..\..\ws_helper\xsd_consts.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="xsd_consts"/>
|
<UnitName Value="xsd_consts"/>
|
||||||
<CursorPos X="8" Y="78"/>
|
<CursorPos X="8" Y="78"/>
|
||||||
<TopLine Value="51"/>
|
<TopLine Value="51"/>
|
||||||
<UsageCount Value="89"/>
|
<UsageCount Value="115"/>
|
||||||
</Unit65>
|
</Unit62>
|
||||||
<Unit66>
|
<Unit63>
|
||||||
<Filename Value="..\..\ws_helper\wsdl_parser.pas"/>
|
<Filename Value="..\..\ws_helper\wsdl_parser.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="wsdl_parser"/>
|
<UnitName Value="wsdl_parser"/>
|
||||||
<CursorPos X="28" Y="845"/>
|
<CursorPos X="28" Y="845"/>
|
||||||
<TopLine Value="835"/>
|
<TopLine Value="835"/>
|
||||||
<EditorIndex Value="5"/>
|
<EditorIndex Value="5"/>
|
||||||
<UsageCount Value="22"/>
|
<UsageCount Value="48"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit66>
|
</Unit63>
|
||||||
<Unit67>
|
<Unit64>
|
||||||
<Filename Value="..\..\base_json_formatter.pas"/>
|
<Filename Value="..\..\base_json_formatter.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="base_json_formatter"/>
|
<UnitName Value="base_json_formatter"/>
|
||||||
<CursorPos X="58" Y="112"/>
|
<CursorPos X="3" Y="361"/>
|
||||||
<TopLine Value="99"/>
|
<TopLine Value="359"/>
|
||||||
<EditorIndex Value="11"/>
|
<EditorIndex Value="11"/>
|
||||||
<UsageCount Value="75"/>
|
<UsageCount Value="101"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit67>
|
</Unit64>
|
||||||
<Unit68>
|
<Unit65>
|
||||||
<Filename Value="..\..\fcl-json\src\fpjson.pp"/>
|
<Filename Value="..\..\fcl-json\src\fpjson.pp"/>
|
||||||
<UnitName Value="fpjson"/>
|
<UnitName Value="fpjson"/>
|
||||||
<CursorPos X="3" Y="265"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="296"/>
|
<TopLine Value="330"/>
|
||||||
<EditorIndex Value="12"/>
|
<EditorIndex Value="12"/>
|
||||||
<UsageCount Value="38"/>
|
<UsageCount Value="50"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit68>
|
</Unit65>
|
||||||
<Unit69>
|
<Unit66>
|
||||||
<Filename Value="..\..\wst_types.pas"/>
|
<Filename Value="..\..\wst_types.pas"/>
|
||||||
<UnitName Value="wst_types"/>
|
<UnitName Value="wst_types"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="13"/>
|
<TopLine Value="13"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit69>
|
</Unit66>
|
||||||
<Unit70>
|
<Unit67>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
|
||||||
<CursorPos X="3" Y="389"/>
|
<CursorPos X="3" Y="389"/>
|
||||||
<TopLine Value="375"/>
|
<TopLine Value="375"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit70>
|
</Unit67>
|
||||||
<Unit71>
|
<Unit68>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\xmlwrite.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\xmlwrite.pp"/>
|
||||||
<UnitName Value="XMLWrite"/>
|
<UnitName Value="XMLWrite"/>
|
||||||
<CursorPos X="9" Y="609"/>
|
<CursorPos X="9" Y="609"/>
|
||||||
<TopLine Value="586"/>
|
<TopLine Value="586"/>
|
||||||
<UsageCount Value="16"/>
|
<UsageCount Value="14"/>
|
||||||
</Unit71>
|
</Unit68>
|
||||||
<Unit72>
|
<Unit69>
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
<Filename Value="..\..\library_imp_utils.pas"/>
|
||||||
<UnitName Value="library_imp_utils"/>
|
<UnitName Value="library_imp_utils"/>
|
||||||
<CursorPos X="2" Y="31"/>
|
<CursorPos X="82" Y="43"/>
|
||||||
<TopLine Value="19"/>
|
<TopLine Value="19"/>
|
||||||
<EditorIndex Value="16"/>
|
<EditorIndex Value="17"/>
|
||||||
<UsageCount Value="11"/>
|
<UsageCount Value="23"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit72>
|
</Unit69>
|
||||||
<Unit73>
|
<Unit70>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\win\dynlibs.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\rtl\win\dynlibs.inc"/>
|
||||||
<CursorPos X="1" Y="26"/>
|
<CursorPos X="1" Y="26"/>
|
||||||
<TopLine Value="9"/>
|
<TopLine Value="9"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit73>
|
</Unit70>
|
||||||
|
<Unit71>
|
||||||
|
<Filename Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-xml\src\dom.pp"/>
|
||||||
|
<UnitName Value="DOM"/>
|
||||||
|
<CursorPos X="22" Y="351"/>
|
||||||
|
<TopLine Value="336"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit71>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="25" HistoryIndex="24">
|
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||||
<Position1>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="26" Column="19" TopLine="1"/>
|
|
||||||
</Position1>
|
|
||||||
<Position2>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="72" Column="52" TopLine="48"/>
|
|
||||||
</Position2>
|
|
||||||
<Position3>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="184" Column="38" TopLine="179"/>
|
|
||||||
</Position3>
|
|
||||||
<Position4>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="72" Column="24" TopLine="72"/>
|
|
||||||
</Position4>
|
|
||||||
<Position5>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="172" Column="23" TopLine="170"/>
|
|
||||||
</Position5>
|
|
||||||
<Position6>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="84" Column="1" TopLine="63"/>
|
|
||||||
</Position6>
|
|
||||||
<Position7>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="28" Column="1" TopLine="12"/>
|
|
||||||
</Position7>
|
|
||||||
<Position8>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="50" Column="25" TopLine="35"/>
|
|
||||||
</Position8>
|
|
||||||
<Position9>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="84" Column="15" TopLine="64"/>
|
|
||||||
</Position9>
|
|
||||||
<Position10>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="11" Column="5" TopLine="10"/>
|
|
||||||
</Position10>
|
|
||||||
<Position11>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="185" Column="21" TopLine="170"/>
|
|
||||||
</Position11>
|
|
||||||
<Position12>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="198" Column="56" TopLine="179"/>
|
|
||||||
</Position12>
|
|
||||||
<Position13>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="90" Column="25" TopLine="62"/>
|
|
||||||
</Position13>
|
|
||||||
<Position14>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="107" Column="35" TopLine="93"/>
|
|
||||||
</Position14>
|
|
||||||
<Position15>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="109" Column="3" TopLine="107"/>
|
|
||||||
</Position15>
|
|
||||||
<Position16>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="116" Column="3" TopLine="114"/>
|
|
||||||
</Position16>
|
|
||||||
<Position17>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="638" Column="1" TopLine="610"/>
|
|
||||||
</Position17>
|
|
||||||
<Position18>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="633" Column="26" TopLine="610"/>
|
|
||||||
</Position18>
|
|
||||||
<Position19>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="94" Column="62" TopLine="87"/>
|
|
||||||
</Position19>
|
|
||||||
<Position20>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="619" Column="1" TopLine="585"/>
|
|
||||||
</Position20>
|
|
||||||
<Position21>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="652" Column="5" TopLine="618"/>
|
|
||||||
</Position21>
|
|
||||||
<Position22>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="151" Column="4" TopLine="140"/>
|
|
||||||
</Position22>
|
|
||||||
<Position23>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="619" Column="1" TopLine="585"/>
|
|
||||||
</Position23>
|
|
||||||
<Position24>
|
|
||||||
<Filename Value="test_utilities.pas"/>
|
|
||||||
<Caret Line="647" Column="9" TopLine="623"/>
|
|
||||||
</Position24>
|
|
||||||
<Position25>
|
|
||||||
<Filename Value="..\..\library_imp_utils.pas"/>
|
|
||||||
<Caret Line="51" Column="18" TopLine="40"/>
|
|
||||||
</Position25>
|
|
||||||
</JumpHistory>
|
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="5"/>
|
<Version Value="5"/>
|
||||||
@ -763,11 +652,15 @@
|
|||||||
</Other>
|
</Other>
|
||||||
</CompilerOptions>
|
</CompilerOptions>
|
||||||
<Debugging>
|
<Debugging>
|
||||||
<BreakPoints Count="1">
|
<BreakPoints Count="2">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Source Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-xml\src\xmlread.pp"/>
|
<Source Value="..\..\..\..\..\..\lazarus_23_2.2.1\fpc\2.2.1\source\packages\fcl-xml\src\xmlread.pp"/>
|
||||||
<Line Value="1975"/>
|
<Line Value="1975"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Source Value="testformatter_unit.pas"/>
|
||||||
|
<Line Value="2979"/>
|
||||||
|
</Item2>
|
||||||
</BreakPoints>
|
</BreakPoints>
|
||||||
<Watches Count="2">
|
<Watches Count="2">
|
||||||
<Item1>
|
<Item1>
|
||||||
|
@ -3,21 +3,29 @@
|
|||||||
{$DEFINE HAS_QWORD}
|
{$DEFINE HAS_QWORD}
|
||||||
{$UNDEF WST_INTF_DOM}
|
{$UNDEF WST_INTF_DOM}
|
||||||
//{$DEFINE USE_INLINE}
|
//{$DEFINE USE_INLINE}
|
||||||
{$ELSE}
|
{$IF Defined(FPC_VERSION) and (FPC_VERSION = 2) }
|
||||||
|
{$IF Defined(FPC_RELEASE) and (FPC_RELEASE > 0) }
|
||||||
|
{$define FPC_211}
|
||||||
|
{$IFEND}
|
||||||
|
{$IFEND}
|
||||||
|
{$IF Defined(FPC_211)}
|
||||||
|
{$DEFINE HAS_FORMAT_SETTINGS}
|
||||||
|
{$IFEND}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFNDEF FPC}
|
||||||
{$UNDEF HAS_QWORD}
|
{$UNDEF HAS_QWORD}
|
||||||
{$UNDEF USE_INLINE}
|
{$UNDEF USE_INLINE}
|
||||||
{$DEFINE WST_RECORD_RTTI}
|
{$DEFINE WST_RECORD_RTTI}
|
||||||
{$DEFINE WST_INTF_DOM}
|
{$DEFINE WST_INTF_DOM}
|
||||||
|
{$IFDEF VER150}
|
||||||
|
{$DEFINE HAS_FORMAT_SETTINGS}
|
||||||
|
{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF CPU86}
|
{$IFDEF CPU86}
|
||||||
{$DEFINE HAS_COMP}
|
{$DEFINE HAS_COMP}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF FPC}
|
|
||||||
{$IF Defined(FPC_VERSION) and (FPC_VERSION = 2) }
|
|
||||||
{$IF Defined(FPC_RELEASE) and (FPC_RELEASE > 0) }
|
|
||||||
{$define FPC_211}
|
|
||||||
{$IFEND}
|
|
||||||
{$IFEND}
|
|
||||||
{$ENDIF}
|
|
||||||
|
Reference in New Issue
Block a user