You've already forked lazarus-ccr
Record support :
- Field may be hidden by calling SetFieldSerializationVisibility() - Field may be mapped to XML Attribute by calling RegisterAttributeProperty() Some methods and routines have been marked "inline". By default the "inline" modifier is not enable. To enable it uncomment the "//{$DEFINE USE_INLINE}" line in wst_global.inc. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@244 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -16,7 +16,7 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, Contnrs, TypInfo,
|
Classes, SysUtils, Contnrs, TypInfo,
|
||||||
base_service_intf, binary_streamer;
|
base_service_intf, binary_streamer, wst_types;
|
||||||
|
|
||||||
{$DEFINE wst_binary_header}
|
{$DEFINE wst_binary_header}
|
||||||
|
|
||||||
@ -30,7 +30,10 @@ const
|
|||||||
|
|
||||||
type
|
type
|
||||||
EBinaryFormatterException = class(EServiceException)
|
EBinaryFormatterException = class(EServiceException)
|
||||||
End;
|
end;
|
||||||
|
|
||||||
|
EBinaryException = class(EBaseRemoteException)
|
||||||
|
end;
|
||||||
|
|
||||||
TDataName = AnsiString;
|
TDataName = AnsiString;
|
||||||
TDataType = (
|
TDataType = (
|
||||||
@ -178,94 +181,94 @@ type
|
|||||||
protected
|
protected
|
||||||
function HasScope():Boolean;
|
function HasScope():Boolean;
|
||||||
procedure CheckScope();
|
procedure CheckScope();
|
||||||
procedure ClearStack();
|
procedure ClearStack();{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PushStack(AScopeObject : PDataBuffer;Const AScopeType : TScopeType = stObject);
|
procedure PushStack(AScopeObject : PDataBuffer;Const AScopeType : TScopeType = stObject);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function StackTop():TStackItem;
|
function StackTop():TStackItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PopStack():TStackItem;
|
function PopStack():TStackItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function GetRootData() : PDataBuffer;
|
function GetRootData() : PDataBuffer;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
protected
|
protected
|
||||||
procedure PutFloat(
|
procedure PutFloat(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TFloat_Extended_10
|
Const AData : TFloat_Extended_10
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutInt(
|
procedure PutInt(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TInt64S
|
Const AData : TInt64S
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutStr(
|
procedure PutStr(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : String
|
Const AData : String
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutEnum(
|
procedure PutEnum(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TEnumData
|
Const AData : TEnumData
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutBool(
|
procedure PutBool(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : Boolean
|
Const AData : Boolean
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutInt64(
|
procedure PutInt64(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : Int64
|
Const AData : Int64
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutObj(
|
procedure PutObj(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TObject
|
Const AData : TObject
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutRecord(
|
procedure PutRecord(
|
||||||
const AName : string;
|
const AName : string;
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
const AData : Pointer
|
const AData : Pointer
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
function GetDataBuffer(var AName : String):PDataBuffer;
|
function GetDataBuffer(var AName : String):PDataBuffer;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetEnum(
|
procedure GetEnum(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TEnumData
|
Var AData : TEnumData
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetBool(
|
procedure GetBool(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : Boolean
|
Var AData : Boolean
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetFloat(
|
procedure GetFloat(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TFloat_Extended_10
|
Var AData : TFloat_Extended_10
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetInt(
|
procedure GetInt(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TInt64S
|
Var AData : TInt64S
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetInt64(
|
procedure GetInt64(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : Int64
|
Var AData : Int64
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetStr(
|
procedure GetStr(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : String
|
Var AData : String
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetObj(
|
procedure GetObj(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TObject
|
Var AData : TObject
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetRecord(
|
procedure GetRecord(
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
var AName : String;
|
var AName : String;
|
||||||
var AData : Pointer
|
var AData : Pointer
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
public
|
public
|
||||||
constructor Create();override;
|
constructor Create();override;
|
||||||
destructor Destroy();override;
|
destructor Destroy();override;
|
||||||
|
@ -1097,7 +1097,7 @@ type
|
|||||||
FPool : TIntfPool;
|
FPool : TIntfPool;
|
||||||
FTimeOut: PtrUInt;
|
FTimeOut: PtrUInt;
|
||||||
private
|
private
|
||||||
procedure PreparePool();
|
procedure PreparePool();{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure SetPooled(const AValue: Boolean);
|
procedure SetPooled(const AValue: Boolean);
|
||||||
procedure SetPoolMax(const AValue: PtrInt);
|
procedure SetPoolMax(const AValue: PtrInt);
|
||||||
procedure SetPoolMin(const AValue: PtrInt);
|
procedure SetPoolMin(const AValue: PtrInt);
|
||||||
@ -1138,7 +1138,7 @@ type
|
|||||||
FExternalNames : TStrings;
|
FExternalNames : TStrings;
|
||||||
FInternalNames : TStrings;
|
FInternalNames : TStrings;
|
||||||
private
|
private
|
||||||
procedure CreateInternalObjects();
|
procedure CreateInternalObjects();{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
public
|
public
|
||||||
constructor Create(
|
constructor Create(
|
||||||
ANameSpace : string;
|
ANameSpace : string;
|
||||||
@ -1146,12 +1146,12 @@ type
|
|||||||
Const ADeclaredName : string = ''
|
Const ADeclaredName : string = ''
|
||||||
);
|
);
|
||||||
destructor Destroy();override;
|
destructor Destroy();override;
|
||||||
function AddPascalSynonym(const ASynonym : string):TTypeRegistryItem;//inline;
|
function AddPascalSynonym(const ASynonym : string):TTypeRegistryItem;
|
||||||
function IsSynonym(const APascalTypeName : string):Boolean;//inline;
|
function IsSynonym(const APascalTypeName : string):Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
procedure RegisterExternalPropertyName(const APropName, AExtPropName : string);
|
procedure RegisterExternalPropertyName(const APropName, AExtPropName : string);
|
||||||
function GetExternalPropertyName(const APropName : string) : string;
|
function GetExternalPropertyName(const APropName : string) : string;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function GetInternalPropertyName(const AExtPropName : string) : string;
|
function GetInternalPropertyName(const AExtPropName : string) : string;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
procedure RegisterObject(const APropName : string; const AObject : TObject);
|
procedure RegisterObject(const APropName : string; const AObject : TObject);
|
||||||
function GetObject(const APropName : string) : TObject;
|
function GetObject(const APropName : string) : TObject;
|
||||||
@ -1167,8 +1167,8 @@ type
|
|||||||
TTypeRegistry = class
|
TTypeRegistry = class
|
||||||
Private
|
Private
|
||||||
FList : TObjectList;
|
FList : TObjectList;
|
||||||
function GetCount: Integer;
|
function GetCount: Integer;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function GetItemByIndex(Index: Integer): TTypeRegistryItem;
|
function GetItemByIndex(Index: Integer): TTypeRegistryItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function GetItemByTypeInfo(Index: PTypeInfo): TTypeRegistryItem;
|
function GetItemByTypeInfo(Index: PTypeInfo): TTypeRegistryItem;
|
||||||
Public
|
Public
|
||||||
constructor Create();
|
constructor Create();
|
||||||
@ -1222,8 +1222,18 @@ const
|
|||||||
PROP_LIST_DELIMITER = ';';
|
PROP_LIST_DELIMITER = ';';
|
||||||
FIELDS_STRING = '__FIELDS__';
|
FIELDS_STRING = '__FIELDS__';
|
||||||
|
|
||||||
function GetTypeRegistry():TTypeRegistry;
|
function GetTypeRegistry():TTypeRegistry;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure RegisterStdTypes();
|
procedure RegisterStdTypes();
|
||||||
|
procedure RegisterAttributeProperty(
|
||||||
|
const ATypeInfo : PTypeInfo; // must be tkClass or tkRecord
|
||||||
|
const AProperty : shortstring
|
||||||
|
);
|
||||||
|
procedure SetFieldSerializationVisibility(
|
||||||
|
const ATypeInfo : PTypeInfo; // must be tkRecord
|
||||||
|
const AField : shortstring;
|
||||||
|
const AVisibility : Boolean
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
function IsStoredPropClass(AClass : TClass;PropInfo : PPropInfo) : TPropStoreType;
|
function IsStoredPropClass(AClass : TClass;PropInfo : PPropInfo) : TPropStoreType;
|
||||||
|
|
||||||
@ -1336,6 +1346,62 @@ begin
|
|||||||
r.Register(sXSD_NS,TypeInfo(TComplexBooleanContentRemotable),'boolean').AddPascalSynonym('TComplexBooleanContentRemotable');
|
r.Register(sXSD_NS,TypeInfo(TComplexBooleanContentRemotable),'boolean').AddPascalSynonym('TComplexBooleanContentRemotable');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure SetFieldSerializationVisibility(
|
||||||
|
const ATypeInfo : PTypeInfo; // must be tkRecord
|
||||||
|
const AField : shortstring;
|
||||||
|
const AVisibility : Boolean
|
||||||
|
);
|
||||||
|
var
|
||||||
|
recordData : TRecordRttiDataObject;
|
||||||
|
begin
|
||||||
|
if Assigned(ATypeInfo) and ( ATypeInfo^.Kind = tkRecord ) and
|
||||||
|
( not IsStrEmpty(AField) )
|
||||||
|
then begin
|
||||||
|
recordData := GetTypeRegistry().ItemByTypeInfo[ATypeInfo].GetObject(FIELDS_STRING) as TRecordRttiDataObject;
|
||||||
|
if Assigned(recordData) then begin
|
||||||
|
recordData.GetField(AField)^.Visible := AVisibility;
|
||||||
|
end else begin
|
||||||
|
raise EServiceConfigException.CreateFmt('Record extended RTTI informations not found in type registry : "%s".',[ATypeInfo^.Name]);
|
||||||
|
end;
|
||||||
|
end else begin
|
||||||
|
raise EServiceConfigException.Create('Invalid parameters.');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure RegisterAttributeProperty(
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
const AProperty : shortstring
|
||||||
|
);
|
||||||
|
var
|
||||||
|
ok : Boolean;
|
||||||
|
recordData : TRecordRttiDataObject;
|
||||||
|
begin
|
||||||
|
ok := False;
|
||||||
|
if Assigned(ATypeInfo) and
|
||||||
|
( not IsStrEmpty(AProperty) )
|
||||||
|
then begin
|
||||||
|
case ATypeInfo^.Kind of
|
||||||
|
tkClass :
|
||||||
|
begin
|
||||||
|
if GetTypeData(ATypeInfo)^.ClassType.InheritsFrom(TAbstractComplexRemotable) then begin
|
||||||
|
TAbstractComplexRemotableClass(GetTypeData(ATypeInfo)^.ClassType).RegisterAttributeProperty(AProperty);
|
||||||
|
ok := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
tkRecord :
|
||||||
|
begin
|
||||||
|
recordData := GetTypeRegistry().ItemByTypeInfo[ATypeInfo].GetObject(FIELDS_STRING) as TRecordRttiDataObject;
|
||||||
|
if Assigned(recordData) then begin
|
||||||
|
recordData.GetField(AProperty)^.IsAttribute := True;
|
||||||
|
ok := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if not ok then
|
||||||
|
raise EServiceConfigException.Create('Invalid parameters.');
|
||||||
|
end;
|
||||||
|
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
function IsStoredPropClass(AClass : TClass;PropInfo : PPropInfo) : TPropStoreType;
|
function IsStoredPropClass(AClass : TClass;PropInfo : PPropInfo) : TPropStoreType;
|
||||||
begin
|
begin
|
||||||
@ -2392,7 +2458,7 @@ begin
|
|||||||
inherited Destroy();
|
inherited Destroy();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TTypeRegistryItem.AddPascalSynonym(const ASynonym: string):TTypeRegistryItem; //inline;
|
function TTypeRegistryItem.AddPascalSynonym(const ASynonym: string):TTypeRegistryItem;
|
||||||
begin
|
begin
|
||||||
Result := Self;
|
Result := Self;
|
||||||
if AnsiSameText(ASynonym,DataType^.Name) then
|
if AnsiSameText(ASynonym,DataType^.Name) then
|
||||||
@ -2405,7 +2471,7 @@ begin
|
|||||||
FSynonymTable.Add(AnsiLowerCase(ASynonym));
|
FSynonymTable.Add(AnsiLowerCase(ASynonym));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TTypeRegistryItem.IsSynonym(const APascalTypeName: string): Boolean;//inline;
|
function TTypeRegistryItem.IsSynonym(const APascalTypeName: string): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := AnsiSameText(APascalTypeName,DataType^.Name);
|
Result := AnsiSameText(APascalTypeName,DataType^.Name);
|
||||||
if ( not Result ) and Assigned(FSynonymTable) then
|
if ( not Result ) and Assigned(FSynonymTable) then
|
||||||
@ -4614,8 +4680,9 @@ begin
|
|||||||
ss := AStore.GetSerializationStyle();
|
ss := AStore.GetSerializationStyle();
|
||||||
for i := 0 to Pred(typData^.FieldCount) do begin
|
for i := 0 to Pred(typData^.FieldCount) do begin
|
||||||
p := @(typData^.Fields[i]);
|
p := @(typData^.Fields[i]);
|
||||||
pt := p^.TypeInfo^;//{$IFNDEF FPC}^{$ENDIF};
|
if p^.Visible then begin
|
||||||
{if IsAttributeProperty(p^.Name) then begin
|
pt := p^.TypeInfo^;
|
||||||
|
if p^.IsAttribute then begin
|
||||||
if ( ss <> ssAttibuteSerialization ) then
|
if ( ss <> ssAttibuteSerialization ) then
|
||||||
ss := ssAttibuteSerialization;
|
ss := ssAttibuteSerialization;
|
||||||
end else begin
|
end else begin
|
||||||
@ -4623,8 +4690,8 @@ begin
|
|||||||
ss := ssNodeSerialization;
|
ss := ssNodeSerialization;
|
||||||
end;
|
end;
|
||||||
if ( ss <> AStore.GetSerializationStyle() ) then
|
if ( ss <> AStore.GetSerializationStyle() ) then
|
||||||
AStore.SetSerializationStyle(ss);}
|
AStore.SetSerializationStyle(ss);
|
||||||
AStore.SetSerializationStyle(ssNodeSerialization);
|
AStore.SetSerializationStyle(ss);
|
||||||
prpName := typRegItem.GetExternalPropertyName(p^.Name);
|
prpName := typRegItem.GetExternalPropertyName(p^.Name);
|
||||||
recFieldAddress := recStart;
|
recFieldAddress := recStart;
|
||||||
Inc(recFieldAddress,p^.Offset);
|
Inc(recFieldAddress,p^.Offset);
|
||||||
@ -4675,6 +4742,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
AStore.EndScope();
|
AStore.EndScope();
|
||||||
AStore.SetSerializationStyle(oldSS);
|
AStore.SetSerializationStyle(oldSS);
|
||||||
@ -4694,7 +4762,6 @@ var
|
|||||||
pt : PTypeInfo;
|
pt : PTypeInfo;
|
||||||
propName : String;
|
propName : String;
|
||||||
p : PRecordFieldInfo;
|
p : PRecordFieldInfo;
|
||||||
persistType : TPropStoreType;
|
|
||||||
oldSS,ss : TSerializationStyle;
|
oldSS,ss : TSerializationStyle;
|
||||||
typRegItem : TTypeRegistryItem;
|
typRegItem : TTypeRegistryItem;
|
||||||
typDataObj : TObject;
|
typDataObj : TObject;
|
||||||
@ -4718,20 +4785,20 @@ begin
|
|||||||
recStart := PByte(ARecord);
|
recStart := PByte(ARecord);
|
||||||
for i := 0 to Pred(typData^.FieldCount) do begin
|
for i := 0 to Pred(typData^.FieldCount) do begin
|
||||||
p := @(typData^.Fields[i]);
|
p := @(typData^.Fields[i]);
|
||||||
persistType := pstOptional;// IsStoredPropClass(objTypeData^.ClassType,p);
|
if p^.Visible then begin
|
||||||
pt := p^.TypeInfo^;//{$IFNDEF FPC}^{$ENDIF};
|
pt := p^.TypeInfo^;
|
||||||
propName := typRegItem.GetExternalPropertyName(p^.Name);
|
propName := typRegItem.GetExternalPropertyName(p^.Name);
|
||||||
{if IsAttributeProperty(p^.Name) then begin
|
if p^.IsAttribute then begin
|
||||||
ss := ssAttibuteSerialization;
|
ss := ssAttibuteSerialization;
|
||||||
end else begin
|
end else begin
|
||||||
ss := ssNodeSerialization;
|
ss := ssNodeSerialization;
|
||||||
end;
|
end;
|
||||||
if ( ss <> AStore.GetSerializationStyle() ) then
|
if ( ss <> AStore.GetSerializationStyle() ) then
|
||||||
AStore.SetSerializationStyle(ss);}
|
AStore.SetSerializationStyle(ss);
|
||||||
AStore.SetSerializationStyle(ssNodeSerialization);
|
AStore.SetSerializationStyle(ss);
|
||||||
recFieldAddress := recStart;
|
recFieldAddress := recStart;
|
||||||
Inc(recFieldAddress,p^.Offset);
|
Inc(recFieldAddress,p^.Offset);
|
||||||
try
|
//try
|
||||||
Case pt^.Kind Of
|
Case pt^.Kind Of
|
||||||
tkInt64 : AStore.Get(pt,propName,PInt64(recFieldAddress)^);
|
tkInt64 : AStore.Get(pt,propName,PInt64(recFieldAddress)^);
|
||||||
{$IFDEF HAS_QWORD}
|
{$IFDEF HAS_QWORD}
|
||||||
@ -4777,11 +4844,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
End;
|
End;
|
||||||
except
|
{except
|
||||||
on E : EServiceException do begin
|
on E : EServiceException do begin
|
||||||
if ( persistType = pstAlways ) then
|
if ( persistType = pstAlways ) then
|
||||||
raise;
|
raise;
|
||||||
end;
|
end;
|
||||||
|
end;}
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -139,12 +139,12 @@ type
|
|||||||
FKeepedEncoding : TSOAPEncodingStyle;
|
FKeepedEncoding : TSOAPEncodingStyle;
|
||||||
FSerializationStyle : TSerializationStyle;
|
FSerializationStyle : TSerializationStyle;
|
||||||
|
|
||||||
procedure InternalClear(const ACreateDoc : Boolean);
|
procedure InternalClear(const ACreateDoc : Boolean);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
function NextNameSpaceCounter():Integer;//inline;
|
function NextNameSpaceCounter():Integer;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function HasScope():Boolean;//inline;
|
function HasScope():Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
procedure CheckScope();//inline;
|
procedure CheckScope();{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function InternalPutData(
|
function InternalPutData(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
@ -154,89 +154,89 @@ type
|
|||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TEnumIntType
|
Const AData : TEnumIntType
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PutBool(
|
function PutBool(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : Boolean
|
Const AData : Boolean
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PutInt64(
|
function PutInt64(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : Int64
|
Const AData : Int64
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PutStr(
|
function PutStr(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : String
|
Const AData : String
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PutFloat(
|
function PutFloat(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : Extended
|
Const AData : Extended
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutObj(
|
procedure PutObj(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TObject
|
Const AData : TObject
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutRecord(
|
procedure PutRecord(
|
||||||
const AName : string;
|
const AName : string;
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
const AData : Pointer
|
const AData : Pointer
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
function GetNodeValue(var AName : String):DOMString;
|
function GetNodeValue(var AName : String):DOMString;
|
||||||
procedure GetEnum(
|
procedure GetEnum(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TEnumIntType
|
Var AData : TEnumIntType
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetBool(
|
procedure GetBool(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : Boolean
|
Var AData : Boolean
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
procedure GetInt(
|
procedure GetInt(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : Integer
|
Var AData : Integer
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
procedure GetInt64(
|
procedure GetInt64(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : Int64
|
Var AData : Int64
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetFloat(
|
procedure GetFloat(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : Extended
|
Var AData : Extended
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetStr(
|
procedure GetStr(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : String
|
Var AData : String
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetObj(
|
procedure GetObj(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TObject
|
Var AData : TObject
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetRecord(
|
procedure GetRecord(
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
var AName : String;
|
var AName : String;
|
||||||
var AData : Pointer
|
var AData : Pointer
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
protected
|
protected
|
||||||
function GetXmlDoc():TwstXMLDocument;
|
function GetXmlDoc():TwstXMLDocument;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PushStack(AScopeObject : TDOMNode):TStackItem;overload;
|
function PushStack(AScopeObject : TDOMNode):TStackItem;overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PushStack(
|
function PushStack(
|
||||||
AScopeObject : TDOMNode;
|
AScopeObject : TDOMNode;
|
||||||
const AStyle : TArrayStyle;
|
const AStyle : TArrayStyle;
|
||||||
const AItemName : string
|
const AItemName : string
|
||||||
):TStackItem;overload;
|
):TStackItem;overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function FindAttributeByValueInNode(
|
function FindAttributeByValueInNode(
|
||||||
Const AAttValue : String;
|
Const AAttValue : String;
|
||||||
Const ANode : TDOMNode;
|
Const ANode : TDOMNode;
|
||||||
@ -252,13 +252,13 @@ type
|
|||||||
function GetNameSpaceShortName(
|
function GetNameSpaceShortName(
|
||||||
const ANameSpace : string;
|
const ANameSpace : string;
|
||||||
const ACreateIfNotFound : Boolean
|
const ACreateIfNotFound : Boolean
|
||||||
):shortstring;
|
):shortstring;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
protected
|
protected
|
||||||
function GetCurrentScope():String;
|
function GetCurrentScope():String;
|
||||||
function GetCurrentScopeObject():TDOMElement;
|
function GetCurrentScopeObject():TDOMElement;
|
||||||
function StackTop():TStackItem;
|
function StackTop():TStackItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PopStack():TStackItem;
|
function PopStack():TStackItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure ClearStack();
|
procedure ClearStack();{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure BeginScope(
|
procedure BeginScope(
|
||||||
Const AScopeName,ANameSpace : string;
|
Const AScopeName,ANameSpace : string;
|
||||||
Const ANameSpaceShortName : string ;
|
Const ANameSpaceShortName : string ;
|
||||||
|
@ -150,66 +150,66 @@ type
|
|||||||
FStack : TObjectStack;
|
FStack : TObjectStack;
|
||||||
FSerializationStyle: TSerializationStyle;
|
FSerializationStyle: TSerializationStyle;
|
||||||
private
|
private
|
||||||
procedure InternalClear(const ACreateDoc : Boolean);
|
procedure InternalClear(const ACreateDoc : Boolean);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
function HasScope():Boolean;//inline;
|
function HasScope():Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
procedure CheckScope();//inline;
|
procedure CheckScope();{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function InternalPutData(
|
function InternalPutData(
|
||||||
const AName : string;
|
const AName : string;
|
||||||
const AType : TXmlRpcDataType;
|
const AType : TXmlRpcDataType;
|
||||||
const AData : string
|
const AData : string
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PutEnum(
|
function PutEnum(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TEnumIntType
|
Const AData : TEnumIntType
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
function PutBool(
|
function PutBool(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : Boolean
|
Const AData : Boolean
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
function PutInt64(
|
function PutInt64(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : Int64
|
Const AData : Int64
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PutStr(
|
function PutStr(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : String
|
Const AData : String
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PutFloat(
|
function PutFloat(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : Extended
|
Const AData : Extended
|
||||||
):TDOMNode;
|
):TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutObj(
|
procedure PutObj(
|
||||||
Const AName : String;
|
Const AName : String;
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TObject
|
Const AData : TObject
|
||||||
);
|
); {$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure PutRecord(
|
procedure PutRecord(
|
||||||
const AName : string;
|
const AName : string;
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
const AData : Pointer
|
const AData : Pointer
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
function GetNodeValue(var AName : String):DOMString;
|
function GetNodeValue(var AName : String):DOMString;
|
||||||
procedure GetEnum(
|
procedure GetEnum(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TEnumIntType
|
Var AData : TEnumIntType
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
procedure GetBool(
|
procedure GetBool(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : Boolean
|
Var AData : Boolean
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetInt(
|
procedure GetInt(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
@ -220,36 +220,36 @@ type
|
|||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : Int64
|
Var AData : Int64
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetFloat(
|
procedure GetFloat(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : Extended
|
Var AData : Extended
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetStr(
|
procedure GetStr(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : String
|
Var AData : String
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetObj(
|
procedure GetObj(
|
||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TObject
|
Var AData : TObject
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure GetRecord(
|
procedure GetRecord(
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
var AName : String;
|
var AName : String;
|
||||||
var AData : Pointer
|
var AData : Pointer
|
||||||
);
|
);{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
protected
|
protected
|
||||||
function GetXmlDoc():TXMLDocument;
|
function GetXmlDoc():TXMLDocument;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PushStack(AScopeObject : TDOMNode):TStackItem;overload;
|
function PushStack(AScopeObject : TDOMNode):TStackItem;overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PushStack(
|
function PushStack(
|
||||||
AScopeObject : TDOMNode;
|
AScopeObject : TDOMNode;
|
||||||
const AStyle : TArrayStyle;
|
const AStyle : TArrayStyle;
|
||||||
const AItemName : string
|
const AItemName : string
|
||||||
):TStackItem;overload;
|
):TStackItem;overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PushStackParams(AScopeObject : TDOMNode) : TStackItem;
|
function PushStackParams(AScopeObject : TDOMNode) : TStackItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function FindAttributeByValueInNode(
|
function FindAttributeByValueInNode(
|
||||||
Const AAttValue : String;
|
Const AAttValue : String;
|
||||||
Const ANode : TDOMNode;
|
Const ANode : TDOMNode;
|
||||||
@ -264,10 +264,10 @@ type
|
|||||||
function FindAttributeByNameInScope(Const AAttName : String):String;
|
function FindAttributeByNameInScope(Const AAttName : String):String;
|
||||||
protected
|
protected
|
||||||
function GetCurrentScope():String;
|
function GetCurrentScope():String;
|
||||||
function GetCurrentScopeObject():TDOMElement;
|
function GetCurrentScopeObject():TDOMElement;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function StackTop():TStackItem;
|
function StackTop():TStackItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function PopStack():TStackItem;
|
function PopStack():TStackItem;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure ClearStack();
|
procedure ClearStack();{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure BeginScope(
|
procedure BeginScope(
|
||||||
Const AScopeName,ANameSpace : string;
|
Const AScopeName,ANameSpace : string;
|
||||||
Const ANameSpaceShortName : string ;
|
Const ANameSpaceShortName : string ;
|
||||||
|
@ -100,7 +100,7 @@ end;
|
|||||||
procedure TBinaryFormatter.BeginCallRead(ACallContext : ICallContext);
|
procedure TBinaryFormatter.BeginCallRead(ACallContext : ICallContext);
|
||||||
Var
|
Var
|
||||||
s,nme : string;
|
s,nme : string;
|
||||||
e : EBaseRemoteException;
|
e : EBinaryException;
|
||||||
begin
|
begin
|
||||||
ClearStack();
|
ClearStack();
|
||||||
PushStack(GetRootData(),stObject);
|
PushStack(GetRootData(),stObject);
|
||||||
@ -109,7 +109,7 @@ begin
|
|||||||
s := StackTop().GetByIndex(0)^.Name;
|
s := StackTop().GetByIndex(0)^.Name;
|
||||||
If AnsiSameText(s,'Fault') Then Begin
|
If AnsiSameText(s,'Fault') Then Begin
|
||||||
BeginObjectRead(s,nil);
|
BeginObjectRead(s,nil);
|
||||||
e := EBaseRemoteException.Create('');
|
e := EBinaryException.Create('');
|
||||||
Try
|
Try
|
||||||
nme := 'faultcode';
|
nme := 'faultcode';
|
||||||
Get(TypeInfo(string),nme,s);
|
Get(TypeInfo(string),nme,s);
|
||||||
|
@ -17,10 +17,7 @@ unit binary_streamer;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, Types;
|
Classes, SysUtils, Types, wst_types;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
Const
|
Const
|
||||||
MAX_ARRAY_LENGTH = 1024*1024;
|
MAX_ARRAY_LENGTH = 1024*1024;
|
||||||
@ -89,8 +86,8 @@ Type
|
|||||||
function ReadCurrency():TFloat_Currency_8;
|
function ReadCurrency():TFloat_Currency_8;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
function CreateBinaryReader(AStream : TStream):IDataStoreReader;
|
function CreateBinaryReader(AStream : TStream):IDataStoreReader;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function CreateBinaryWriter(AStream : TStream):IDataStore;
|
function CreateBinaryWriter(AStream : TStream):IDataStore;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
procedure ReverseBytes(var AData; const ALength : Integer);{$IFDEF USE_INLINE}{$IFDEF ENDIAN_BIG}inline;{$ENDIF}{$ENDIF}
|
procedure ReverseBytes(var AData; const ALength : Integer);{$IFDEF USE_INLINE}{$IFDEF ENDIAN_BIG}inline;{$ENDIF}{$ENDIF}
|
||||||
function Reverse_16(const AValue:Word):Word;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
function Reverse_16(const AValue:Word):Word;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
@ -29,8 +29,8 @@ Type
|
|||||||
TPublishedPropertyManager = class(TInterfacedObject,IPropertyManager)
|
TPublishedPropertyManager = class(TInterfacedObject,IPropertyManager)
|
||||||
Private
|
Private
|
||||||
FParent : TObject;
|
FParent : TObject;
|
||||||
procedure Error(Const AMsg:string);overload;
|
procedure Error(Const AMsg:string);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure Error(Const AMsg:string; Const AArgs : array of const);overload;
|
procedure Error(Const AMsg:string; Const AArgs : array of const);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
Protected
|
Protected
|
||||||
procedure SetProperty(Const AName,AValue:string);
|
procedure SetProperty(Const AName,AValue:string);
|
||||||
procedure SetProperties(Const APropsStr:string);
|
procedure SetProperties(Const APropsStr:string);
|
||||||
@ -42,7 +42,7 @@ Type
|
|||||||
constructor Create(AParent : TObject);
|
constructor Create(AParent : TObject);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
function IsStrEmpty(Const AStr:String):Boolean;
|
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;
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@ type
|
|||||||
Name : shortstring;
|
Name : shortstring;
|
||||||
TypeInfo : PPTypeInfo;
|
TypeInfo : PPTypeInfo;
|
||||||
Offset : PtrUInt;
|
Offset : PtrUInt;
|
||||||
|
IsAttribute : Boolean;
|
||||||
|
Visible : Boolean;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
PRecordTypeData = ^TRecordTypeData;
|
PRecordTypeData = ^TRecordTypeData;
|
||||||
@ -44,6 +46,8 @@ type
|
|||||||
constructor Create(const AData : PRecordTypeData; const AFieldList : string);
|
constructor Create(const AData : PRecordTypeData; const AFieldList : string);
|
||||||
destructor Destroy();override;
|
destructor Destroy();override;
|
||||||
function GetRecordTypeData() : PRecordTypeData;
|
function GetRecordTypeData() : PRecordTypeData;
|
||||||
|
function FindField(const AFieldName : shortstring) : PRecordFieldInfo;
|
||||||
|
function GetField(const AFieldName : shortstring) : PRecordFieldInfo;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function MakeRecordTypeInfo(ARawTypeInfo : PTypeInfo) : PRecordTypeData;
|
function MakeRecordTypeInfo(ARawTypeInfo : PTypeInfo) : PRecordTypeData;
|
||||||
@ -182,6 +186,7 @@ begin
|
|||||||
fieldInfo := @(resBuffer^.Fields[(i - 1)]);
|
fieldInfo := @(resBuffer^.Fields[(i - 1)]);
|
||||||
fieldInfo^.TypeInfo := fld^.TypeInfo;
|
fieldInfo^.TypeInfo := fld^.TypeInfo;
|
||||||
fieldInfo^.Offset := fld^.Offset;
|
fieldInfo^.Offset := fld^.Offset;
|
||||||
|
fieldInfo^.Visible := True;
|
||||||
end;
|
end;
|
||||||
Result := resBuffer;
|
Result := resBuffer;
|
||||||
end;
|
end;
|
||||||
@ -258,6 +263,7 @@ begin
|
|||||||
Inc(Temp,sizeof(Info));
|
Inc(Temp,sizeof(Info));
|
||||||
Offset := PLongint(Temp)^;
|
Offset := PLongint(Temp)^;
|
||||||
fieldInfo^.Offset := Offset;
|
fieldInfo^.Offset := Offset;
|
||||||
|
fieldInfo^.Visible := True;
|
||||||
Inc(Temp,sizeof(Offset));
|
Inc(Temp,sizeof(Offset));
|
||||||
end;
|
end;
|
||||||
Result := resBuffer;
|
Result := resBuffer;
|
||||||
@ -306,6 +312,30 @@ begin
|
|||||||
Result := PRecordTypeData(Data);
|
Result := PRecordTypeData(Data);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TRecordRttiDataObject.FindField(const AFieldName : shortstring) : PRecordFieldInfo;
|
||||||
|
var
|
||||||
|
i : PtrInt;
|
||||||
|
locData : PRecordTypeData;
|
||||||
|
locField : shortstring;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
locData := PRecordTypeData(Data);
|
||||||
|
locField := UpperCase(AFieldName);
|
||||||
|
for i := 0 to Pred(locData^.FieldCount) do begin
|
||||||
|
if ( locField = UpperCase(locData^.Fields[i].Name) ) then begin
|
||||||
|
Result := @(locData^.Fields[i]);
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TRecordRttiDataObject.GetField(const AFieldName : shortstring) : PRecordFieldInfo;
|
||||||
|
begin
|
||||||
|
Result := FindField(AFieldName);
|
||||||
|
if ( Result = nil ) then
|
||||||
|
raise Exception.CreateFmt('"%s" is not a field of "%s".',[AFieldName,GetRecordTypeData()^.Name]);
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
{$IFDEF WST_RECORD_RTTI}
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
RawTypeInfoList := TList.Create();
|
RawTypeInfoList := TList.Create();
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<IconPath Value=".\"/>
|
<IconPath Value=".\"/>
|
||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<ActiveEditorIndexAtStart Value="1"/>
|
<ActiveEditorIndexAtStart Value="2"/>
|
||||||
</General>
|
</General>
|
||||||
<VersionInfo>
|
<VersionInfo>
|
||||||
<ProjectVersion Value=""/>
|
<ProjectVersion Value=""/>
|
||||||
@ -35,7 +35,7 @@
|
|||||||
<PackageName Value="indylaz"/>
|
<PackageName Value="indylaz"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="72">
|
<Units Count="73">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="http_server.pas"/>
|
<Filename Value="http_server.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
@ -421,8 +421,8 @@
|
|||||||
<Unit53>
|
<Unit53>
|
||||||
<Filename Value="..\..\config_objects.pas"/>
|
<Filename Value="..\..\config_objects.pas"/>
|
||||||
<UnitName Value="config_objects"/>
|
<UnitName Value="config_objects"/>
|
||||||
<CursorPos X="74" Y="99"/>
|
<CursorPos X="19" Y="14"/>
|
||||||
<TopLine Value="85"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="1"/>
|
||||||
<UsageCount Value="27"/>
|
<UsageCount Value="27"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -555,8 +555,19 @@
|
|||||||
<TopLine Value="176"/>
|
<TopLine Value="176"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit71>
|
</Unit71>
|
||||||
|
<Unit72>
|
||||||
|
<Filename Value="..\..\wst_global.inc"/>
|
||||||
|
<CursorPos X="35" Y="3"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit72>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
<JumpHistory Count="1" HistoryIndex="0">
|
||||||
|
<Position1>
|
||||||
|
<Filename Value="..\..\config_objects.pas"/>
|
||||||
|
<Caret Line="14" Column="19" TopLine="1"/>
|
||||||
|
</Position1>
|
||||||
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="5"/>
|
<Version Value="5"/>
|
||||||
|
@ -355,16 +355,7 @@
|
|||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit42>
|
</Unit42>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="2" HistoryIndex="1">
|
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||||
<Position1>
|
|
||||||
<Filename Value="user_client_console.pas"/>
|
|
||||||
<Caret Line="252" Column="5" TopLine="250"/>
|
|
||||||
</Position1>
|
|
||||||
<Position2>
|
|
||||||
<Filename Value="user_client_console.pas"/>
|
|
||||||
<Caret Line="8" Column="111" TopLine="1"/>
|
|
||||||
</Position2>
|
|
||||||
</JumpHistory>
|
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="5"/>
|
<Version Value="5"/>
|
||||||
|
@ -20,18 +20,12 @@ uses
|
|||||||
base_service_intf, server_service_intf,
|
base_service_intf, server_service_intf,
|
||||||
base_binary_formatter;
|
base_binary_formatter;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
const
|
const
|
||||||
sBINARY_CONTENT_TYPE = 'binary';
|
sBINARY_CONTENT_TYPE = 'binary';
|
||||||
sPROTOCOL_NAME = sBINARY_CONTENT_TYPE;
|
sPROTOCOL_NAME = sBINARY_CONTENT_TYPE;
|
||||||
|
|
||||||
procedure Server_service_RegisterBinaryFormat();
|
type
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
Type
|
|
||||||
|
|
||||||
{ TBinaryFormatter }
|
{ TBinaryFormatter }
|
||||||
|
|
||||||
@ -52,6 +46,12 @@ Type
|
|||||||
procedure EndExceptionList();
|
procedure EndExceptionList();
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
procedure Server_service_RegisterBinaryFormat();
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
Type
|
||||||
|
|
||||||
{ TBinaryFormatterFactory }
|
{ TBinaryFormatterFactory }
|
||||||
|
|
||||||
TBinaryFormatterFactory = class(TInterfacedObject,IItemFactory)
|
TBinaryFormatterFactory = class(TInterfacedObject,IItemFactory)
|
||||||
|
@ -85,10 +85,10 @@ Type
|
|||||||
private
|
private
|
||||||
procedure LoadProperties();
|
procedure LoadProperties();
|
||||||
protected
|
protected
|
||||||
function GetTarget():String;
|
function GetTarget():String;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function GetSerializer() : IFormatterClient;
|
function GetSerializer() : IFormatterClient;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function GetCallHandler() : ICallMaker;
|
function GetCallHandler() : ICallMaker;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function GetTransport() : ITransport;
|
function GetTransport() : ITransport;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
procedure MakeCall();
|
procedure MakeCall();
|
||||||
class function GetServiceType() : PTypeInfo;virtual;abstract;
|
class function GetServiceType() : PTypeInfo;virtual;abstract;
|
||||||
|
|
||||||
@ -147,8 +147,8 @@ Type
|
|||||||
);
|
);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
function GetFormaterRegistry():IFormaterQueryRegistry;
|
function GetFormaterRegistry():IFormaterQueryRegistry;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
function GetTransportRegistry():ITransportRegistry;
|
function GetTransportRegistry():ITransportRegistry;{$IFDEF USE_INLINE}inline;{$ENDIF}
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
uses imp_utils, metadata_repository;
|
uses imp_utils, metadata_repository;
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
{ This file is part of the Web Service Toolkit
|
||||||
|
Copyright (c) 2006, 2007 by Inoussa OUEDRAOGO
|
||||||
|
|
||||||
|
This file is provide under modified LGPL licence
|
||||||
|
( the files COPYING.modifiedLGPL and COPYING.LGPL).
|
||||||
|
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
}
|
||||||
{$INCLUDE wst_global.inc}
|
{$INCLUDE wst_global.inc}
|
||||||
unit test_utilities;
|
unit test_utilities;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
This file is part of the Web Service Toolkit
|
This file is part of the Web Service Toolkit
|
||||||
Copyright (c) 2006 by Inoussa OUEDRAOGO
|
Copyright (c) 2006, 2007 by Inoussa OUEDRAOGO
|
||||||
|
|
||||||
This file is provide under modified LGPL licence
|
This file is provide under modified LGPL licence
|
||||||
( the files COPYING.modifiedLGPL and COPYING.LGPL).
|
( the files COPYING.modifiedLGPL and COPYING.LGPL).
|
||||||
@ -504,6 +504,17 @@ type
|
|||||||
procedure ExceptBlock_client();
|
procedure ExceptBlock_client();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TTest_BinaryFormatterExceptionBlock }
|
||||||
|
|
||||||
|
TTest_BinaryFormatterExceptionBlock = class(TTestCase)
|
||||||
|
protected
|
||||||
|
function CreateFormatter():IFormatterResponse;
|
||||||
|
function CreateFormatterClient():IFormatterClient;
|
||||||
|
published
|
||||||
|
procedure ExceptBlock_server();
|
||||||
|
procedure ExceptBlock_client();
|
||||||
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
uses base_binary_formatter, base_soap_formatter, base_xmlrpc_formatter, record_rtti,
|
uses base_binary_formatter, base_soap_formatter, base_xmlrpc_formatter, record_rtti,
|
||||||
Math, imp_utils
|
Math, imp_utils
|
||||||
@ -514,7 +525,8 @@ uses base_binary_formatter, base_soap_formatter, base_xmlrpc_formatter, record_r
|
|||||||
, DOM, XMLRead, wst_fpc_xml
|
, DOM, XMLRead, wst_fpc_xml
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
, server_service_soap, soap_formatter,
|
, server_service_soap, soap_formatter,
|
||||||
server_service_xmlrpc, xmlrpc_formatter;
|
server_service_xmlrpc, xmlrpc_formatter,
|
||||||
|
binary_streamer, server_binary_formatter, binary_formatter;
|
||||||
|
|
||||||
function TTestFormatterSimpleType.Support_ComplextType_with_SimpleContent( ): Boolean;
|
function TTestFormatterSimpleType.Support_ComplextType_with_SimpleContent( ): Boolean;
|
||||||
begin
|
begin
|
||||||
@ -3725,6 +3737,130 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TTest_BinaryFormatterExceptionBlock }
|
||||||
|
|
||||||
|
function TTest_BinaryFormatterExceptionBlock.CreateFormatter() : IFormatterResponse;
|
||||||
|
begin
|
||||||
|
Result := server_binary_formatter.TBinaryFormatter.Create() as IFormatterResponse;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TTest_BinaryFormatterExceptionBlock.CreateFormatterClient() : IFormatterClient;
|
||||||
|
begin
|
||||||
|
Result := binary_formatter.TBinaryFormatter.Create() as IFormatterClient;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function loc_FindObj(const AOwner: PDataBuffer; const AName : TDataName) : PDataBuffer;
|
||||||
|
Var
|
||||||
|
p : PObjectBufferItem;
|
||||||
|
Begin
|
||||||
|
Assert(AOwner^.DataType >= dtObject);
|
||||||
|
Result := Nil;
|
||||||
|
p:= AOwner^.ObjectData^.Head;
|
||||||
|
While Assigned(p) Do Begin
|
||||||
|
If AnsiSameText(AName,p^.Data^.Name) Then Begin
|
||||||
|
Result := p^.Data;
|
||||||
|
Exit;
|
||||||
|
End;
|
||||||
|
p := p^.Next;
|
||||||
|
End;
|
||||||
|
End;
|
||||||
|
|
||||||
|
procedure TTest_BinaryFormatterExceptionBlock.ExceptBlock_server();
|
||||||
|
const VAL_CODE = '1210'; VAL_MSG = 'This is a sample exception message.';
|
||||||
|
var
|
||||||
|
f : IFormatterResponse;
|
||||||
|
strm : TMemoryStream;
|
||||||
|
root, bodyNode, faultNode, tmpNode : PDataBuffer;
|
||||||
|
excpt_code, excpt_msg : string;
|
||||||
|
begin
|
||||||
|
root := nil;
|
||||||
|
f := CreateFormatter();
|
||||||
|
f.BeginExceptionList(VAL_CODE,VAL_MSG);
|
||||||
|
f.EndExceptionList();
|
||||||
|
strm := TMemoryStream.Create();
|
||||||
|
try
|
||||||
|
f.SaveToStream(strm);
|
||||||
|
strm.Position := 0;
|
||||||
|
root := LoadObjectFromStream(CreateBinaryReader(strm));
|
||||||
|
Check(Assigned(root));
|
||||||
|
CheckEquals(Ord(dtObject), Ord(root^.DataType),'root^.DataType');
|
||||||
|
Check(Assigned(root^.ObjectData),'root^.ObjectData');
|
||||||
|
CheckEquals(False,root^.ObjectData^.NilObject,'root^.NilObject');
|
||||||
|
Check(root^.ObjectData^.Count > 0, 'root^.Count');
|
||||||
|
bodyNode := root^.ObjectData^.Head^.Data;
|
||||||
|
Check(Assigned(bodyNode),'body');
|
||||||
|
CheckEquals(Ord(dtObject), Ord(bodyNode^.DataType),'body.DataType');
|
||||||
|
CheckEquals(False,bodyNode^.ObjectData^.NilObject,'body.NilObject');
|
||||||
|
Check(bodyNode^.ObjectData^.Count > 0, 'body.Count');
|
||||||
|
|
||||||
|
faultNode := bodyNode^.ObjectData^.Head^.Data;
|
||||||
|
Check(Assigned(faultNode),'fault');
|
||||||
|
CheckEquals(Ord(dtObject), Ord(faultNode^.DataType),'fault.DataType');
|
||||||
|
CheckEquals(False,faultNode^.ObjectData^.NilObject,'fault.NilObject');
|
||||||
|
Check(faultNode^.ObjectData^.Count > 0, 'fault.Count');
|
||||||
|
|
||||||
|
tmpNode := loc_FindObj(faultNode,'faultcode');
|
||||||
|
Check(Assigned(tmpNode),'faultcode');
|
||||||
|
CheckEquals(Ord(dtString), Ord(tmpNode^.DataType),'faultcode.DataType');
|
||||||
|
excpt_code := tmpNode^.StrData^.Data;
|
||||||
|
CheckEquals(VAL_CODE,excpt_code,'faultCode');
|
||||||
|
|
||||||
|
tmpNode := loc_FindObj(faultNode,'faultstring');
|
||||||
|
Check(Assigned(tmpNode),'faultstring');
|
||||||
|
CheckEquals(Ord(dtString), Ord(tmpNode^.DataType),'faultstring.DataType');
|
||||||
|
excpt_msg := tmpNode^.StrData^.Data;
|
||||||
|
CheckEquals(VAL_MSG,excpt_msg,'faultString');
|
||||||
|
finally
|
||||||
|
FreeAndNil(strm);
|
||||||
|
ClearObj(root);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTest_BinaryFormatterExceptionBlock.ExceptBlock_client();
|
||||||
|
const
|
||||||
|
VAL_CODE = '1210'; VAL_MSG = 'This is a sample exception message.';
|
||||||
|
var
|
||||||
|
f : IFormatterClient;
|
||||||
|
strm : TMemoryStream;
|
||||||
|
root, bodyNode, faultNode, tmpNode : PDataBuffer;
|
||||||
|
excpt_code, excpt_msg : string;
|
||||||
|
locStore : IDataStore;
|
||||||
|
begin
|
||||||
|
excpt_code := '';
|
||||||
|
excpt_msg := '';
|
||||||
|
root := CreateObjBuffer(dtObject,'ROOT');
|
||||||
|
try
|
||||||
|
bodyNode := CreateObjBuffer(dtObject,'Body',root);
|
||||||
|
faultNode := CreateObjBuffer(dtObject,'Fault',bodyNode);
|
||||||
|
CreateObjBuffer(dtString,'faultCode',faultNode)^.StrData^.Data := VAL_CODE;
|
||||||
|
CreateObjBuffer(dtString,'faultString',faultNode)^.StrData^.Data := VAL_MSG;
|
||||||
|
f := CreateFormatterClient();
|
||||||
|
strm := TMemoryStream.Create();
|
||||||
|
try
|
||||||
|
locStore := CreateBinaryWriter(strm);
|
||||||
|
SaveObjectToStream(root,locStore);
|
||||||
|
locStore := nil;
|
||||||
|
strm.Position := 0;
|
||||||
|
f.LoadFromStream(strm);
|
||||||
|
try
|
||||||
|
f.BeginCallRead(nil);
|
||||||
|
Check(False,'BeginCallRead() should raise an exception.');
|
||||||
|
except
|
||||||
|
on e : EBinaryException do begin
|
||||||
|
excpt_code := e.FaultCode;
|
||||||
|
excpt_msg := e.FaultString;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
CheckEquals(VAL_CODE,excpt_code,'faultCode');
|
||||||
|
CheckEquals(VAL_MSG,excpt_msg,'faultString');
|
||||||
|
finally
|
||||||
|
FreeAndNil(strm);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
ClearObj(root);
|
||||||
|
end;
|
||||||
|
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');
|
||||||
@ -3766,6 +3902,8 @@ initialization
|
|||||||
{$IFDEF WST_RECORD_RTTI}
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestRecord)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(__TTestRecord_TYPEINFO_FUNC__()),GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestRecord)].GetExternalPropertyName('__FIELDS__')));
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestRecord)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(__TTestRecord_TYPEINFO_FUNC__()),GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestRecord)].GetExternalPropertyName('__FIELDS__')));
|
||||||
{$ENDIF WST_RECORD_RTTI}
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
RegisterAttributeProperty(TypeInfo(TTestSmallRecord),'fieldWord');
|
||||||
|
RegisterAttributeProperty(TypeInfo(TTestRecord),'fieldWord');
|
||||||
|
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
RegisterTest(TTestArray);
|
RegisterTest(TTestArray);
|
||||||
@ -3782,6 +3920,7 @@ initialization
|
|||||||
RegisterTest(TTestXmlRpcFormatter);
|
RegisterTest(TTestXmlRpcFormatter);
|
||||||
RegisterTest(TTest_SoapFormatterExceptionBlock);
|
RegisterTest(TTest_SoapFormatterExceptionBlock);
|
||||||
RegisterTest(TTest_XmlRpcFormatterExceptionBlock);
|
RegisterTest(TTest_XmlRpcFormatterExceptionBlock);
|
||||||
|
RegisterTest(TTest_BinaryFormatterExceptionBlock);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
RegisterTest(TTestArray.Suite);
|
RegisterTest(TTestArray.Suite);
|
||||||
RegisterTest(TTestSOAPFormatter.Suite);
|
RegisterTest(TTestSOAPFormatter.Suite);
|
||||||
@ -3797,6 +3936,7 @@ initialization
|
|||||||
RegisterTest(TTestXmlRpcFormatter.Suite);
|
RegisterTest(TTestXmlRpcFormatter.Suite);
|
||||||
RegisterTest(TTest_SoapFormatterExceptionBlock.Suite);
|
RegisterTest(TTest_SoapFormatterExceptionBlock.Suite);
|
||||||
RegisterTest(TTest_XmlRpcFormatterExceptionBlock.Suite);
|
RegisterTest(TTest_XmlRpcFormatterExceptionBlock.Suite);
|
||||||
|
RegisterTest(TTest_BinaryFormatterExceptionBlock.Suite);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
<PackageName Value="FPCUnitTestRunner"/>
|
<PackageName Value="FPCUnitTestRunner"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="74">
|
<Units Count="75">
|
||||||
<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="3" Y="901"/>
|
<CursorPos X="27" Y="3935"/>
|
||||||
<TopLine Value="890"/>
|
<TopLine Value="3914"/>
|
||||||
<EditorIndex Value="11"/>
|
<EditorIndex Value="5"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Bookmarks Count="1">
|
<Bookmarks Count="1">
|
||||||
<Item0 X="17" Y="1046" ID="3"/>
|
<Item0 X="17" Y="1058" ID="3"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
@ -55,27 +55,23 @@
|
|||||||
<UnitName Value="server_service_soap"/>
|
<UnitName Value="server_service_soap"/>
|
||||||
<CursorPos X="8" Y="182"/>
|
<CursorPos X="8" Y="182"/>
|
||||||
<TopLine Value="161"/>
|
<TopLine Value="161"/>
|
||||||
<EditorIndex Value="7"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit2>
|
</Unit2>
|
||||||
<Unit3>
|
<Unit3>
|
||||||
<Filename Value="..\..\soap_formatter.pas"/>
|
<Filename Value="..\..\soap_formatter.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="soap_formatter"/>
|
<UnitName Value="soap_formatter"/>
|
||||||
<CursorPos X="31" Y="148"/>
|
<CursorPos X="33" Y="31"/>
|
||||||
<TopLine Value="148"/>
|
<TopLine Value="22"/>
|
||||||
<EditorIndex Value="8"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit3>
|
</Unit3>
|
||||||
<Unit4>
|
<Unit4>
|
||||||
<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="31" Y="19"/>
|
<CursorPos X="28" Y="223"/>
|
||||||
<TopLine Value="13"/>
|
<TopLine Value="211"/>
|
||||||
<EditorIndex Value="14"/>
|
<EditorIndex Value="8"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
@ -83,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="19" Y="10"/>
|
<CursorPos X="26" Y="1232"/>
|
||||||
<TopLine Value="10"/>
|
<TopLine Value="1220"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Bookmarks Count="2">
|
<Bookmarks Count="2">
|
||||||
@ -97,42 +93,36 @@
|
|||||||
<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="3" Y="1127"/>
|
<CursorPos X="29" Y="225"/>
|
||||||
<TopLine Value="1116"/>
|
<TopLine Value="209"/>
|
||||||
<EditorIndex Value="4"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit6>
|
</Unit6>
|
||||||
<Unit7>
|
<Unit7>
|
||||||
<Filename Value="..\..\binary_formatter.pas"/>
|
<Filename Value="..\..\binary_formatter.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="binary_formatter"/>
|
<UnitName Value="binary_formatter"/>
|
||||||
<CursorPos X="12" Y="108"/>
|
<CursorPos X="28" Y="112"/>
|
||||||
<TopLine Value="103"/>
|
<TopLine Value="48"/>
|
||||||
<EditorIndex Value="15"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit7>
|
</Unit7>
|
||||||
<Unit8>
|
<Unit8>
|
||||||
<Filename Value="..\..\binary_streamer.pas"/>
|
<Filename Value="..\..\binary_streamer.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="binary_streamer"/>
|
<UnitName Value="binary_streamer"/>
|
||||||
<CursorPos X="1" Y="14"/>
|
<CursorPos X="95" Y="90"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="1"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Bookmarks Count="1">
|
<Bookmarks Count="1">
|
||||||
<Item0 X="38" Y="490" ID="2"/>
|
<Item0 X="38" Y="487" ID="2"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit8>
|
</Unit8>
|
||||||
<Unit9>
|
<Unit9>
|
||||||
<Filename Value="..\..\server_binary_formatter.pas"/>
|
<Filename Value="..\..\server_binary_formatter.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="server_binary_formatter"/>
|
<UnitName Value="server_binary_formatter"/>
|
||||||
<CursorPos X="22" Y="21"/>
|
<CursorPos X="9" Y="123"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="27"/>
|
||||||
<EditorIndex Value="9"/>
|
<EditorIndex Value="4"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit9>
|
</Unit9>
|
||||||
@ -175,9 +165,9 @@
|
|||||||
<Filename Value="..\..\metadata_wsdl.pas"/>
|
<Filename Value="..\..\metadata_wsdl.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="metadata_wsdl"/>
|
<UnitName Value="metadata_wsdl"/>
|
||||||
<CursorPos X="1" Y="22"/>
|
<CursorPos X="43" Y="869"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="834"/>
|
||||||
<EditorIndex Value="16"/>
|
<EditorIndex Value="9"/>
|
||||||
<UsageCount Value="206"/>
|
<UsageCount Value="206"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit14>
|
</Unit14>
|
||||||
@ -186,63 +176,63 @@
|
|||||||
<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="2"/>
|
||||||
</Unit15>
|
</Unit15>
|
||||||
<Unit16>
|
<Unit16>
|
||||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||||
<CursorPos X="13" Y="235"/>
|
<CursorPos X="13" Y="235"/>
|
||||||
<TopLine Value="215"/>
|
<TopLine Value="215"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit16>
|
</Unit16>
|
||||||
<Unit17>
|
<Unit17>
|
||||||
<Filename Value="..\..\server_service_intf.pas"/>
|
<Filename Value="..\..\server_service_intf.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="server_service_intf"/>
|
<UnitName Value="server_service_intf"/>
|
||||||
<CursorPos X="25" Y="14"/>
|
<CursorPos X="25" Y="14"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="97"/>
|
||||||
<EditorIndex Value="6"/>
|
<EditorIndex Value="3"/>
|
||||||
<UsageCount Value="203"/>
|
<UsageCount Value="203"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit17>
|
</Unit17>
|
||||||
<Unit18>
|
<Unit18>
|
||||||
<Filename Value="..\..\service_intf.pas"/>
|
<Filename Value="..\..\service_intf.pas"/>
|
||||||
<UnitName Value="service_intf"/>
|
<UnitName Value="service_intf"/>
|
||||||
<CursorPos X="15" Y="15"/>
|
<CursorPos X="15" Y="22"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="10"/>
|
||||||
<EditorIndex Value="13"/>
|
<EditorIndex Value="6"/>
|
||||||
<UsageCount Value="16"/>
|
<UsageCount Value="23"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit18>
|
</Unit18>
|
||||||
<Unit19>
|
<Unit19>
|
||||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\classesh.inc"/>
|
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\classesh.inc"/>
|
||||||
<CursorPos X="3" Y="316"/>
|
<CursorPos X="3" Y="316"/>
|
||||||
<TopLine Value="304"/>
|
<TopLine Value="304"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit19>
|
</Unit19>
|
||||||
<Unit20>
|
<Unit20>
|
||||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\lists.inc"/>
|
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\objpas\classes\lists.inc"/>
|
||||||
<CursorPos X="3" Y="407"/>
|
<CursorPos X="3" Y="407"/>
|
||||||
<TopLine Value="404"/>
|
<TopLine Value="404"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit20>
|
</Unit20>
|
||||||
<Unit21>
|
<Unit21>
|
||||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\fcl\inc\contnrs.pp"/>
|
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\fcl\inc\contnrs.pp"/>
|
||||||
<UnitName Value="contnrs"/>
|
<UnitName Value="contnrs"/>
|
||||||
<CursorPos X="3" Y="474"/>
|
<CursorPos X="3" Y="474"/>
|
||||||
<TopLine Value="471"/>
|
<TopLine Value="471"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit21>
|
</Unit21>
|
||||||
<Unit22>
|
<Unit22>
|
||||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
||||||
<CursorPos X="27" Y="121"/>
|
<CursorPos X="27" Y="121"/>
|
||||||
<TopLine Value="104"/>
|
<TopLine Value="104"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit22>
|
</Unit22>
|
||||||
<Unit23>
|
<Unit23>
|
||||||
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\inc\objpas.inc"/>
|
<Filename Value="D:\lazarusClean\fpc\2.0.4\source\rtl\inc\objpas.inc"/>
|
||||||
<CursorPos X="9" Y="166"/>
|
<CursorPos X="9" Y="166"/>
|
||||||
<TopLine Value="142"/>
|
<TopLine Value="142"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit23>
|
</Unit23>
|
||||||
<Unit24>
|
<Unit24>
|
||||||
<Filename Value="D:\Lazarus\components\fpcunit\guitestrunner.pas"/>
|
<Filename Value="D:\Lazarus\components\fpcunit\guitestrunner.pas"/>
|
||||||
@ -251,22 +241,22 @@
|
|||||||
<UnitName Value="GuiTestRunner"/>
|
<UnitName Value="GuiTestRunner"/>
|
||||||
<CursorPos X="34" Y="32"/>
|
<CursorPos X="34" Y="32"/>
|
||||||
<TopLine Value="25"/>
|
<TopLine Value="25"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit24>
|
</Unit24>
|
||||||
<Unit25>
|
<Unit25>
|
||||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\fpcunit\fpcunit.pp"/>
|
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\fpcunit\fpcunit.pp"/>
|
||||||
<UnitName Value="fpcunit"/>
|
<UnitName Value="fpcunit"/>
|
||||||
<CursorPos X="21" Y="94"/>
|
<CursorPos X="21" Y="94"/>
|
||||||
<TopLine Value="83"/>
|
<TopLine Value="83"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit25>
|
</Unit25>
|
||||||
<Unit26>
|
<Unit26>
|
||||||
<Filename Value="..\..\imp_utils.pas"/>
|
<Filename Value="..\..\imp_utils.pas"/>
|
||||||
<UnitName Value="imp_utils"/>
|
<UnitName Value="imp_utils"/>
|
||||||
<CursorPos X="15" Y="50"/>
|
<CursorPos X="12" Y="47"/>
|
||||||
<TopLine Value="8"/>
|
<TopLine Value="182"/>
|
||||||
<EditorIndex Value="3"/>
|
<EditorIndex Value="7"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="15"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit26>
|
</Unit26>
|
||||||
<Unit27>
|
<Unit27>
|
||||||
@ -274,7 +264,7 @@
|
|||||||
<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="2"/>
|
||||||
</Unit27>
|
</Unit27>
|
||||||
<Unit28>
|
<Unit28>
|
||||||
<Filename Value="test_parserdef.pas"/>
|
<Filename Value="test_parserdef.pas"/>
|
||||||
@ -282,168 +272,166 @@
|
|||||||
<UnitName Value="test_parserdef"/>
|
<UnitName Value="test_parserdef"/>
|
||||||
<CursorPos X="93" Y="76"/>
|
<CursorPos X="93" Y="76"/>
|
||||||
<TopLine Value="11"/>
|
<TopLine Value="11"/>
|
||||||
<UsageCount Value="198"/>
|
<UsageCount Value="200"/>
|
||||||
</Unit28>
|
</Unit28>
|
||||||
<Unit29>
|
<Unit29>
|
||||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
|
||||||
<CursorPos X="8" Y="190"/>
|
<CursorPos X="8" Y="190"/>
|
||||||
<TopLine Value="133"/>
|
<TopLine Value="133"/>
|
||||||
<UsageCount Value="4"/>
|
<UsageCount Value="3"/>
|
||||||
</Unit29>
|
</Unit29>
|
||||||
<Unit30>
|
<Unit30>
|
||||||
<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="9"/>
|
||||||
</Unit30>
|
</Unit30>
|
||||||
<Unit31>
|
<Unit31>
|
||||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\heaph.inc"/>
|
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\heaph.inc"/>
|
||||||
<CursorPos X="43" Y="100"/>
|
<CursorPos X="43" Y="100"/>
|
||||||
<TopLine Value="83"/>
|
<TopLine Value="83"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit31>
|
</Unit31>
|
||||||
<Unit32>
|
<Unit32>
|
||||||
<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="9"/>
|
||||||
</Unit32>
|
</Unit32>
|
||||||
<Unit33>
|
<Unit33>
|
||||||
<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="32" Y="64"/>
|
<CursorPos X="35" Y="355"/>
|
||||||
<TopLine Value="49"/>
|
<TopLine Value="330"/>
|
||||||
<EditorIndex Value="5"/>
|
<UsageCount Value="151"/>
|
||||||
<UsageCount Value="136"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit33>
|
</Unit33>
|
||||||
<Unit34>
|
<Unit34>
|
||||||
<Filename Value="..\..\ws_helper\pscanner.pp"/>
|
<Filename Value="..\..\ws_helper\pscanner.pp"/>
|
||||||
<UnitName Value="PScanner"/>
|
<UnitName Value="PScanner"/>
|
||||||
<CursorPos X="19" Y="505"/>
|
<CursorPos X="19" Y="505"/>
|
||||||
<TopLine Value="491"/>
|
<TopLine Value="491"/>
|
||||||
<UsageCount Value="17"/>
|
<UsageCount Value="16"/>
|
||||||
</Unit34>
|
</Unit34>
|
||||||
<Unit35>
|
<Unit35>
|
||||||
<Filename Value="..\..\ws_helper\pascal_parser_intf.pas"/>
|
<Filename Value="..\..\ws_helper\pascal_parser_intf.pas"/>
|
||||||
<UnitName Value="pascal_parser_intf"/>
|
<UnitName Value="pascal_parser_intf"/>
|
||||||
<CursorPos X="62" Y="296"/>
|
<CursorPos X="62" Y="296"/>
|
||||||
<TopLine Value="296"/>
|
<TopLine Value="296"/>
|
||||||
<UsageCount Value="27"/>
|
<UsageCount Value="26"/>
|
||||||
</Unit35>
|
</Unit35>
|
||||||
<Unit36>
|
<Unit36>
|
||||||
<Filename Value="..\..\ws_helper\pastree.pp"/>
|
<Filename Value="..\..\ws_helper\pastree.pp"/>
|
||||||
<UnitName Value="PasTree"/>
|
<UnitName Value="PasTree"/>
|
||||||
<CursorPos X="18" Y="254"/>
|
<CursorPos X="18" Y="254"/>
|
||||||
<TopLine Value="243"/>
|
<TopLine Value="243"/>
|
||||||
<UsageCount Value="17"/>
|
<UsageCount Value="16"/>
|
||||||
</Unit36>
|
</Unit36>
|
||||||
<Unit37>
|
<Unit37>
|
||||||
<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="16"/>
|
<UsageCount Value="15"/>
|
||||||
</Unit37>
|
</Unit37>
|
||||||
<Unit38>
|
<Unit38>
|
||||||
<Filename Value="..\..\wst_rtti_filter\cursor_intf.pas"/>
|
<Filename Value="..\..\wst_rtti_filter\cursor_intf.pas"/>
|
||||||
<UnitName Value="cursor_intf"/>
|
<UnitName Value="cursor_intf"/>
|
||||||
<CursorPos X="3" Y="75"/>
|
<CursorPos X="3" Y="75"/>
|
||||||
<TopLine Value="70"/>
|
<TopLine Value="70"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit38>
|
</Unit38>
|
||||||
<Unit39>
|
<Unit39>
|
||||||
<Filename Value="..\..\wst_rtti_filter\dom_cursors.pas"/>
|
<Filename Value="..\..\wst_rtti_filter\dom_cursors.pas"/>
|
||||||
<UnitName Value="dom_cursors"/>
|
<UnitName Value="dom_cursors"/>
|
||||||
<CursorPos X="3" Y="182"/>
|
<CursorPos X="3" Y="182"/>
|
||||||
<TopLine Value="180"/>
|
<TopLine Value="180"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit39>
|
</Unit39>
|
||||||
<Unit40>
|
<Unit40>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
||||||
<UnitName Value="fpcunit"/>
|
<UnitName Value="fpcunit"/>
|
||||||
<CursorPos X="1" Y="446"/>
|
<CursorPos X="1" Y="446"/>
|
||||||
<TopLine Value="434"/>
|
<TopLine Value="434"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit40>
|
</Unit40>
|
||||||
<Unit41>
|
<Unit41>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\i386\i386.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\i386\i386.inc"/>
|
||||||
<CursorPos X="1" Y="1284"/>
|
<CursorPos X="1" Y="1284"/>
|
||||||
<TopLine Value="1268"/>
|
<TopLine Value="1268"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit41>
|
</Unit41>
|
||||||
<Unit42>
|
<Unit42>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\objpas\classes\streams.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\objpas\classes\streams.inc"/>
|
||||||
<CursorPos X="1" Y="107"/>
|
<CursorPos X="1" Y="107"/>
|
||||||
<TopLine Value="95"/>
|
<TopLine Value="95"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit42>
|
</Unit42>
|
||||||
<Unit43>
|
<Unit43>
|
||||||
<Filename Value="..\..\semaphore.pas"/>
|
<Filename Value="..\..\semaphore.pas"/>
|
||||||
<UnitName Value="semaphore"/>
|
<UnitName Value="semaphore"/>
|
||||||
<CursorPos X="3" Y="30"/>
|
<CursorPos X="3" Y="30"/>
|
||||||
<TopLine Value="23"/>
|
<TopLine Value="23"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit43>
|
</Unit43>
|
||||||
<Unit44>
|
<Unit44>
|
||||||
<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="14" Y="351"/>
|
<CursorPos X="14" Y="351"/>
|
||||||
<TopLine Value="336"/>
|
<TopLine Value="336"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit44>
|
</Unit44>
|
||||||
<Unit45>
|
<Unit45>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win32\system.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win32\system.pp"/>
|
||||||
<UnitName Value="System"/>
|
<UnitName Value="System"/>
|
||||||
<CursorPos X="22" Y="33"/>
|
<CursorPos X="22" Y="33"/>
|
||||||
<TopLine Value="18"/>
|
<TopLine Value="18"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit45>
|
</Unit45>
|
||||||
<Unit46>
|
<Unit46>
|
||||||
<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="964"/>
|
<CursorPos X="3" Y="964"/>
|
||||||
<TopLine Value="962"/>
|
<TopLine Value="962"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit46>
|
</Unit46>
|
||||||
<Unit47>
|
<Unit47>
|
||||||
<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="9"/>
|
||||||
</Unit47>
|
</Unit47>
|
||||||
<Unit48>
|
<Unit48>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\strutils.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\strutils.pp"/>
|
||||||
<UnitName Value="strutils"/>
|
<UnitName Value="strutils"/>
|
||||||
<CursorPos X="10" Y="29"/>
|
<CursorPos X="10" Y="29"/>
|
||||||
<TopLine Value="14"/>
|
<TopLine Value="14"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit48>
|
</Unit48>
|
||||||
<Unit49>
|
<Unit49>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
||||||
<CursorPos X="20" Y="168"/>
|
<CursorPos X="26" Y="173"/>
|
||||||
<TopLine Value="166"/>
|
<TopLine Value="156"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit49>
|
</Unit49>
|
||||||
<Unit50>
|
<Unit50>
|
||||||
<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="442"/>
|
<CursorPos X="11" Y="333"/>
|
||||||
<TopLine Value="556"/>
|
<TopLine Value="375"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit50>
|
</Unit50>
|
||||||
<Unit51>
|
<Unit51>
|
||||||
<Filename Value="..\..\wst_fpc_xml.pas"/>
|
<Filename Value="..\..\wst_fpc_xml.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="wst_fpc_xml"/>
|
<UnitName Value="wst_fpc_xml"/>
|
||||||
<CursorPos X="3" Y="53"/>
|
<CursorPos X="65" Y="85"/>
|
||||||
<TopLine Value="51"/>
|
<TopLine Value="56"/>
|
||||||
<UsageCount Value="82"/>
|
<UsageCount Value="97"/>
|
||||||
</Unit51>
|
</Unit51>
|
||||||
<Unit52>
|
<Unit52>
|
||||||
<Filename Value="..\..\wst_global.inc"/>
|
<Filename Value="..\..\wst_global.inc"/>
|
||||||
<CursorPos X="20" Y="11"/>
|
<CursorPos X="3" Y="4"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit52>
|
</Unit52>
|
||||||
@ -452,16 +440,16 @@
|
|||||||
<UnitName Value="CustApp"/>
|
<UnitName Value="CustApp"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit53>
|
</Unit53>
|
||||||
<Unit54>
|
<Unit54>
|
||||||
<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="71" Y="3"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="3"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="17"/>
|
<EditorIndex Value="10"/>
|
||||||
<UsageCount Value="73"/>
|
<UsageCount Value="88"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit54>
|
</Unit54>
|
||||||
<Unit55>
|
<Unit55>
|
||||||
@ -469,60 +457,60 @@
|
|||||||
<UnitName Value="fpcunit"/>
|
<UnitName Value="fpcunit"/>
|
||||||
<CursorPos X="66" Y="231"/>
|
<CursorPos X="66" Y="231"/>
|
||||||
<TopLine Value="231"/>
|
<TopLine Value="231"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="12"/>
|
||||||
</Unit55>
|
</Unit55>
|
||||||
<Unit56>
|
<Unit56>
|
||||||
<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="15"/>
|
<UsageCount Value="14"/>
|
||||||
</Unit56>
|
</Unit56>
|
||||||
<Unit57>
|
<Unit57>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\testdecorator.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\testdecorator.pp"/>
|
||||||
<UnitName Value="testdecorator"/>
|
<UnitName Value="testdecorator"/>
|
||||||
<CursorPos X="3" Y="30"/>
|
<CursorPos X="3" Y="30"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit57>
|
</Unit57>
|
||||||
<Unit58>
|
<Unit58>
|
||||||
<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="12"/>
|
<UsageCount Value="11"/>
|
||||||
</Unit58>
|
</Unit58>
|
||||||
<Unit59>
|
<Unit59>
|
||||||
<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="79" Y="218"/>
|
<CursorPos X="53" Y="41"/>
|
||||||
<TopLine Value="203"/>
|
<TopLine Value="37"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit59>
|
</Unit59>
|
||||||
<Unit60>
|
<Unit60>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysstrh.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysstrh.inc"/>
|
||||||
<CursorPos X="89" Y="122"/>
|
<CursorPos X="89" Y="122"/>
|
||||||
<TopLine Value="106"/>
|
<TopLine Value="106"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit60>
|
</Unit60>
|
||||||
<Unit61>
|
<Unit61>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysinth.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysinth.inc"/>
|
||||||
<CursorPos X="24" Y="63"/>
|
<CursorPos X="24" Y="63"/>
|
||||||
<TopLine Value="46"/>
|
<TopLine Value="46"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit61>
|
</Unit61>
|
||||||
<Unit62>
|
<Unit62>
|
||||||
<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="9"/>
|
||||||
</Unit62>
|
</Unit62>
|
||||||
<Unit63>
|
<Unit63>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus2204\fpc\2.0.4\source\fcl\xml\dom.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus2204\fpc\2.0.4\source\fcl\xml\dom.pp"/>
|
||||||
<UnitName Value="DOM"/>
|
<UnitName Value="DOM"/>
|
||||||
<CursorPos X="3" Y="196"/>
|
<CursorPos X="3" Y="196"/>
|
||||||
<TopLine Value="191"/>
|
<TopLine Value="191"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit63>
|
</Unit63>
|
||||||
<Unit64>
|
<Unit64>
|
||||||
<Filename Value="..\..\type_lib_edtr\umoduleedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\umoduleedit.pas"/>
|
||||||
@ -532,7 +520,7 @@
|
|||||||
<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="9"/>
|
||||||
</Unit64>
|
</Unit64>
|
||||||
<Unit65>
|
<Unit65>
|
||||||
<Filename Value="..\..\type_lib_edtr\ubindingedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\ubindingedit.pas"/>
|
||||||
@ -542,7 +530,7 @@
|
|||||||
<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="9"/>
|
||||||
</Unit65>
|
</Unit65>
|
||||||
<Unit66>
|
<Unit66>
|
||||||
<Filename Value="..\..\type_lib_edtr\ufarrayedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\ufarrayedit.pas"/>
|
||||||
@ -552,7 +540,7 @@
|
|||||||
<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="9"/>
|
||||||
</Unit66>
|
</Unit66>
|
||||||
<Unit67>
|
<Unit67>
|
||||||
<Filename Value="..\..\type_lib_edtr\uftypealiasedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\uftypealiasedit.pas"/>
|
||||||
@ -562,7 +550,7 @@
|
|||||||
<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="9"/>
|
||||||
</Unit67>
|
</Unit67>
|
||||||
<Unit68>
|
<Unit68>
|
||||||
<Filename Value="..\..\type_lib_edtr\ufrmsaveoption.pas"/>
|
<Filename Value="..\..\type_lib_edtr\ufrmsaveoption.pas"/>
|
||||||
@ -572,22 +560,22 @@
|
|||||||
<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="9"/>
|
||||||
</Unit68>
|
</Unit68>
|
||||||
<Unit69>
|
<Unit69>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||||
<CursorPos X="4" Y="64"/>
|
<CursorPos X="4" Y="64"/>
|
||||||
<TopLine Value="64"/>
|
<TopLine Value="64"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit69>
|
</Unit69>
|
||||||
<Unit70>
|
<Unit70>
|
||||||
<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="14" Y="144"/>
|
<CursorPos X="10" Y="131"/>
|
||||||
<TopLine Value="136"/>
|
<TopLine Value="116"/>
|
||||||
<EditorIndex Value="10"/>
|
<EditorIndex Value="1"/>
|
||||||
<UsageCount Value="27"/>
|
<UsageCount Value="42"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit70>
|
</Unit70>
|
||||||
<Unit71>
|
<Unit71>
|
||||||
@ -595,52 +583,152 @@
|
|||||||
<UnitName Value="XMLRead"/>
|
<UnitName Value="XMLRead"/>
|
||||||
<CursorPos X="6" Y="37"/>
|
<CursorPos X="6" Y="37"/>
|
||||||
<TopLine Value="31"/>
|
<TopLine Value="31"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit71>
|
</Unit71>
|
||||||
<Unit72>
|
<Unit72>
|
||||||
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
||||||
<UnitName Value="xmlrpc_formatter"/>
|
<UnitName Value="xmlrpc_formatter"/>
|
||||||
<CursorPos X="31" Y="131"/>
|
<CursorPos X="31" Y="131"/>
|
||||||
<TopLine Value="116"/>
|
<TopLine Value="116"/>
|
||||||
<EditorIndex Value="12"/>
|
<UsageCount Value="11"/>
|
||||||
<UsageCount Value="12"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit72>
|
</Unit72>
|
||||||
<Unit73>
|
<Unit73>
|
||||||
<Filename Value="..\..\record_rtti.pas"/>
|
<Filename Value="..\..\record_rtti.pas"/>
|
||||||
<UnitName Value="record_rtti"/>
|
<UnitName Value="record_rtti"/>
|
||||||
<CursorPos X="3" Y="248"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="13"/>
|
<TopLine Value="265"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="2"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="17"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit73>
|
</Unit73>
|
||||||
|
<Unit74>
|
||||||
|
<Filename Value="..\..\wst_rtl_imp.inc"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit74>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="6" HistoryIndex="5">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="..\..\base_service_intf.pas"/>
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
<Caret Line="1211" Column="10" TopLine="1211"/>
|
<Caret Line="4784" Column="33" TopLine="4769"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="..\..\base_service_intf.pas"/>
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
<Caret Line="1" Column="1" TopLine="1"/>
|
<Caret Line="1356" Column="38" TopLine="1346"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="..\..\base_service_intf.pas"/>
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
<Caret Line="4614" Column="1" TopLine="4572"/>
|
<Caret Line="1403" Column="82" TopLine="1388"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="..\..\server_binary_formatter.pas"/>
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
<Caret Line="121" Column="11" TopLine="111"/>
|
<Caret Line="1422" Column="82" TopLine="1406"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="..\..\server_binary_formatter.pas"/>
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
<Caret Line="21" Column="22" TopLine="1"/>
|
<Caret Line="1816" Column="31" TopLine="1795"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="..\..\base_binary_formatter.pas"/>
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
<Caret Line="19" Column="31" TopLine="13"/>
|
<Caret Line="3848" Column="31" TopLine="3827"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
|
<Position7>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="4784" Column="55" TopLine="4778"/>
|
||||||
|
</Position7>
|
||||||
|
<Position8>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1" Column="1" TopLine="1"/>
|
||||||
|
</Position8>
|
||||||
|
<Position9>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1191" Column="17" TopLine="1176"/>
|
||||||
|
</Position9>
|
||||||
|
<Position10>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1231" Column="32" TopLine="1216"/>
|
||||||
|
</Position10>
|
||||||
|
<Position11>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1228" Column="13" TopLine="1213"/>
|
||||||
|
</Position11>
|
||||||
|
<Position12>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1" Column="1" TopLine="1"/>
|
||||||
|
</Position12>
|
||||||
|
<Position13>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1191" Column="32" TopLine="1176"/>
|
||||||
|
</Position13>
|
||||||
|
<Position14>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1235" Column="84" TopLine="1220"/>
|
||||||
|
</Position14>
|
||||||
|
<Position15>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1403" Column="82" TopLine="1388"/>
|
||||||
|
</Position15>
|
||||||
|
<Position16>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1421" Column="82" TopLine="1406"/>
|
||||||
|
</Position16>
|
||||||
|
<Position17>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1816" Column="31" TopLine="1789"/>
|
||||||
|
</Position17>
|
||||||
|
<Position18>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="3848" Column="31" TopLine="3827"/>
|
||||||
|
</Position18>
|
||||||
|
<Position19>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="4786" Column="25" TopLine="4777"/>
|
||||||
|
</Position19>
|
||||||
|
<Position20>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1359" Column="50" TopLine="1337"/>
|
||||||
|
</Position20>
|
||||||
|
<Position21>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="4783" Column="27" TopLine="4761"/>
|
||||||
|
</Position21>
|
||||||
|
<Position22>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1359" Column="47" TopLine="1337"/>
|
||||||
|
</Position22>
|
||||||
|
<Position23>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="4740" Column="9" TopLine="4668"/>
|
||||||
|
</Position23>
|
||||||
|
<Position24>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="4808" Column="35" TopLine="4794"/>
|
||||||
|
</Position24>
|
||||||
|
<Position25>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="180" Column="15" TopLine="177"/>
|
||||||
|
</Position25>
|
||||||
|
<Position26>
|
||||||
|
<Filename Value="..\..\server_service_xmlrpc.pas"/>
|
||||||
|
<Caret Line="144" Column="14" TopLine="130"/>
|
||||||
|
</Position26>
|
||||||
|
<Position27>
|
||||||
|
<Filename Value="testformatter_unit.pas"/>
|
||||||
|
<Caret Line="3890" Column="49" TopLine="3890"/>
|
||||||
|
</Position27>
|
||||||
|
<Position28>
|
||||||
|
<Filename Value="testformatter_unit.pas"/>
|
||||||
|
<Caret Line="1483" Column="30" TopLine="1465"/>
|
||||||
|
</Position28>
|
||||||
|
<Position29>
|
||||||
|
<Filename Value="testformatter_unit.pas"/>
|
||||||
|
<Caret Line="3538" Column="39" TopLine="3538"/>
|
||||||
|
</Position29>
|
||||||
|
<Position30>
|
||||||
|
<Filename Value="..\..\record_rtti.pas"/>
|
||||||
|
<Caret Line="265" Column="32" TopLine="232"/>
|
||||||
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
{$UNDEF USE_INLINE}
|
{$UNDEF USE_INLINE}
|
||||||
{$DEFINE WST_RECORD_RTTI}
|
{$DEFINE WST_RECORD_RTTI}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF CPU86}
|
{$IFDEF CPU86}
|
||||||
{$DEFINE HAS_COMP}
|
{$DEFINE HAS_COMP}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
Reference in New Issue
Block a user