You've already forked lazarus-ccr
Object Pascal "record" serialization ( first commit! )
TTest_TIntfPoolItem TTest_TSimpleItemFactory TTest_XmlRpcFormatterExceptionBlock TTest_SoapFormatterExceptionBlock Record serialization test git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@243 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -18,7 +18,6 @@ uses
|
|||||||
Classes, SysUtils, Contnrs, TypInfo,
|
Classes, SysUtils, Contnrs, TypInfo,
|
||||||
base_service_intf, binary_streamer;
|
base_service_intf, binary_streamer;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$DEFINE wst_binary_header}
|
{$DEFINE wst_binary_header}
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -220,6 +219,11 @@ type
|
|||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TObject
|
Const AData : TObject
|
||||||
);
|
);
|
||||||
|
procedure PutRecord(
|
||||||
|
const AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
const AData : Pointer
|
||||||
|
);
|
||||||
|
|
||||||
function GetDataBuffer(var AName : String):PDataBuffer;
|
function GetDataBuffer(var AName : String):PDataBuffer;
|
||||||
procedure GetEnum(
|
procedure GetEnum(
|
||||||
@ -257,6 +261,11 @@ type
|
|||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TObject
|
Var AData : TObject
|
||||||
);
|
);
|
||||||
|
procedure GetRecord(
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
var AName : String;
|
||||||
|
var AData : Pointer
|
||||||
|
);
|
||||||
public
|
public
|
||||||
constructor Create();override;
|
constructor Create();override;
|
||||||
destructor Destroy();override;
|
destructor Destroy();override;
|
||||||
@ -909,6 +918,15 @@ begin
|
|||||||
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Save(AData As TBaseRemotable, Self,AName,ATypeInfo);
|
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Save(AData As TBaseRemotable, Self,AName,ATypeInfo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBinaryFormatter.PutRecord(
|
||||||
|
const AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
const AData : Pointer
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
TRemotableRecordEncoder.Save(AData,Self,AName,ATypeInfo);
|
||||||
|
end;
|
||||||
|
|
||||||
function TBaseBinaryFormatter.GetDataBuffer(var AName: String): PDataBuffer;
|
function TBaseBinaryFormatter.GetDataBuffer(var AName: String): PDataBuffer;
|
||||||
begin
|
begin
|
||||||
Result := StackTop().Find(AName);
|
Result := StackTop().Find(AName);
|
||||||
@ -1001,6 +1019,15 @@ begin
|
|||||||
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo);
|
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TBaseBinaryFormatter.GetRecord(
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
var AName : String;
|
||||||
|
var AData : Pointer
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
TRemotableRecordEncoder.Load(AData, Self,AName,ATypeInfo);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TBaseBinaryFormatter.Clear();
|
procedure TBaseBinaryFormatter.Clear();
|
||||||
begin
|
begin
|
||||||
ClearStack();
|
ClearStack();
|
||||||
@ -1141,6 +1168,10 @@ begin
|
|||||||
objData := TObject(AData);
|
objData := TObject(AData);
|
||||||
PutObj(AName,ATypeInfo,objData);
|
PutObj(AName,ATypeInfo,objData);
|
||||||
End;
|
End;
|
||||||
|
tkRecord :
|
||||||
|
begin
|
||||||
|
PutRecord(AName,ATypeInfo,Pointer(@AData));
|
||||||
|
end;
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
tkBool :
|
tkBool :
|
||||||
Begin
|
Begin
|
||||||
@ -1340,6 +1371,7 @@ Var
|
|||||||
boolData : Boolean;
|
boolData : Boolean;
|
||||||
enumData : TEnumData;
|
enumData : TEnumData;
|
||||||
floatDt : TFloat_Extended_10;
|
floatDt : TFloat_Extended_10;
|
||||||
|
recObject : Pointer;
|
||||||
begin
|
begin
|
||||||
Case ATypeInfo^.Kind Of
|
Case ATypeInfo^.Kind Of
|
||||||
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
||||||
@ -1360,6 +1392,11 @@ begin
|
|||||||
GetObj(ATypeInfo,AName,objData);
|
GetObj(ATypeInfo,AName,objData);
|
||||||
TObject(AData) := objData;
|
TObject(AData) := objData;
|
||||||
End;
|
End;
|
||||||
|
tkRecord :
|
||||||
|
begin
|
||||||
|
recObject := Pointer(@AData);
|
||||||
|
GetRecord(ATypeInfo,AName,recObject);
|
||||||
|
end;
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
tkBool :
|
tkBool :
|
||||||
Begin
|
Begin
|
||||||
@ -1405,7 +1442,7 @@ begin
|
|||||||
ftDouble : Double(AData) := floatDt;
|
ftDouble : Double(AData) := floatDt;
|
||||||
ftExtended : Extended(AData) := floatDt;
|
ftExtended : Extended(AData) := floatDt;
|
||||||
ftCurr : Currency(AData) := floatDt;
|
ftCurr : Currency(AData) := floatDt;
|
||||||
{$IFDEF CPU86}
|
{$IFDEF HAS_COMP}
|
||||||
ftComp : Comp(AData) := floatDt;
|
ftComp : Comp(AData) := floatDt;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
End;
|
End;
|
||||||
@ -1476,7 +1513,7 @@ begin
|
|||||||
ftDouble : Double(AData) := dataBuffer^.DoubleData;
|
ftDouble : Double(AData) := dataBuffer^.DoubleData;
|
||||||
ftExtended : Extended(AData) := dataBuffer^.ExtendedData;
|
ftExtended : Extended(AData) := dataBuffer^.ExtendedData;
|
||||||
ftCurr : Currency(AData) := dataBuffer^.CurrencyData;
|
ftCurr : Currency(AData) := dataBuffer^.CurrencyData;
|
||||||
{$IFDEF CPU86}
|
{$IFDEF HAS_COMP}
|
||||||
else
|
else
|
||||||
Comp(AData) := dataBuffer^.ExtendedData;
|
Comp(AData) := dataBuffer^.ExtendedData;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
@ -11,20 +11,19 @@
|
|||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
}
|
}
|
||||||
{$INCLUDE wst_global.inc}
|
{$INCLUDE wst_global.inc}
|
||||||
|
{$RANGECHECKS OFF}
|
||||||
|
|
||||||
unit base_service_intf;
|
unit base_service_intf;
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, TypInfo, Contnrs, syncobjs, semaphore
|
Classes, SysUtils, TypInfo, Contnrs, syncobjs, semaphore, wst_types
|
||||||
{$IFNDEF FPC}
|
{$IFNDEF FPC}
|
||||||
,Windows
|
,Windows
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
;
|
;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
const
|
const
|
||||||
stBase = 0;
|
stBase = 0;
|
||||||
stObject = stBase + 1;
|
stObject = stBase + 1;
|
||||||
@ -67,8 +66,11 @@ type
|
|||||||
property FaultString : string Read FFaultString Write FFaultString;
|
property FaultString : string Read FFaultString Write FFaultString;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
ETypeRegistryException = class(EServiceException)
|
EServiceConfigException = class(EServiceException)
|
||||||
End;
|
end;
|
||||||
|
|
||||||
|
ETypeRegistryException = class(EServiceConfigException)
|
||||||
|
end;
|
||||||
|
|
||||||
IItemFactory = Interface;
|
IItemFactory = Interface;
|
||||||
IFormatterBase = Interface;
|
IFormatterBase = Interface;
|
||||||
@ -358,6 +360,26 @@ type
|
|||||||
);override;
|
);override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TRemotableRecordEncoderClass = class of TRemotableRecordEncoder;
|
||||||
|
|
||||||
|
{ TRemotableRecordEncoder }
|
||||||
|
|
||||||
|
TRemotableRecordEncoder = class(TPersistent)
|
||||||
|
public
|
||||||
|
class procedure Save(
|
||||||
|
ARecord : Pointer;
|
||||||
|
AStore : IFormatterBase;
|
||||||
|
const AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo
|
||||||
|
);virtual;
|
||||||
|
class procedure Load(
|
||||||
|
var ARecord : Pointer;
|
||||||
|
AStore : IFormatterBase;
|
||||||
|
var AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo
|
||||||
|
);virtual;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TBaseComplexSimpleContentRemotable }
|
{ TBaseComplexSimpleContentRemotable }
|
||||||
|
|
||||||
TBaseComplexSimpleContentRemotable = class(TAbstractComplexRemotable)
|
TBaseComplexSimpleContentRemotable = class(TAbstractComplexRemotable)
|
||||||
@ -1115,6 +1137,8 @@ type
|
|||||||
FSynonymTable : TStrings;
|
FSynonymTable : TStrings;
|
||||||
FExternalNames : TStrings;
|
FExternalNames : TStrings;
|
||||||
FInternalNames : TStrings;
|
FInternalNames : TStrings;
|
||||||
|
private
|
||||||
|
procedure CreateInternalObjects();
|
||||||
public
|
public
|
||||||
constructor Create(
|
constructor Create(
|
||||||
ANameSpace : string;
|
ANameSpace : string;
|
||||||
@ -1129,6 +1153,9 @@ type
|
|||||||
function GetExternalPropertyName(const APropName : string) : string;
|
function GetExternalPropertyName(const APropName : string) : string;
|
||||||
function GetInternalPropertyName(const AExtPropName : string) : string;
|
function GetInternalPropertyName(const AExtPropName : string) : string;
|
||||||
|
|
||||||
|
procedure RegisterObject(const APropName : string; const AObject : TObject);
|
||||||
|
function GetObject(const APropName : string) : TObject;
|
||||||
|
|
||||||
property DataType : PTypeInfo read FDataType;
|
property DataType : PTypeInfo read FDataType;
|
||||||
property NameSpace : string read FNameSpace;
|
property NameSpace : string read FNameSpace;
|
||||||
property DeclaredName : string read FDeclaredName;
|
property DeclaredName : string read FDeclaredName;
|
||||||
@ -1193,6 +1220,7 @@ const
|
|||||||
sWST_BASE_NS = 'urn:wst_base';
|
sWST_BASE_NS = 'urn:wst_base';
|
||||||
|
|
||||||
PROP_LIST_DELIMITER = ';';
|
PROP_LIST_DELIMITER = ';';
|
||||||
|
FIELDS_STRING = '__FIELDS__';
|
||||||
|
|
||||||
function GetTypeRegistry():TTypeRegistry;
|
function GetTypeRegistry():TTypeRegistry;
|
||||||
procedure RegisterStdTypes();
|
procedure RegisterStdTypes();
|
||||||
@ -1210,9 +1238,12 @@ var
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
uses imp_utils;
|
uses imp_utils, record_rtti;
|
||||||
|
|
||||||
Var
|
type
|
||||||
|
PObject = ^TObject;
|
||||||
|
|
||||||
|
var
|
||||||
TypeRegistryInstance : TTypeRegistry = Nil;
|
TypeRegistryInstance : TTypeRegistry = Nil;
|
||||||
|
|
||||||
function GetTypeRegistry():TTypeRegistry;
|
function GetTypeRegistry():TTypeRegistry;
|
||||||
@ -1582,7 +1613,7 @@ begin
|
|||||||
AStore.SetSerializationStyle(ss);
|
AStore.SetSerializationStyle(ss);
|
||||||
prpName := typRegItem.GetExternalPropertyName(p^.Name);
|
prpName := typRegItem.GetExternalPropertyName(p^.Name);
|
||||||
case pt^.Kind of
|
case pt^.Kind of
|
||||||
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
tkInt64{$IFDEF HAS_QWORD},tkQWord{$ENDIF} :
|
||||||
begin
|
begin
|
||||||
int64Data := GetInt64Prop(AObject,p^.Name);
|
int64Data := GetInt64Prop(AObject,p^.Name);
|
||||||
AStore.Put(prpName,pt,int64Data);
|
AStore.Put(prpName,pt,int64Data);
|
||||||
@ -1675,7 +1706,7 @@ begin
|
|||||||
floatDt.CurrencyData := GetFloatProp(AObject,p^.Name);
|
floatDt.CurrencyData := GetFloatProp(AObject,p^.Name);
|
||||||
AStore.Put(prpName,pt,floatDt.CurrencyData);
|
AStore.Put(prpName,pt,floatDt.CurrencyData);
|
||||||
end;
|
end;
|
||||||
{$IFDEF CPU86}
|
{$IFDEF HAS_COMP}
|
||||||
ftComp :
|
ftComp :
|
||||||
begin
|
begin
|
||||||
floatDt.CompData := GetFloatProp(AObject,p^.Name);
|
floatDt.CompData := GetFloatProp(AObject,p^.Name);
|
||||||
@ -1752,7 +1783,7 @@ begin
|
|||||||
AStore.SetSerializationStyle(ss);
|
AStore.SetSerializationStyle(ss);
|
||||||
try
|
try
|
||||||
Case pt^.Kind Of
|
Case pt^.Kind Of
|
||||||
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
tkInt64{$IFDEF HAS_QWORD},tkQWord{$ENDIF} :
|
||||||
begin
|
begin
|
||||||
AStore.Get(pt,propName,int64Data);
|
AStore.Get(pt,propName,int64Data);
|
||||||
SetInt64Prop(AObject,p^.Name,int64Data);
|
SetInt64Prop(AObject,p^.Name,int64Data);
|
||||||
@ -2113,7 +2144,8 @@ end;
|
|||||||
|
|
||||||
constructor TSimpleItemFactory.Create(AItemClass: TSimpleFactoryItemClass);
|
constructor TSimpleItemFactory.Create(AItemClass: TSimpleFactoryItemClass);
|
||||||
begin
|
begin
|
||||||
Assert(Assigned(AItemClass));
|
if not Assigned(AItemClass) then
|
||||||
|
raise EServiceConfigException.CreateFmt('Invalid parameter : %s; Procedure = %s',['AItemClass','TSimpleItemFactory.Create()']);
|
||||||
FItemClass := AItemClass;
|
FItemClass := AItemClass;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2331,6 +2363,14 @@ end;
|
|||||||
|
|
||||||
{ TTypeRegistryItem }
|
{ TTypeRegistryItem }
|
||||||
|
|
||||||
|
procedure TTypeRegistryItem.CreateInternalObjects();
|
||||||
|
begin
|
||||||
|
if not Assigned(FExternalNames) then begin
|
||||||
|
FExternalNames := TStringList.Create();
|
||||||
|
FInternalNames := TStringList.Create();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
constructor TTypeRegistryItem.Create(
|
constructor TTypeRegistryItem.Create(
|
||||||
ANameSpace : String;
|
ANameSpace : String;
|
||||||
ADataType : PTypeInfo;
|
ADataType : PTypeInfo;
|
||||||
@ -2375,13 +2415,39 @@ end;
|
|||||||
procedure TTypeRegistryItem.RegisterExternalPropertyName(const APropName,AExtPropName: string);
|
procedure TTypeRegistryItem.RegisterExternalPropertyName(const APropName,AExtPropName: string);
|
||||||
begin
|
begin
|
||||||
if not Assigned(FExternalNames) then begin
|
if not Assigned(FExternalNames) then begin
|
||||||
FExternalNames := TStringList.Create();
|
CreateInternalObjects();
|
||||||
FInternalNames := TStringList.Create();
|
|
||||||
end;
|
end;
|
||||||
FExternalNames.Values[APropName] := AExtPropName;
|
FExternalNames.Values[APropName] := AExtPropName;
|
||||||
FInternalNames.Values[AExtPropName] := APropName;
|
FInternalNames.Values[AExtPropName] := APropName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTypeRegistryItem.RegisterObject(const APropName : string; const AObject : TObject);
|
||||||
|
var
|
||||||
|
i : PtrInt;
|
||||||
|
begin
|
||||||
|
if not Assigned(FExternalNames) then begin
|
||||||
|
CreateInternalObjects();
|
||||||
|
end;
|
||||||
|
i := FExternalNames.IndexOfName(APropName);
|
||||||
|
if ( i < 0 ) then begin
|
||||||
|
FExternalNames.Values[APropName] := APropName;
|
||||||
|
i := FExternalNames.IndexOfName(APropName);
|
||||||
|
end;
|
||||||
|
FExternalNames.Objects[i] := AObject;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TTypeRegistryItem.GetObject(const APropName : string) : TObject;
|
||||||
|
var
|
||||||
|
i : PtrInt;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
if Assigned(FExternalNames) then begin
|
||||||
|
i := FExternalNames.IndexOfName(APropName);
|
||||||
|
if ( i >= 0 ) then
|
||||||
|
Result := FExternalNames.Objects[i];
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TTypeRegistryItem.GetExternalPropertyName(const APropName: string): string;
|
function TTypeRegistryItem.GetExternalPropertyName(const APropName: string): string;
|
||||||
begin
|
begin
|
||||||
if Assigned(FExternalNames) and ( FExternalNames.IndexOfName(APropName) <> -1 ) then begin
|
if Assigned(FExternalNames) and ( FExternalNames.IndexOfName(APropName) <> -1 ) then begin
|
||||||
@ -3503,7 +3569,7 @@ begin
|
|||||||
Assigned(p^.SetProc)
|
Assigned(p^.SetProc)
|
||||||
then begin
|
then begin
|
||||||
case p^.PropType^.Kind of
|
case p^.PropType^.Kind of
|
||||||
tkInt64{$IFDEF FPC},tkQWord, tkBool{$ENDIF}, tkEnumeration,tkInteger :
|
tkInt64{$IFDEF HAS_QWORD} ,tkQWord{$ENDIF} {$IFDEF FPC} ,tkBool{$ENDIF}, tkEnumeration,tkInteger :
|
||||||
SetOrdProp(Self,p,GetOrdProp(Source,p^.Name));
|
SetOrdProp(Self,p,GetOrdProp(Source,p^.Name));
|
||||||
tkLString{$IFDEF FPC}, tkAString{$ENDIF} :
|
tkLString{$IFDEF FPC}, tkAString{$ENDIF} :
|
||||||
SetStrProp(Self,p,GetStrProp(Source,p^.Name));
|
SetStrProp(Self,p,GetStrProp(Source,p^.Name));
|
||||||
@ -3581,7 +3647,7 @@ begin
|
|||||||
propName := tr.ItemByTypeInfo[pt].GetExternalPropertyName(p^.Name);
|
propName := tr.ItemByTypeInfo[pt].GetExternalPropertyName(p^.Name);
|
||||||
if IsStoredProp(AObject,p) then begin
|
if IsStoredProp(AObject,p) then begin
|
||||||
case pt^.Kind of
|
case pt^.Kind of
|
||||||
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
tkInt64{$IFDEF HAS_QWORD},tkQWord{$ENDIF} :
|
||||||
begin
|
begin
|
||||||
int64Data := GetOrdProp(AObject,p^.Name);
|
int64Data := GetOrdProp(AObject,p^.Name);
|
||||||
AStore.Put(propName,pt,int64Data);
|
AStore.Put(propName,pt,int64Data);
|
||||||
@ -3674,7 +3740,7 @@ begin
|
|||||||
floatDt.CurrencyData := GetFloatProp(AObject,p^.Name);
|
floatDt.CurrencyData := GetFloatProp(AObject,p^.Name);
|
||||||
AStore.Put(propName,pt,floatDt.CurrencyData);
|
AStore.Put(propName,pt,floatDt.CurrencyData);
|
||||||
end;
|
end;
|
||||||
{$IFDEF CPU86}
|
{$IFDEF HAS_COMP}
|
||||||
ftComp :
|
ftComp :
|
||||||
begin
|
begin
|
||||||
floatDt.CompData := GetFloatProp(AObject,p^.Name);
|
floatDt.CompData := GetFloatProp(AObject,p^.Name);
|
||||||
@ -3744,7 +3810,7 @@ begin
|
|||||||
propName := tr.ItemByTypeInfo[pt].GetExternalPropertyName(p^.Name);
|
propName := tr.ItemByTypeInfo[pt].GetExternalPropertyName(p^.Name);
|
||||||
try
|
try
|
||||||
Case pt^.Kind Of
|
Case pt^.Kind Of
|
||||||
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
tkInt64{$IFDEF HAS_QWORD},tkQWord{$ENDIF} :
|
||||||
Begin
|
Begin
|
||||||
AStore.Get(pt,propName,int64Data);
|
AStore.Get(pt,propName,int64Data);
|
||||||
SetOrdProp(AObject,p^.Name,int64Data);
|
SetOrdProp(AObject,p^.Name,int64Data);
|
||||||
@ -4512,6 +4578,219 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TRemotableRecordEncoder }
|
||||||
|
|
||||||
|
class procedure TRemotableRecordEncoder.Save(
|
||||||
|
ARecord : Pointer;
|
||||||
|
AStore : IFormatterBase;
|
||||||
|
const AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo
|
||||||
|
);
|
||||||
|
var
|
||||||
|
recStart, recFieldAddress : PByte;
|
||||||
|
typData : PRecordTypeData;
|
||||||
|
i : PtrInt;
|
||||||
|
pt : PTypeInfo;
|
||||||
|
p : PRecordFieldInfo;
|
||||||
|
oldSS,ss : TSerializationStyle;
|
||||||
|
typRegItem : TTypeRegistryItem;
|
||||||
|
prpName : string;
|
||||||
|
typDataObj : TObject;
|
||||||
|
begin
|
||||||
|
oldSS := AStore.GetSerializationStyle();
|
||||||
|
AStore.BeginObject(AName,ATypeInfo);
|
||||||
|
try
|
||||||
|
if not Assigned(ARecord) then begin
|
||||||
|
AStore.NilCurrentScope();
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
typRegItem := GetTypeRegistry().ItemByTypeInfo[ATypeInfo];
|
||||||
|
typDataObj := typRegItem.GetObject(FIELDS_STRING);
|
||||||
|
Assert(Assigned(typDataObj),Format('Incomplete type registration for the type of this parameter : %s',[AName]));
|
||||||
|
typData := PRecordTypeData((typDataObj as TDataObject).Data);
|
||||||
|
Assert(Assigned(typData));
|
||||||
|
if ( typData^.FieldCount > 0 ) then begin
|
||||||
|
recStart := PByte(ARecord);
|
||||||
|
ss := AStore.GetSerializationStyle();
|
||||||
|
for i := 0 to Pred(typData^.FieldCount) do begin
|
||||||
|
p := @(typData^.Fields[i]);
|
||||||
|
pt := p^.TypeInfo^;//{$IFNDEF FPC}^{$ENDIF};
|
||||||
|
{if IsAttributeProperty(p^.Name) then begin
|
||||||
|
if ( ss <> ssAttibuteSerialization ) then
|
||||||
|
ss := ssAttibuteSerialization;
|
||||||
|
end else begin
|
||||||
|
if ( ss <> ssNodeSerialization ) then
|
||||||
|
ss := ssNodeSerialization;
|
||||||
|
end;
|
||||||
|
if ( ss <> AStore.GetSerializationStyle() ) then
|
||||||
|
AStore.SetSerializationStyle(ss);}
|
||||||
|
AStore.SetSerializationStyle(ssNodeSerialization);
|
||||||
|
prpName := typRegItem.GetExternalPropertyName(p^.Name);
|
||||||
|
recFieldAddress := recStart;
|
||||||
|
Inc(recFieldAddress,p^.Offset);
|
||||||
|
case pt^.Kind of
|
||||||
|
tkInt64 : AStore.Put(prpName,pt,PInt64(recFieldAddress)^);
|
||||||
|
{$IFDEF HAS_QWORD}
|
||||||
|
tkQWord : AStore.Put(prpName,pt,PQWord(recFieldAddress)^);
|
||||||
|
{$ENDIF}
|
||||||
|
tkLString{$IFDEF FPC},tkAString{$ENDIF} : AStore.Put(prpName,pt,PString(recFieldAddress)^);
|
||||||
|
tkClass : AStore.Put(prpName,pt,PObject(recFieldAddress)^);
|
||||||
|
tkRecord : AStore.Put(prpName,pt,Pointer(recFieldAddress)^);
|
||||||
|
{$IFDEF FPC}
|
||||||
|
tkBool : AStore.Put(prpName,pt,PBoolean(recFieldAddress)^);
|
||||||
|
{$ENDIF}
|
||||||
|
tkEnumeration,tkInteger :
|
||||||
|
begin
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
if ( pt^.Kind = tkEnumeration ) and
|
||||||
|
( GetTypeData(pt)^.BaseType^ = TypeInfo(Boolean) )
|
||||||
|
then begin
|
||||||
|
AStore.Put(prpName,pt,PBoolean(recFieldAddress)^);
|
||||||
|
end else begin
|
||||||
|
{$ENDIF}
|
||||||
|
case GetTypeData(pt)^.OrdType of
|
||||||
|
otSByte : AStore.Put(prpName,pt,PShortInt(recFieldAddress)^);
|
||||||
|
otUByte : AStore.Put(prpName,pt,PByte(recFieldAddress)^);
|
||||||
|
otSWord : AStore.Put(prpName,pt,PSmallInt(recFieldAddress)^);
|
||||||
|
otUWord : AStore.Put(prpName,pt,PWord(recFieldAddress)^);
|
||||||
|
otSLong : AStore.Put(prpName,pt,PLongint(recFieldAddress)^);
|
||||||
|
otULong : AStore.Put(prpName,pt,PLongWord(recFieldAddress)^);
|
||||||
|
end;
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
tkFloat :
|
||||||
|
begin
|
||||||
|
case GetTypeData(pt)^.FloatType of
|
||||||
|
ftSingle : AStore.Put(prpName,pt,PSingle(recFieldAddress)^);
|
||||||
|
ftDouble : AStore.Put(prpName,pt,PDouble(recFieldAddress)^);
|
||||||
|
ftExtended : AStore.Put(prpName,pt,PExtended(recFieldAddress)^);
|
||||||
|
ftCurr : AStore.Put(prpName,pt,PCurrency(recFieldAddress)^);
|
||||||
|
{$IFDEF HAS_COMP}
|
||||||
|
ftComp : AStore.Put(prpName,pt,PComp(recFieldAddress)^);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
AStore.EndScope();
|
||||||
|
AStore.SetSerializationStyle(oldSS);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
class procedure TRemotableRecordEncoder.Load(
|
||||||
|
var ARecord : Pointer;
|
||||||
|
AStore : IFormatterBase;
|
||||||
|
var AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo
|
||||||
|
);
|
||||||
|
var
|
||||||
|
recStart, recFieldAddress : PByte;
|
||||||
|
typData : PRecordTypeData;
|
||||||
|
i : PtrInt;
|
||||||
|
pt : PTypeInfo;
|
||||||
|
propName : String;
|
||||||
|
p : PRecordFieldInfo;
|
||||||
|
persistType : TPropStoreType;
|
||||||
|
oldSS,ss : TSerializationStyle;
|
||||||
|
typRegItem : TTypeRegistryItem;
|
||||||
|
typDataObj : TObject;
|
||||||
|
begin
|
||||||
|
oldSS := AStore.GetSerializationStyle();
|
||||||
|
if ( AStore.BeginObjectRead(AName,ATypeInfo) >= 0 ) then begin
|
||||||
|
try
|
||||||
|
if AStore.IsCurrentScopeNil() then
|
||||||
|
Exit;
|
||||||
|
typRegItem := GetTypeRegistry().ItemByTypeInfo[ATypeInfo];
|
||||||
|
typDataObj := typRegItem.GetObject(FIELDS_STRING);
|
||||||
|
Assert(Assigned(typDataObj),Format('Incomplete type registration for the type of this parameter : %s',[AName]));
|
||||||
|
typData := PRecordTypeData((typDataObj as TDataObject).Data);
|
||||||
|
Assert(Assigned(typData));
|
||||||
|
if ( not Assigned(ARecord) ) then begin
|
||||||
|
GetMem(ARecord,typData^.RecordSize);
|
||||||
|
FillChar(ARecord^,typData^.RecordSize,#0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
if ( typData^.FieldCount > 0 ) then begin
|
||||||
|
recStart := PByte(ARecord);
|
||||||
|
for i := 0 to Pred(typData^.FieldCount) do begin
|
||||||
|
p := @(typData^.Fields[i]);
|
||||||
|
persistType := pstOptional;// IsStoredPropClass(objTypeData^.ClassType,p);
|
||||||
|
pt := p^.TypeInfo^;//{$IFNDEF FPC}^{$ENDIF};
|
||||||
|
propName := typRegItem.GetExternalPropertyName(p^.Name);
|
||||||
|
{if IsAttributeProperty(p^.Name) then begin
|
||||||
|
ss := ssAttibuteSerialization;
|
||||||
|
end else begin
|
||||||
|
ss := ssNodeSerialization;
|
||||||
|
end;
|
||||||
|
if ( ss <> AStore.GetSerializationStyle() ) then
|
||||||
|
AStore.SetSerializationStyle(ss);}
|
||||||
|
AStore.SetSerializationStyle(ssNodeSerialization);
|
||||||
|
recFieldAddress := recStart;
|
||||||
|
Inc(recFieldAddress,p^.Offset);
|
||||||
|
try
|
||||||
|
Case pt^.Kind Of
|
||||||
|
tkInt64 : AStore.Get(pt,propName,PInt64(recFieldAddress)^);
|
||||||
|
{$IFDEF HAS_QWORD}
|
||||||
|
tkQWord : AStore.Get(pt,propName,PQWord(recFieldAddress)^);
|
||||||
|
{$ENDIF}
|
||||||
|
tkLString{$IFDEF FPC}, tkAString{$ENDIF} : AStore.Get(pt,propName,PString(recFieldAddress)^);
|
||||||
|
{$IFDEF FPC}
|
||||||
|
tkBool : AStore.Get(pt,propName,PBoolean(recFieldAddress)^);
|
||||||
|
{$ENDIF}
|
||||||
|
tkClass : AStore.Get(pt,propName,PObject(recFieldAddress)^);
|
||||||
|
tkRecord : AStore.Get(pt,propName,Pointer(recFieldAddress)^);
|
||||||
|
tkEnumeration,tkInteger :
|
||||||
|
Begin
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
if ( pt^.Kind = tkEnumeration ) and
|
||||||
|
( GetTypeData(pt)^.BaseType^ = TypeInfo(Boolean) )
|
||||||
|
then begin
|
||||||
|
AStore.Get(pt,propName,PBoolean(recFieldAddress)^);
|
||||||
|
end else begin
|
||||||
|
{$ENDIF}
|
||||||
|
case GetTypeData(pt)^.OrdType Of
|
||||||
|
otSByte : AStore.Get(pt,propName,PShortInt(recFieldAddress)^);
|
||||||
|
otUByte : AStore.Get(pt,propName,PByte(recFieldAddress)^);
|
||||||
|
otSWord : AStore.Get(pt,propName,PSmallInt(recFieldAddress)^);
|
||||||
|
otUWord : AStore.Get(pt,propName,PWord(recFieldAddress)^);
|
||||||
|
otSLong : AStore.Get(pt,propName,PLongint(recFieldAddress)^);
|
||||||
|
otULong : AStore.Get(pt,propName,PLongWord(recFieldAddress)^);
|
||||||
|
end;
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
End;
|
||||||
|
tkFloat :
|
||||||
|
begin
|
||||||
|
case GetTypeData(pt)^.FloatType of
|
||||||
|
ftSingle : AStore.Get(pt,propName,PSingle(recFieldAddress)^);
|
||||||
|
ftDouble : AStore.Get(pt,propName,PDouble(recFieldAddress)^);
|
||||||
|
ftExtended : AStore.Get(pt,propName,PExtended(recFieldAddress)^);
|
||||||
|
ftCurr : AStore.Get(pt,propName,PCurrency(recFieldAddress)^);
|
||||||
|
{$IFDEF HAS_COMP}
|
||||||
|
ftComp : AStore.Get(pt,propName,PComp(recFieldAddress)^);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
End;
|
||||||
|
except
|
||||||
|
on E : EServiceException do begin
|
||||||
|
if ( persistType = pstAlways ) then
|
||||||
|
raise;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
AStore.EndScopeRead();
|
||||||
|
AStore.SetSerializationStyle(oldSS);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
|
@ -20,9 +20,6 @@ uses
|
|||||||
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
|
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
|
||||||
base_service_intf;
|
base_service_intf;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
const
|
const
|
||||||
sPROTOCOL_NAME = 'SOAP';
|
sPROTOCOL_NAME = 'SOAP';
|
||||||
|
|
||||||
@ -183,6 +180,11 @@ type
|
|||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TObject
|
Const AData : TObject
|
||||||
);
|
);
|
||||||
|
procedure PutRecord(
|
||||||
|
const AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
const AData : Pointer
|
||||||
|
);
|
||||||
|
|
||||||
function GetNodeValue(var AName : String):DOMString;
|
function GetNodeValue(var AName : String):DOMString;
|
||||||
procedure GetEnum(
|
procedure GetEnum(
|
||||||
@ -222,6 +224,11 @@ type
|
|||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TObject
|
Var AData : TObject
|
||||||
);
|
);
|
||||||
|
procedure GetRecord(
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
var AName : String;
|
||||||
|
var AData : Pointer
|
||||||
|
);
|
||||||
protected
|
protected
|
||||||
function GetXmlDoc():TwstXMLDocument;
|
function GetXmlDoc():TwstXMLDocument;
|
||||||
function PushStack(AScopeObject : TDOMNode):TStackItem;overload;
|
function PushStack(AScopeObject : TDOMNode):TStackItem;overload;
|
||||||
@ -313,18 +320,18 @@ type
|
|||||||
procedure EndHeader();
|
procedure EndHeader();
|
||||||
|
|
||||||
procedure Put(
|
procedure Put(
|
||||||
Const AName : String;
|
const AName : string;
|
||||||
Const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
Const AData
|
const AData
|
||||||
);
|
);
|
||||||
procedure PutScopeInnerValue(
|
procedure PutScopeInnerValue(
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
const AData
|
const AData
|
||||||
);
|
);
|
||||||
procedure Get(
|
procedure Get(
|
||||||
Const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
Var AName : String;
|
var AName : string;
|
||||||
Var AData
|
var AData
|
||||||
);
|
);
|
||||||
procedure GetScopeInnerValue(
|
procedure GetScopeInnerValue(
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
@ -515,6 +522,7 @@ procedure TSOAPBaseFormatter.InternalClear(const ACreateDoc: Boolean);
|
|||||||
begin
|
begin
|
||||||
ClearStack();
|
ClearStack();
|
||||||
ReleaseDomNode(FDoc);
|
ReleaseDomNode(FDoc);
|
||||||
|
FDoc := nil;
|
||||||
if ACreateDoc then
|
if ACreateDoc then
|
||||||
FDoc := CreateDoc();
|
FDoc := CreateDoc();
|
||||||
end;
|
end;
|
||||||
@ -738,6 +746,15 @@ begin
|
|||||||
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Save(AData As TBaseRemotable, Self,AName,ATypeInfo);
|
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Save(AData As TBaseRemotable, Self,AName,ATypeInfo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSOAPBaseFormatter.PutRecord(
|
||||||
|
const AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
const AData : Pointer
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
TRemotableRecordEncoder.Save(AData,Self,AName,ATypeInfo);
|
||||||
|
end;
|
||||||
|
|
||||||
function TSOAPBaseFormatter.PutFloat(
|
function TSOAPBaseFormatter.PutFloat(
|
||||||
const AName : String;
|
const AName : String;
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
@ -888,6 +905,15 @@ begin
|
|||||||
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo);
|
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSOAPBaseFormatter.GetRecord(
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
var AName : String;
|
||||||
|
var AData : Pointer
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
TRemotableRecordEncoder.Load(AData, Self,AName,ATypeInfo);
|
||||||
|
end;
|
||||||
|
|
||||||
function TSOAPBaseFormatter.GetXmlDoc(): TwstXMLDocument;
|
function TSOAPBaseFormatter.GetXmlDoc(): TwstXMLDocument;
|
||||||
begin
|
begin
|
||||||
Result := FDoc;
|
Result := FDoc;
|
||||||
@ -1375,6 +1401,10 @@ begin
|
|||||||
objData := TObject(AData);
|
objData := TObject(AData);
|
||||||
PutObj(AName,ATypeInfo,objData);
|
PutObj(AName,ATypeInfo,objData);
|
||||||
End;
|
End;
|
||||||
|
tkRecord :
|
||||||
|
begin
|
||||||
|
PutRecord(AName,ATypeInfo,Pointer(@AData));
|
||||||
|
end;
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
tkBool :
|
tkBool :
|
||||||
Begin
|
Begin
|
||||||
@ -1548,6 +1578,7 @@ Var
|
|||||||
boolData : Boolean;
|
boolData : Boolean;
|
||||||
enumData : TEnumIntType;
|
enumData : TEnumIntType;
|
||||||
floatDt : Extended;
|
floatDt : Extended;
|
||||||
|
recObject : Pointer;
|
||||||
begin
|
begin
|
||||||
Case ATypeInfo^.Kind Of
|
Case ATypeInfo^.Kind Of
|
||||||
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
||||||
@ -1568,6 +1599,11 @@ begin
|
|||||||
GetObj(ATypeInfo,AName,objData);
|
GetObj(ATypeInfo,AName,objData);
|
||||||
TObject(AData) := objData;
|
TObject(AData) := objData;
|
||||||
End;
|
End;
|
||||||
|
tkRecord :
|
||||||
|
begin
|
||||||
|
recObject := Pointer(@AData);
|
||||||
|
GetRecord(ATypeInfo,AName,recObject);
|
||||||
|
end;
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
tkBool :
|
tkBool :
|
||||||
Begin
|
Begin
|
||||||
|
@ -20,9 +20,6 @@ uses
|
|||||||
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
|
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
|
||||||
base_service_intf;
|
base_service_intf;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
const
|
const
|
||||||
sPROTOCOL_NAME = 'XMLRPC';
|
sPROTOCOL_NAME = 'XMLRPC';
|
||||||
|
|
||||||
@ -195,6 +192,11 @@ type
|
|||||||
Const ATypeInfo : PTypeInfo;
|
Const ATypeInfo : PTypeInfo;
|
||||||
Const AData : TObject
|
Const AData : TObject
|
||||||
);
|
);
|
||||||
|
procedure PutRecord(
|
||||||
|
const AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
const AData : Pointer
|
||||||
|
);
|
||||||
|
|
||||||
function GetNodeValue(var AName : String):DOMString;
|
function GetNodeValue(var AName : String):DOMString;
|
||||||
procedure GetEnum(
|
procedure GetEnum(
|
||||||
@ -234,6 +236,11 @@ type
|
|||||||
Var AName : String;
|
Var AName : String;
|
||||||
Var AData : TObject
|
Var AData : TObject
|
||||||
);
|
);
|
||||||
|
procedure GetRecord(
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
var AName : String;
|
||||||
|
var AData : Pointer
|
||||||
|
);
|
||||||
protected
|
protected
|
||||||
function GetXmlDoc():TXMLDocument;
|
function GetXmlDoc():TXMLDocument;
|
||||||
function PushStack(AScopeObject : TDOMNode):TStackItem;overload;
|
function PushStack(AScopeObject : TDOMNode):TStackItem;overload;
|
||||||
@ -573,6 +580,7 @@ procedure TXmlRpcBaseFormatter.InternalClear(const ACreateDoc: Boolean);
|
|||||||
begin
|
begin
|
||||||
ClearStack();
|
ClearStack();
|
||||||
ReleaseDomNode(FDoc);
|
ReleaseDomNode(FDoc);
|
||||||
|
FDoc := nil;
|
||||||
if ACreateDoc then
|
if ACreateDoc then
|
||||||
FDoc := CreateDoc();
|
FDoc := CreateDoc();
|
||||||
end;
|
end;
|
||||||
@ -732,6 +740,15 @@ begin
|
|||||||
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Save(AData As TBaseRemotable, Self,AName,ATypeInfo);
|
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Save(AData As TBaseRemotable, Self,AName,ATypeInfo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TXmlRpcBaseFormatter.PutRecord(
|
||||||
|
const AName : string;
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
const AData : Pointer
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
TRemotableRecordEncoder.Save(AData,Self,AName,ATypeInfo);
|
||||||
|
end;
|
||||||
|
|
||||||
function TXmlRpcBaseFormatter.PutFloat(
|
function TXmlRpcBaseFormatter.PutFloat(
|
||||||
const AName : String;
|
const AName : String;
|
||||||
const ATypeInfo : PTypeInfo;
|
const ATypeInfo : PTypeInfo;
|
||||||
@ -864,6 +881,15 @@ begin
|
|||||||
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo);
|
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TXmlRpcBaseFormatter.GetRecord(
|
||||||
|
const ATypeInfo : PTypeInfo;
|
||||||
|
var AName : String;
|
||||||
|
var AData : Pointer
|
||||||
|
);
|
||||||
|
begin
|
||||||
|
TRemotableRecordEncoder.Load(AData, Self,AName,ATypeInfo);
|
||||||
|
end;
|
||||||
|
|
||||||
function TXmlRpcBaseFormatter.GetXmlDoc(): TwstXMLDocument;
|
function TXmlRpcBaseFormatter.GetXmlDoc(): TwstXMLDocument;
|
||||||
begin
|
begin
|
||||||
Result := FDoc;
|
Result := FDoc;
|
||||||
@ -1056,6 +1082,10 @@ begin
|
|||||||
objData := TObject(AData);
|
objData := TObject(AData);
|
||||||
PutObj(AName,ATypeInfo,objData);
|
PutObj(AName,ATypeInfo,objData);
|
||||||
End;
|
End;
|
||||||
|
tkRecord :
|
||||||
|
begin
|
||||||
|
PutRecord(AName,ATypeInfo,Pointer(@AData));
|
||||||
|
end;
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
tkBool :
|
tkBool :
|
||||||
Begin
|
Begin
|
||||||
@ -1218,6 +1248,7 @@ Var
|
|||||||
{$IFDEF FPC}boolData : Boolean;{$ENDIF}
|
{$IFDEF FPC}boolData : Boolean;{$ENDIF}
|
||||||
enumData : TEnumIntType;
|
enumData : TEnumIntType;
|
||||||
floatDt : Extended;
|
floatDt : Extended;
|
||||||
|
recObject : Pointer;
|
||||||
begin
|
begin
|
||||||
Case ATypeInfo^.Kind Of
|
Case ATypeInfo^.Kind Of
|
||||||
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
|
||||||
@ -1238,6 +1269,11 @@ begin
|
|||||||
GetObj(ATypeInfo,AName,objData);
|
GetObj(ATypeInfo,AName,objData);
|
||||||
TObject(AData) := objData;
|
TObject(AData) := objData;
|
||||||
End;
|
End;
|
||||||
|
tkRecord :
|
||||||
|
begin
|
||||||
|
recObject := Pointer(@AData);
|
||||||
|
GetRecord(ATypeInfo,AName,recObject);
|
||||||
|
end;
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
tkBool :
|
tkBool :
|
||||||
Begin
|
Begin
|
||||||
@ -1271,7 +1307,7 @@ begin
|
|||||||
ftDouble : Double(AData) := floatDt;
|
ftDouble : Double(AData) := floatDt;
|
||||||
ftExtended : Extended(AData) := floatDt;
|
ftExtended : Extended(AData) := floatDt;
|
||||||
ftCurr : Currency(AData) := floatDt;
|
ftCurr : Currency(AData) := floatDt;
|
||||||
{$IFDEF CPU86}
|
{$IFDEF HAS_COMP}
|
||||||
ftComp : Comp(AData) := floatDt;
|
ftComp : Comp(AData) := floatDt;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
End;
|
End;
|
||||||
@ -1347,7 +1383,7 @@ begin
|
|||||||
ftDouble : Double(AData) := floatDt;
|
ftDouble : Double(AData) := floatDt;
|
||||||
ftExtended : Extended(AData) := floatDt;
|
ftExtended : Extended(AData) := floatDt;
|
||||||
ftCurr : Currency(AData) := floatDt;
|
ftCurr : Currency(AData) := floatDt;
|
||||||
{$IFDEF CPU86}
|
{$IFDEF HAS_COMP}
|
||||||
ftComp : Comp(AData) := floatDt;
|
ftComp : Comp(AData) := floatDt;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
@ -20,9 +20,6 @@ uses
|
|||||||
base_service_intf, service_intf, imp_utils,
|
base_service_intf, service_intf, imp_utils,
|
||||||
base_binary_formatter;
|
base_binary_formatter;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
Const
|
Const
|
||||||
sCONTENT_TYPE = 'contenttype';
|
sCONTENT_TYPE = 'contenttype';
|
||||||
sBINARY_CONTENT = 'binary';
|
sBINARY_CONTENT = 'binary';
|
||||||
|
@ -22,9 +22,6 @@ uses
|
|||||||
service_intf, imp_utils, base_service_intf,
|
service_intf, imp_utils, base_service_intf,
|
||||||
HttpProt;
|
HttpProt;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
Const
|
Const
|
||||||
sTRANSPORT_NAME = 'HTTP';
|
sTRANSPORT_NAME = 'HTTP';
|
||||||
|
|
||||||
|
@ -20,8 +20,6 @@ uses
|
|||||||
service_intf, imp_utils, base_service_intf,
|
service_intf, imp_utils, base_service_intf,
|
||||||
WSocket;
|
WSocket;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
Const
|
Const
|
||||||
sTRANSPORT_NAME = 'TCP';
|
sTRANSPORT_NAME = 'TCP';
|
||||||
|
@ -19,9 +19,6 @@ uses
|
|||||||
Classes, SysUtils, TypInfo,
|
Classes, SysUtils, TypInfo,
|
||||||
base_service_intf;
|
base_service_intf;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
Type
|
Type
|
||||||
|
|
||||||
EPropertyManagerException = class(EServiceException)
|
EPropertyManagerException = class(EServiceException)
|
||||||
@ -46,15 +43,35 @@ Type
|
|||||||
End;
|
End;
|
||||||
|
|
||||||
function IsStrEmpty(Const AStr:String):Boolean;
|
function IsStrEmpty(Const AStr:String):Boolean;
|
||||||
|
function GetToken(var ABuffer : string; const ADelimiter : string): string;
|
||||||
function ExtractOptionName(const ACompleteName : string):string;
|
function ExtractOptionName(const ACompleteName : string):string;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
uses wst_types;
|
||||||
|
|
||||||
function IsStrEmpty(Const AStr:String):Boolean;
|
function IsStrEmpty(Const AStr:String):Boolean;
|
||||||
begin
|
begin
|
||||||
Result := ( Length(Trim(AStr)) = 0 );
|
Result := ( Length(Trim(AStr)) = 0 );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function GetToken(var ABuffer : string; const ADelimiter : string): string;
|
||||||
|
var
|
||||||
|
locPos, locOfs, locLen : PtrInt;
|
||||||
|
locStr : string;
|
||||||
|
begin
|
||||||
|
locPos := Pos(ADelimiter, ABuffer);
|
||||||
|
locLen := Length(ADelimiter);
|
||||||
|
locOfs := locLen - 1;
|
||||||
|
if (IsStrEmpty(ABuffer)) or ((locPos = 0) and (Length(ABuffer) > 0)) then begin
|
||||||
|
Result := ABuffer;
|
||||||
|
ABuffer := '';
|
||||||
|
end else begin
|
||||||
|
locStr := Copy(ABuffer, 1, locPos + locOfs);
|
||||||
|
ABuffer := Copy(ABuffer, locPos + locLen, Length(ABuffer));
|
||||||
|
Result := Copy(locStr, 1, Length(locStr) - locLen);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function ExtractOptionName(const ACompleteName : string):string;
|
function ExtractOptionName(const ACompleteName : string):string;
|
||||||
var
|
var
|
||||||
i, c : Integer;
|
i, c : Integer;
|
||||||
|
@ -209,9 +209,9 @@ procedure TwstIndyHttpListener.Handler_CommandGet(
|
|||||||
var
|
var
|
||||||
{$IFDEF WST_DBG}
|
{$IFDEF WST_DBG}
|
||||||
s : string;
|
s : string;
|
||||||
|
j : SizeInt;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
locPath, locPathPart : string;
|
locPath, locPathPart : string;
|
||||||
j : SizeInt;
|
|
||||||
begin
|
begin
|
||||||
{$IFDEF WST_DBG}
|
{$IFDEF WST_DBG}
|
||||||
if Assigned(ARequestInfo.PostStream) and ( ARequestInfo.PostStream.Size > 0 ) then begin
|
if Assigned(ARequestInfo.PostStream) and ( ARequestInfo.PostStream.Size > 0 ) then begin
|
||||||
|
@ -22,9 +22,6 @@ uses
|
|||||||
service_intf, imp_utils, base_service_intf, library_base_intf,
|
service_intf, imp_utils, base_service_intf, library_base_intf,
|
||||||
library_imp_utils;
|
library_imp_utils;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
const
|
const
|
||||||
sTRANSPORT_NAME = 'LIB';
|
sTRANSPORT_NAME = 'LIB';
|
||||||
|
|
||||||
|
@ -18,9 +18,6 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, TypInfo;
|
Classes, SysUtils, TypInfo;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
const
|
const
|
||||||
sWST_SIGNATURE = 'WST_METADATA_0.2.2.0';
|
sWST_SIGNATURE = 'WST_METADATA_0.2.2.0';
|
||||||
sWST_META = 'wst_meta';
|
sWST_META = 'wst_meta';
|
||||||
|
@ -20,9 +20,6 @@ uses
|
|||||||
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
|
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
|
||||||
base_service_intf, metadata_repository;
|
base_service_intf, metadata_repository;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
IWsdlTypeHandler = interface
|
IWsdlTypeHandler = interface
|
||||||
@ -83,10 +80,11 @@ type
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
uses
|
uses
|
||||||
|
wst_types
|
||||||
{$IFNDEF FPC}
|
{$IFNDEF FPC}
|
||||||
wst_delphi_rtti_utils
|
, wst_delphi_rtti_utils
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
wst_fpc_xml, XmlWrite
|
, wst_fpc_xml, XmlWrite
|
||||||
{$ENDIF};
|
{$ENDIF};
|
||||||
|
|
||||||
const
|
const
|
||||||
|
323
wst/trunk/record_rtti.pas
Normal file
323
wst/trunk/record_rtti.pas
Normal file
@ -0,0 +1,323 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Web Service Toolkit
|
||||||
|
Copyright (c) 2006 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}
|
||||||
|
unit record_rtti;
|
||||||
|
|
||||||
|
{$RANGECHECKS OFF}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
SysUtils, TypInfo, wst_types;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
PRecordFieldInfo = ^TRecordFieldInfo;
|
||||||
|
TRecordFieldInfo = packed record
|
||||||
|
Name : shortstring;
|
||||||
|
TypeInfo : PPTypeInfo;
|
||||||
|
Offset : PtrUInt;
|
||||||
|
end;
|
||||||
|
|
||||||
|
PRecordTypeData = ^TRecordTypeData;
|
||||||
|
TRecordTypeData = packed record
|
||||||
|
Name : shortstring;
|
||||||
|
RecordSize : PtrUInt;
|
||||||
|
FieldCount: PtrUInt;
|
||||||
|
Fields: array [0..0] of TRecordFieldInfo;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TRecordRttiDataObject }
|
||||||
|
|
||||||
|
TRecordRttiDataObject = class(TDataObject)
|
||||||
|
public
|
||||||
|
constructor Create(const AData : PRecordTypeData; const AFieldList : string);
|
||||||
|
destructor Destroy();override;
|
||||||
|
function GetRecordTypeData() : PRecordTypeData;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MakeRecordTypeInfo(ARawTypeInfo : PTypeInfo) : PRecordTypeData;
|
||||||
|
procedure FreeRecordTypeInfo(ATypeInfo : PRecordTypeData);
|
||||||
|
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
function MakeRawTypeInfo(
|
||||||
|
const ATypeName : string;
|
||||||
|
const ATypeSize : PtrUInt;
|
||||||
|
const AOffset : array of PtrUInt;
|
||||||
|
const ATypes : array of PTypeInfo
|
||||||
|
):PTypeInfo ;
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
implementation
|
||||||
|
uses Classes, imp_utils;
|
||||||
|
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
var
|
||||||
|
RawTypeInfoList : TList = nil;
|
||||||
|
|
||||||
|
type
|
||||||
|
PFieldInfo = ^TFieldInfo;
|
||||||
|
TFieldInfo = packed record
|
||||||
|
TypeInfo: PPTypeInfo;
|
||||||
|
Offset: Cardinal;
|
||||||
|
end;
|
||||||
|
|
||||||
|
PFieldTable = ^TFieldTable;
|
||||||
|
TFieldTable = packed record
|
||||||
|
X: Word;
|
||||||
|
Size: Cardinal;
|
||||||
|
Count: Cardinal;
|
||||||
|
Fields: array [0..0] of TFieldInfo;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MakeRawTypeInfo(
|
||||||
|
const ATypeName : string;
|
||||||
|
const ATypeSize : PtrUInt;
|
||||||
|
const AOffset : array of PtrUInt;
|
||||||
|
const ATypes : array of PTypeInfo
|
||||||
|
):PTypeInfo ;
|
||||||
|
var
|
||||||
|
i, j, bufferSize, count : LongInt;
|
||||||
|
delphiFT : PFieldTable;
|
||||||
|
resBuffer, tmp : PByte;
|
||||||
|
fieldInfo : PFieldInfo;
|
||||||
|
typ : PTypeInfo;
|
||||||
|
begin
|
||||||
|
count := Length(AOffset);
|
||||||
|
Assert(count = Length(ATypes));
|
||||||
|
bufferSize :=
|
||||||
|
1 + // Kind
|
||||||
|
1 + Length(ATypeName) +
|
||||||
|
SizeOf(Word) + // X
|
||||||
|
SizeOf(Cardinal) + // Size
|
||||||
|
SizeOf(Cardinal) + // Count
|
||||||
|
( count * SizeOf(TFieldInfo) );
|
||||||
|
GetMem(resBuffer,bufferSize);
|
||||||
|
FillChar(Pointer(resBuffer)^,bufferSize,#0);
|
||||||
|
tmp := resBuffer;
|
||||||
|
typ := PTypeInfo(resBuffer);
|
||||||
|
typ^.Kind := tkRecord;
|
||||||
|
PByte(@(typ^.Name[0]))^ := Length(ATypeName);
|
||||||
|
Move(ATypeName[1],typ^.Name[1],Length(ATypeName));
|
||||||
|
|
||||||
|
Inc(tmp,SizeOf(TTypeKind)); // Kind
|
||||||
|
Inc(tmp,1 + Byte(typ^.Name[0])); // Name
|
||||||
|
|
||||||
|
delphiFT := PFieldTable(tmp);
|
||||||
|
delphiFT^.X := 0;
|
||||||
|
delphiFT^.Size := ATypeSize;
|
||||||
|
delphiFT^.Count := count;
|
||||||
|
for i := 1 to count do begin
|
||||||
|
j := i - 1;
|
||||||
|
fieldInfo := @(delphiFT^.Fields[j]);
|
||||||
|
fieldInfo^.Offset := AOffset[j];
|
||||||
|
GetMem(fieldInfo^.TypeInfo,SizeOf(Pointer));
|
||||||
|
fieldInfo^.TypeInfo^ := ATypes[j];
|
||||||
|
end;
|
||||||
|
Result := typ;
|
||||||
|
RawTypeInfoList.Add(Result);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure FreeRawTypeInfo(ARawTypeInfo : PTypeInfo);
|
||||||
|
var
|
||||||
|
i : PtrInt;
|
||||||
|
delphiFT : PFieldTable;
|
||||||
|
tmp : PByte;
|
||||||
|
fieldInfo : PFieldInfo;
|
||||||
|
begin
|
||||||
|
if Assigned(ARawTypeInfo) then begin
|
||||||
|
tmp := PByte(ARawTypeInfo);
|
||||||
|
Inc(tmp,SizeOf(TTypeKind)); // Kind
|
||||||
|
Inc(tmp,1 + Byte(ARawTypeInfo^.Name[0])); // Name
|
||||||
|
|
||||||
|
delphiFT := PFieldTable(tmp);
|
||||||
|
for i := 1 to delphiFT^.Count do begin
|
||||||
|
fieldInfo := @(delphiFT^.Fields[(i - 1)]);
|
||||||
|
FreeMem(fieldInfo^.TypeInfo);
|
||||||
|
fieldInfo^.TypeInfo := nil;
|
||||||
|
end;
|
||||||
|
FreeMem(ARawTypeInfo);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MakeRecordTypeInfo(ARawTypeInfo : PTypeInfo) : PRecordTypeData;
|
||||||
|
var
|
||||||
|
i, bufferSize, count : LongInt;
|
||||||
|
delphiFT : PFieldTable;
|
||||||
|
resBuffer : PRecordTypeData;
|
||||||
|
fieldInfo : PRecordFieldInfo;
|
||||||
|
fld : PFieldInfo;
|
||||||
|
tmp : PByte;
|
||||||
|
begin
|
||||||
|
tmp := PByte(ARawTypeInfo);
|
||||||
|
Inc(tmp);
|
||||||
|
Inc(tmp,1 + Byte(ARawTypeInfo.Name[0]));
|
||||||
|
delphiFT := PFieldTable(tmp);
|
||||||
|
count := delphiFT^.Count;
|
||||||
|
{calc buffer size}
|
||||||
|
bufferSize :=
|
||||||
|
SizeOf(shortstring) + // Name : shortstring;
|
||||||
|
SizeOf(PtrUInt) + // Size : PtrUInt;
|
||||||
|
SizeOf(PtrUInt) + // FieldCount: PtrUInt;
|
||||||
|
( count * SizeOf(TRecordFieldInfo) ); // Fields: array [0..0] of TRecordFieldInfo;
|
||||||
|
GetMem(resBuffer,bufferSize);
|
||||||
|
FillChar(Pointer(resBuffer)^,bufferSize,#0);
|
||||||
|
resBuffer^.Name := PTypeInfo(ARawTypeInfo).Name;
|
||||||
|
resBuffer^.RecordSize := delphiFT^.Size;
|
||||||
|
resBuffer^.FieldCount := count;
|
||||||
|
{ Process elements }
|
||||||
|
for i := 1 to Count do begin
|
||||||
|
fld := @(delphiFT^.Fields[(i - 1)]);
|
||||||
|
fieldInfo := @(resBuffer^.Fields[(i - 1)]);
|
||||||
|
fieldInfo^.TypeInfo := fld^.TypeInfo;
|
||||||
|
fieldInfo^.Offset := fld^.Offset;
|
||||||
|
end;
|
||||||
|
Result := resBuffer;
|
||||||
|
end;
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
{$IFDEF FPC}
|
||||||
|
function aligntoptr(p : pointer) : pointer;inline;
|
||||||
|
begin
|
||||||
|
{$ifdef FPC_REQUIRES_PROPER_ALIGNMENT}
|
||||||
|
result:=align(p,sizeof(p));
|
||||||
|
{$else FPC_REQUIRES_PROPER_ALIGNMENT}
|
||||||
|
result:=p;
|
||||||
|
{$endif FPC_REQUIRES_PROPER_ALIGNMENT}
|
||||||
|
end;
|
||||||
|
|
||||||
|
function MakeRecordTypeInfo(ARawTypeInfo : PTypeInfo) : PRecordTypeData;
|
||||||
|
{
|
||||||
|
A record is designed as follows :
|
||||||
|
1 : tkrecord
|
||||||
|
2 : Length of name string (n);
|
||||||
|
3 : name string;
|
||||||
|
3+n : record size;
|
||||||
|
7+n : number of elements (N)
|
||||||
|
11+n : N times : Pointer to type info
|
||||||
|
Offset in record
|
||||||
|
}
|
||||||
|
var
|
||||||
|
Temp : pbyte;
|
||||||
|
namelen : byte;
|
||||||
|
count,
|
||||||
|
offset,
|
||||||
|
i : longint;
|
||||||
|
info : pointer;
|
||||||
|
|
||||||
|
resBuffer : PRecordTypeData;
|
||||||
|
typName : shortstring;
|
||||||
|
typSize : Cardinal;
|
||||||
|
bufferSize : PtrUInt;
|
||||||
|
fieldInfo : PRecordFieldInfo;
|
||||||
|
begin
|
||||||
|
Temp := PByte(ARawTypeInfo);
|
||||||
|
Inc(Temp);
|
||||||
|
{ Skip Name }
|
||||||
|
namelen := Temp^;
|
||||||
|
SetLength(typName,namelen);
|
||||||
|
Inc(temp,1);
|
||||||
|
Move(Temp^,typName[1],namelen);
|
||||||
|
Inc(temp,namelen);
|
||||||
|
temp:=aligntoptr(temp);
|
||||||
|
{ Skip size }
|
||||||
|
typSize := PLongint(Temp)^;
|
||||||
|
Inc(Temp,4);
|
||||||
|
{ Element count }
|
||||||
|
Count := PLongint(Temp)^;
|
||||||
|
Inc(Temp,sizeof(Count));
|
||||||
|
|
||||||
|
{calc buffer size}
|
||||||
|
bufferSize :=
|
||||||
|
SizeOf(shortstring) + // Name : shortstring;
|
||||||
|
SizeOf(PtrUInt) + // Size : PtrUInt;
|
||||||
|
SizeOf(PtrUInt) + // FieldCount: PtrUInt;
|
||||||
|
( Count * SizeOf(TRecordFieldInfo) ); // Fields: array [0..0] of TRecordFieldInfo;
|
||||||
|
|
||||||
|
GetMem(resBuffer,bufferSize);
|
||||||
|
FillChar(Pointer(resBuffer)^,bufferSize,#0);
|
||||||
|
resBuffer^.Name := typName;
|
||||||
|
resBuffer^.RecordSize := typSize;
|
||||||
|
resBuffer^.FieldCount := count;
|
||||||
|
{ Process elements }
|
||||||
|
for i := 1 to Count do begin
|
||||||
|
fieldInfo := @(resBuffer^.Fields[(i - 1)]);
|
||||||
|
Info := PPointer(Temp)^;
|
||||||
|
fieldInfo^.TypeInfo := PPTypeInfo(Temp);
|
||||||
|
Inc(Temp,sizeof(Info));
|
||||||
|
Offset := PLongint(Temp)^;
|
||||||
|
fieldInfo^.Offset := Offset;
|
||||||
|
Inc(Temp,sizeof(Offset));
|
||||||
|
end;
|
||||||
|
Result := resBuffer;
|
||||||
|
end;
|
||||||
|
{$ENDIF FPC}
|
||||||
|
|
||||||
|
procedure FreeRecordTypeInfo(ATypeInfo : PRecordTypeData);
|
||||||
|
begin
|
||||||
|
if ( ATypeInfo <> nil ) then
|
||||||
|
FreeMem(ATypeInfo);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TRecordRttiDataObject }
|
||||||
|
|
||||||
|
constructor TRecordRttiDataObject.Create(
|
||||||
|
const AData : PRecordTypeData;
|
||||||
|
const AFieldList : string
|
||||||
|
);
|
||||||
|
var
|
||||||
|
locData : PRecordTypeData;
|
||||||
|
i : PtrInt;
|
||||||
|
ls, s : string;
|
||||||
|
begin
|
||||||
|
locData := AData;
|
||||||
|
inherited Create(locData);
|
||||||
|
ls := Trim(AFieldList);
|
||||||
|
s := '';
|
||||||
|
i := 0;
|
||||||
|
while ( i < locData^.FieldCount ) do begin
|
||||||
|
s := GetToken(ls,';');
|
||||||
|
if IsStrEmpty(s) then
|
||||||
|
Break;
|
||||||
|
locData^.Fields[i].Name := s;
|
||||||
|
Inc(i);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TRecordRttiDataObject.Destroy();
|
||||||
|
begin
|
||||||
|
FreeRecordTypeInfo(Data);
|
||||||
|
inherited Destroy();
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TRecordRttiDataObject.GetRecordTypeData() : PRecordTypeData;
|
||||||
|
begin
|
||||||
|
Result := PRecordTypeData(Data);
|
||||||
|
end;
|
||||||
|
|
||||||
|
initialization
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
RawTypeInfoList := TList.Create();
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
finalization
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
while ( RawTypeInfoList.Count > 0 ) do begin
|
||||||
|
FreeRawTypeInfo(PTypeInfo(RawTypeInfoList.Items[0]));
|
||||||
|
RawTypeInfoList.Delete(0);
|
||||||
|
end;
|
||||||
|
FreeAndNil(RawTypeInfoList);
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
end.
|
@ -20,9 +20,6 @@ uses
|
|||||||
service_intf, imp_utils,
|
service_intf, imp_utils,
|
||||||
server_service_intf, server_service_imputils, base_service_intf;
|
server_service_intf, server_service_imputils, base_service_intf;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
Const
|
Const
|
||||||
sTRANSPORT_NAME = 'SAME_PROCESS';
|
sTRANSPORT_NAME = 'SAME_PROCESS';
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<IconPath Value=".\"/>
|
<IconPath Value=".\"/>
|
||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<ActiveEditorIndexAtStart Value="5"/>
|
<ActiveEditorIndexAtStart Value="0"/>
|
||||||
</General>
|
</General>
|
||||||
<VersionInfo>
|
<VersionInfo>
|
||||||
<ProjectVersion Value=""/>
|
<ProjectVersion Value=""/>
|
||||||
@ -35,17 +35,17 @@
|
|||||||
<Filename Value="amazon_sample.pas"/>
|
<Filename Value="amazon_sample.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="amazon_sample"/>
|
<UnitName Value="amazon_sample"/>
|
||||||
<CursorPos X="40" Y="12"/>
|
<CursorPos X="24" Y="12"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<UsageCount Value="24"/>
|
<UsageCount Value="25"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
<Filename Value="..\..\synapse_http_protocol.pas"/>
|
<Filename Value="..\..\synapse_http_protocol.pas"/>
|
||||||
<UnitName Value="synapse_http_protocol"/>
|
<UnitName Value="synapse_http_protocol"/>
|
||||||
<CursorPos X="1" Y="16"/>
|
<CursorPos X="1" Y="13"/>
|
||||||
<TopLine Value="2"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="5"/>
|
<EditorIndex Value="5"/>
|
||||||
<UsageCount Value="12"/>
|
<UsageCount Value="12"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -94,7 +94,12 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit6>
|
</Unit6>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
<JumpHistory Count="1" HistoryIndex="0">
|
||||||
|
<Position1>
|
||||||
|
<Filename Value="amazon_sample.pas"/>
|
||||||
|
<Caret Line="14" Column="1" TopLine="11"/>
|
||||||
|
</Position1>
|
||||||
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="5"/>
|
<Version Value="5"/>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<CONFIG>
|
<CONFIG>
|
||||||
<ProjectOptions>
|
<ProjectOptions>
|
||||||
<PathDelim Value="/"/>
|
<PathDelim Value="\"/>
|
||||||
<Version Value="5"/>
|
<Version Value="5"/>
|
||||||
<General>
|
<General>
|
||||||
<Flags>
|
<Flags>
|
||||||
@ -10,7 +10,7 @@
|
|||||||
<MainUnitHasTitleStatement Value="False"/>
|
<MainUnitHasTitleStatement Value="False"/>
|
||||||
</Flags>
|
</Flags>
|
||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<IconPath Value="./"/>
|
<IconPath Value=".\"/>
|
||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<ActiveEditorIndexAtStart Value="1"/>
|
<ActiveEditorIndexAtStart Value="1"/>
|
||||||
</General>
|
</General>
|
||||||
@ -19,6 +19,7 @@
|
|||||||
</VersionInfo>
|
</VersionInfo>
|
||||||
<PublishOptions>
|
<PublishOptions>
|
||||||
<Version Value="2"/>
|
<Version Value="2"/>
|
||||||
|
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
|
||||||
<IgnoreBinaries Value="False"/>
|
<IgnoreBinaries Value="False"/>
|
||||||
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||||
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||||
@ -26,7 +27,7 @@
|
|||||||
<RunParams>
|
<RunParams>
|
||||||
<local>
|
<local>
|
||||||
<FormatVersion Value="1"/>
|
<FormatVersion Value="1"/>
|
||||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||||
</local>
|
</local>
|
||||||
</RunParams>
|
</RunParams>
|
||||||
<RequiredPackages Count="1">
|
<RequiredPackages Count="1">
|
||||||
@ -53,7 +54,7 @@
|
|||||||
<UsageCount Value="30"/>
|
<UsageCount Value="30"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="../../base_service_intf.pas"/>
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
<UnitName Value="base_service_intf"/>
|
<UnitName Value="base_service_intf"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
@ -62,7 +63,7 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit2>
|
</Unit2>
|
||||||
<Unit3>
|
<Unit3>
|
||||||
<Filename Value="../../metadata_wsdl.pas"/>
|
<Filename Value="..\..\metadata_wsdl.pas"/>
|
||||||
<UnitName Value="metadata_wsdl"/>
|
<UnitName Value="metadata_wsdl"/>
|
||||||
<CursorPos X="80" Y="80"/>
|
<CursorPos X="80" Y="80"/>
|
||||||
<TopLine Value="66"/>
|
<TopLine Value="66"/>
|
||||||
@ -71,14 +72,14 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit3>
|
</Unit3>
|
||||||
<Unit4>
|
<Unit4>
|
||||||
<Filename Value="../../metadata_service_imp.pas"/>
|
<Filename Value="..\..\metadata_service_imp.pas"/>
|
||||||
<UnitName Value="metadata_service_imp"/>
|
<UnitName Value="metadata_service_imp"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="31"/>
|
<UsageCount Value="31"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
<Unit5>
|
<Unit5>
|
||||||
<Filename Value="../user_service_intf_imp.pas"/>
|
<Filename Value="..\user_service_intf_imp.pas"/>
|
||||||
<UnitName Value="user_service_intf_imp"/>
|
<UnitName Value="user_service_intf_imp"/>
|
||||||
<CursorPos X="60" Y="51"/>
|
<CursorPos X="60" Y="51"/>
|
||||||
<TopLine Value="32"/>
|
<TopLine Value="32"/>
|
||||||
@ -87,7 +88,7 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit5>
|
</Unit5>
|
||||||
<Unit6>
|
<Unit6>
|
||||||
<Filename Value="../user_service_intf_binder.pas"/>
|
<Filename Value="..\user_service_intf_binder.pas"/>
|
||||||
<UnitName Value="user_service_intf_binder"/>
|
<UnitName Value="user_service_intf_binder"/>
|
||||||
<CursorPos X="37" Y="247"/>
|
<CursorPos X="37" Y="247"/>
|
||||||
<TopLine Value="224"/>
|
<TopLine Value="224"/>
|
||||||
@ -96,7 +97,7 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit6>
|
</Unit6>
|
||||||
<Unit7>
|
<Unit7>
|
||||||
<Filename Value="../user_service_intf.pas"/>
|
<Filename Value="..\user_service_intf.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="user_service_intf"/>
|
<UnitName Value="user_service_intf"/>
|
||||||
<CursorPos X="7" Y="3"/>
|
<CursorPos X="7" Y="3"/>
|
||||||
@ -106,7 +107,7 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit7>
|
</Unit7>
|
||||||
<Unit8>
|
<Unit8>
|
||||||
<Filename Value="../../metadata_repository.pas"/>
|
<Filename Value="..\..\metadata_repository.pas"/>
|
||||||
<UnitName Value="metadata_repository"/>
|
<UnitName Value="metadata_repository"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="7"/>
|
<TopLine Value="7"/>
|
||||||
@ -115,14 +116,14 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit8>
|
</Unit8>
|
||||||
<Unit9>
|
<Unit9>
|
||||||
<Filename Value="../../semaphore.pas"/>
|
<Filename Value="..\..\semaphore.pas"/>
|
||||||
<UnitName Value="semaphore"/>
|
<UnitName Value="semaphore"/>
|
||||||
<CursorPos X="1" Y="140"/>
|
<CursorPos X="1" Y="140"/>
|
||||||
<TopLine Value="113"/>
|
<TopLine Value="113"/>
|
||||||
<UsageCount Value="25"/>
|
<UsageCount Value="25"/>
|
||||||
</Unit9>
|
</Unit9>
|
||||||
<Unit10>
|
<Unit10>
|
||||||
<Filename Value="../../server_service_intf.pas"/>
|
<Filename Value="..\..\server_service_intf.pas"/>
|
||||||
<UnitName Value="server_service_intf"/>
|
<UnitName Value="server_service_intf"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
@ -131,234 +132,234 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit10>
|
</Unit10>
|
||||||
<Unit11>
|
<Unit11>
|
||||||
<Filename Value="../../server_service_soap.pas"/>
|
<Filename Value="..\..\server_service_soap.pas"/>
|
||||||
<UnitName Value="server_service_soap"/>
|
<UnitName Value="server_service_soap"/>
|
||||||
<CursorPos X="17" Y="22"/>
|
<CursorPos X="17" Y="22"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="39"/>
|
<UsageCount Value="39"/>
|
||||||
</Unit11>
|
</Unit11>
|
||||||
<Unit12>
|
<Unit12>
|
||||||
<Filename Value="../../base_soap_formatter.pas"/>
|
<Filename Value="..\..\base_soap_formatter.pas"/>
|
||||||
<UnitName Value="base_soap_formatter"/>
|
<UnitName Value="base_soap_formatter"/>
|
||||||
<CursorPos X="36" Y="1576"/>
|
<CursorPos X="36" Y="1576"/>
|
||||||
<TopLine Value="1586"/>
|
<TopLine Value="1586"/>
|
||||||
<UsageCount Value="40"/>
|
<UsageCount Value="40"/>
|
||||||
</Unit12>
|
</Unit12>
|
||||||
<Unit13>
|
<Unit13>
|
||||||
<Filename Value="../../server_service_imputils.pas"/>
|
<Filename Value="..\..\server_service_imputils.pas"/>
|
||||||
<UnitName Value="server_service_imputils"/>
|
<UnitName Value="server_service_imputils"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="34"/>
|
<UsageCount Value="34"/>
|
||||||
</Unit13>
|
</Unit13>
|
||||||
<Unit14>
|
<Unit14>
|
||||||
<Filename Value="../../../../../../lazarus_23_215/others_package/indy/indy-10.2.0.1/fpc/Protocols/IdCustomHTTPServer.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215\others_package\indy\indy-10.2.0.1\fpc\Protocols\IdCustomHTTPServer.pas"/>
|
||||||
<UnitName Value="IdCustomHTTPServer"/>
|
<UnitName Value="IdCustomHTTPServer"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="1"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit14>
|
</Unit14>
|
||||||
<Unit15>
|
<Unit15>
|
||||||
<Filename Value="../../../../../../lazarus23_213/fpc/2.1.3/source/rtl/i386/i386.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\i386\i386.inc"/>
|
||||||
<CursorPos X="49" Y="1252"/>
|
<CursorPos X="49" Y="1252"/>
|
||||||
<TopLine Value="1231"/>
|
<TopLine Value="1231"/>
|
||||||
<UsageCount Value="1"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit15>
|
</Unit15>
|
||||||
<Unit16>
|
<Unit16>
|
||||||
<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="10"/>
|
||||||
</Unit16>
|
</Unit16>
|
||||||
<Unit17>
|
<Unit17>
|
||||||
<Filename Value="../../xmlrpc_formatter.pas"/>
|
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
||||||
<UnitName Value="xmlrpc_formatter"/>
|
<UnitName Value="xmlrpc_formatter"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="28"/>
|
<TopLine Value="28"/>
|
||||||
<UsageCount Value="1"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit17>
|
</Unit17>
|
||||||
<Unit18>
|
<Unit18>
|
||||||
<Filename Value="../../server_service_xmlrpc.pas"/>
|
<Filename Value="..\..\server_service_xmlrpc.pas"/>
|
||||||
<UnitName Value="server_service_xmlrpc"/>
|
<UnitName Value="server_service_xmlrpc"/>
|
||||||
<CursorPos X="21" Y="22"/>
|
<CursorPos X="21" Y="22"/>
|
||||||
<TopLine Value="7"/>
|
<TopLine Value="7"/>
|
||||||
<UsageCount Value="37"/>
|
<UsageCount Value="37"/>
|
||||||
</Unit18>
|
</Unit18>
|
||||||
<Unit19>
|
<Unit19>
|
||||||
<Filename Value="../../server_binary_formatter.pas"/>
|
<Filename Value="..\..\server_binary_formatter.pas"/>
|
||||||
<UnitName Value="server_binary_formatter"/>
|
<UnitName Value="server_binary_formatter"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="35"/>
|
<UsageCount Value="35"/>
|
||||||
</Unit19>
|
</Unit19>
|
||||||
<Unit20>
|
<Unit20>
|
||||||
<Filename Value="../../base_xmlrpc_formatter.pas"/>
|
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
|
||||||
<UnitName Value="base_xmlrpc_formatter"/>
|
<UnitName Value="base_xmlrpc_formatter"/>
|
||||||
<CursorPos X="3" Y="985"/>
|
<CursorPos X="3" Y="985"/>
|
||||||
<TopLine Value="974"/>
|
<TopLine Value="974"/>
|
||||||
<UsageCount Value="35"/>
|
<UsageCount Value="35"/>
|
||||||
</Unit20>
|
</Unit20>
|
||||||
<Unit21>
|
<Unit21>
|
||||||
<Filename Value="../../../../../../lazarus23_213/others_package/indy/indy-10.2.0.1/fpc/Core/IdSocketHandle.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus23_213\others_package\indy\indy-10.2.0.1\fpc\Core\IdSocketHandle.pas"/>
|
||||||
<UnitName Value="IdSocketHandle"/>
|
<UnitName Value="IdSocketHandle"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="1"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit21>
|
</Unit21>
|
||||||
<Unit22>
|
<Unit22>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/lazarus/IdAboutVCL.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\lazarus\IdAboutVCL.pas"/>
|
||||||
<UnitName Value="IdAboutVCL"/>
|
<UnitName Value="IdAboutVCL"/>
|
||||||
<CursorPos X="19" Y="1"/>
|
<CursorPos X="19" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit22>
|
</Unit22>
|
||||||
<Unit23>
|
<Unit23>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/System/IdGlobal.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\System\IdGlobal.pas"/>
|
||||||
<UnitName Value="IdGlobal"/>
|
<UnitName Value="IdGlobal"/>
|
||||||
<CursorPos X="14" Y="510"/>
|
<CursorPos X="14" Y="510"/>
|
||||||
<TopLine Value="497"/>
|
<TopLine Value="497"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit23>
|
</Unit23>
|
||||||
<Unit24>
|
<Unit24>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/systemh.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
|
||||||
<CursorPos X="21" Y="208"/>
|
<CursorPos X="21" Y="208"/>
|
||||||
<TopLine Value="193"/>
|
<TopLine Value="193"/>
|
||||||
<UsageCount Value="44"/>
|
<UsageCount Value="44"/>
|
||||||
</Unit24>
|
</Unit24>
|
||||||
<Unit25>
|
<Unit25>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/innr.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\innr.inc"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="42"/>
|
<TopLine Value="42"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit25>
|
</Unit25>
|
||||||
<Unit26>
|
<Unit26>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/i386/fastmove.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\i386\fastmove.inc"/>
|
||||||
<CursorPos X="11" Y="835"/>
|
<CursorPos X="11" Y="835"/>
|
||||||
<TopLine Value="821"/>
|
<TopLine Value="821"/>
|
||||||
<UsageCount Value="3"/>
|
<UsageCount Value="3"/>
|
||||||
</Unit26>
|
</Unit26>
|
||||||
<Unit27>
|
<Unit27>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/system.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\system.inc"/>
|
||||||
<CursorPos X="11" Y="306"/>
|
<CursorPos X="11" Y="306"/>
|
||||||
<TopLine Value="285"/>
|
<TopLine Value="285"/>
|
||||||
<UsageCount Value="36"/>
|
<UsageCount Value="36"/>
|
||||||
</Unit27>
|
</Unit27>
|
||||||
<Unit28>
|
<Unit28>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/generic.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\generic.inc"/>
|
||||||
<CursorPos X="5" Y="1289"/>
|
<CursorPos X="5" Y="1289"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit28>
|
</Unit28>
|
||||||
<Unit29>
|
<Unit29>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/system.fpd"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\system.fpd"/>
|
||||||
<CursorPos X="22" Y="17"/>
|
<CursorPos X="22" Y="17"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit29>
|
</Unit29>
|
||||||
<Unit30>
|
<Unit30>
|
||||||
<Filename Value="../../wst_fpc_xml.pas"/>
|
<Filename Value="..\..\wst_fpc_xml.pas"/>
|
||||||
<UnitName Value="wst_fpc_xml"/>
|
<UnitName Value="wst_fpc_xml"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="35"/>
|
<UsageCount Value="35"/>
|
||||||
</Unit30>
|
</Unit30>
|
||||||
<Unit31>
|
<Unit31>
|
||||||
<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="11" Y="66"/>
|
<CursorPos X="11" Y="66"/>
|
||||||
<TopLine Value="52"/>
|
<TopLine Value="52"/>
|
||||||
<UsageCount Value="35"/>
|
<UsageCount Value="35"/>
|
||||||
</Unit31>
|
</Unit31>
|
||||||
<Unit32>
|
<Unit32>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/objpas/sysutils/sysstr.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysstr.inc"/>
|
||||||
<CursorPos X="6" Y="44"/>
|
<CursorPos X="6" Y="44"/>
|
||||||
<TopLine Value="30"/>
|
<TopLine Value="30"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit32>
|
</Unit32>
|
||||||
<Unit33>
|
<Unit33>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/win/sysosh.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win\sysosh.inc"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="51"/>
|
<TopLine Value="51"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit33>
|
</Unit33>
|
||||||
<Unit34>
|
<Unit34>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/objpash.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
||||||
<CursorPos X="25" Y="216"/>
|
<CursorPos X="25" Y="216"/>
|
||||||
<TopLine Value="203"/>
|
<TopLine Value="203"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit34>
|
</Unit34>
|
||||||
<Unit35>
|
<Unit35>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/varianth.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\varianth.inc"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit35>
|
</Unit35>
|
||||||
<Unit36>
|
<Unit36>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/rtti.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\rtti.inc"/>
|
||||||
<CursorPos X="59" Y="101"/>
|
<CursorPos X="59" Y="101"/>
|
||||||
<TopLine Value="101"/>
|
<TopLine Value="101"/>
|
||||||
<UsageCount Value="51"/>
|
<UsageCount Value="51"/>
|
||||||
</Unit36>
|
</Unit36>
|
||||||
<Unit37>
|
<Unit37>
|
||||||
<Filename Value="../../metadata_service.pas"/>
|
<Filename Value="..\..\metadata_service.pas"/>
|
||||||
<UnitName Value="metadata_service"/>
|
<UnitName Value="metadata_service"/>
|
||||||
<CursorPos X="26" Y="13"/>
|
<CursorPos X="26" Y="13"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="31"/>
|
<UsageCount Value="31"/>
|
||||||
</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="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="20"/>
|
||||||
</Unit38>
|
</Unit38>
|
||||||
<Unit39>
|
<Unit39>
|
||||||
<Filename Value="../user_service_intf.wst"/>
|
<Filename Value="..\user_service_intf.wst"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="3"/>
|
<UsageCount Value="3"/>
|
||||||
<SyntaxHighlighter Value="None"/>
|
<SyntaxHighlighter Value="None"/>
|
||||||
</Unit39>
|
</Unit39>
|
||||||
<Unit40>
|
<Unit40>
|
||||||
<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="42" Y="228"/>
|
<CursorPos X="42" Y="228"/>
|
||||||
<TopLine Value="215"/>
|
<TopLine Value="215"/>
|
||||||
<UsageCount Value="11"/>
|
<UsageCount Value="11"/>
|
||||||
</Unit40>
|
</Unit40>
|
||||||
<Unit41>
|
<Unit41>
|
||||||
<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="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="115"/>
|
<TopLine Value="115"/>
|
||||||
<UsageCount Value="45"/>
|
<UsageCount Value="45"/>
|
||||||
</Unit41>
|
</Unit41>
|
||||||
<Unit42>
|
<Unit42>
|
||||||
<Filename Value="../user_service_intf_proxy.pas"/>
|
<Filename Value="..\user_service_intf_proxy.pas"/>
|
||||||
<UnitName Value="user_service_intf_proxy"/>
|
<UnitName Value="user_service_intf_proxy"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="28"/>
|
<UsageCount Value="28"/>
|
||||||
</Unit42>
|
</Unit42>
|
||||||
<Unit43>
|
<Unit43>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Protocols/IdCustomHTTPServer.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Protocols\IdCustomHTTPServer.pas"/>
|
||||||
<UnitName Value="IdCustomHTTPServer"/>
|
<UnitName Value="IdCustomHTTPServer"/>
|
||||||
<CursorPos X="14" Y="252"/>
|
<CursorPos X="14" Y="252"/>
|
||||||
<TopLine Value="239"/>
|
<TopLine Value="239"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit43>
|
</Unit43>
|
||||||
<Unit44>
|
<Unit44>
|
||||||
<Filename Value="../../type_lib_edtr/uabout.pas"/>
|
<Filename Value="..\..\type_lib_edtr\uabout.pas"/>
|
||||||
<ComponentName Value="fAbout"/>
|
<ComponentName Value="fAbout"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceFilename Value="../../type_lib_edtr/uabout.lrs"/>
|
<ResourceFilename Value="..\..\type_lib_edtr\uabout.lrs"/>
|
||||||
<UnitName Value="uabout"/>
|
<UnitName Value="uabout"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit44>
|
</Unit44>
|
||||||
<Unit45>
|
<Unit45>
|
||||||
<Filename Value="../../type_lib_edtr/uwsttypelibraryedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\uwsttypelibraryedit.pas"/>
|
||||||
<ComponentName Value="fWstTypeLibraryEdit"/>
|
<ComponentName Value="fWstTypeLibraryEdit"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<UnitName Value="uwsttypelibraryedit"/>
|
<UnitName Value="uwsttypelibraryedit"/>
|
||||||
@ -367,17 +368,17 @@
|
|||||||
<UsageCount Value="4"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit45>
|
</Unit45>
|
||||||
<Unit46>
|
<Unit46>
|
||||||
<Filename Value="../../ide/lazarus/wstimportdlg.pas"/>
|
<Filename Value="..\..\ide\lazarus\wstimportdlg.pas"/>
|
||||||
<ComponentName Value="formImport"/>
|
<ComponentName Value="formImport"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceFilename Value="../../ide/lazarus/wstimportdlg.lrs"/>
|
<ResourceFilename Value="..\..\ide\lazarus\wstimportdlg.lrs"/>
|
||||||
<UnitName Value="wstimportdlg"/>
|
<UnitName Value="wstimportdlg"/>
|
||||||
<CursorPos X="27" Y="7"/>
|
<CursorPos X="27" Y="7"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit46>
|
</Unit46>
|
||||||
<Unit47>
|
<Unit47>
|
||||||
<Filename Value="../../indy_http_server.pas"/>
|
<Filename Value="..\..\indy_http_server.pas"/>
|
||||||
<UnitName Value="indy_http_server"/>
|
<UnitName Value="indy_http_server"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
@ -386,39 +387,39 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit47>
|
</Unit47>
|
||||||
<Unit48>
|
<Unit48>
|
||||||
<Filename Value="../../server_listener.pas"/>
|
<Filename Value="..\..\server_listener.pas"/>
|
||||||
<UnitName Value="server_listener"/>
|
<UnitName Value="server_listener"/>
|
||||||
<CursorPos X="28" Y="33"/>
|
<CursorPos X="28" Y="33"/>
|
||||||
<TopLine Value="26"/>
|
<TopLine Value="26"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="20"/>
|
||||||
</Unit48>
|
</Unit48>
|
||||||
<Unit49>
|
<Unit49>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/aliases.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\aliases.inc"/>
|
||||||
<CursorPos X="84" Y="14"/>
|
<CursorPos X="84" Y="14"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit49>
|
</Unit49>
|
||||||
<Unit50>
|
<Unit50>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/inc/variant.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\variant.inc"/>
|
||||||
<CursorPos X="11" Y="24"/>
|
<CursorPos X="11" Y="24"/>
|
||||||
<TopLine Value="29"/>
|
<TopLine Value="29"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit50>
|
</Unit50>
|
||||||
<Unit51>
|
<Unit51>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/objpas/sysutils/osutilsh.inc"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\osutilsh.inc"/>
|
||||||
<CursorPos X="53" Y="37"/>
|
<CursorPos X="53" Y="37"/>
|
||||||
<TopLine Value="30"/>
|
<TopLine Value="30"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit51>
|
</Unit51>
|
||||||
<Unit52>
|
<Unit52>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/fpc/source/rtl/win/sysutils.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win\sysutils.pp"/>
|
||||||
<UnitName Value="sysutils"/>
|
<UnitName Value="sysutils"/>
|
||||||
<CursorPos X="45" Y="1084"/>
|
<CursorPos X="45" Y="1084"/>
|
||||||
<TopLine Value="1076"/>
|
<TopLine Value="1076"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit52>
|
</Unit52>
|
||||||
<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="74" Y="99"/>
|
||||||
<TopLine Value="85"/>
|
<TopLine Value="85"/>
|
||||||
@ -427,13 +428,13 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit53>
|
</Unit53>
|
||||||
<Unit54>
|
<Unit54>
|
||||||
<Filename Value="../../wst_delphi.inc"/>
|
<Filename Value="..\..\wst_delphi.inc"/>
|
||||||
<CursorPos X="22" Y="5"/>
|
<CursorPos X="22" Y="5"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit54>
|
</Unit54>
|
||||||
<Unit55>
|
<Unit55>
|
||||||
<Filename Value="../../indy_tcp_server.pas"/>
|
<Filename Value="..\..\indy_tcp_server.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="indy_tcp_server"/>
|
<UnitName Value="indy_tcp_server"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
@ -443,143 +444,131 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit55>
|
</Unit55>
|
||||||
<Unit56>
|
<Unit56>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdTCPServer.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdTCPServer.pas"/>
|
||||||
<UnitName Value="IdTCPServer"/>
|
<UnitName Value="IdTCPServer"/>
|
||||||
<CursorPos X="38" Y="32"/>
|
<CursorPos X="38" Y="32"/>
|
||||||
<TopLine Value="19"/>
|
<TopLine Value="19"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit56>
|
</Unit56>
|
||||||
<Unit57>
|
<Unit57>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdCustomTCPServer.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdCustomTCPServer.pas"/>
|
||||||
<UnitName Value="IdCustomTCPServer"/>
|
<UnitName Value="IdCustomTCPServer"/>
|
||||||
<CursorPos X="74" Y="260"/>
|
<CursorPos X="74" Y="260"/>
|
||||||
<TopLine Value="238"/>
|
<TopLine Value="238"/>
|
||||||
<UsageCount Value="14"/>
|
<UsageCount Value="14"/>
|
||||||
</Unit57>
|
</Unit57>
|
||||||
<Unit58>
|
<Unit58>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/System/IdSys.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\System\IdSys.pas"/>
|
||||||
<UnitName Value="IdSys"/>
|
<UnitName Value="IdSys"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit58>
|
</Unit58>
|
||||||
<Unit59>
|
<Unit59>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdThread.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdThread.pas"/>
|
||||||
<UnitName Value="IdThread"/>
|
<UnitName Value="IdThread"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit59>
|
</Unit59>
|
||||||
<Unit60>
|
<Unit60>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdYarn.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdYarn.pas"/>
|
||||||
<UnitName Value="IdYarn"/>
|
<UnitName Value="IdYarn"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="21"/>
|
<TopLine Value="21"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit60>
|
</Unit60>
|
||||||
<Unit61>
|
<Unit61>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdTask.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdTask.pas"/>
|
||||||
<UnitName Value="IdTask"/>
|
<UnitName Value="IdTask"/>
|
||||||
<CursorPos X="6" Y="32"/>
|
<CursorPos X="6" Y="32"/>
|
||||||
<TopLine Value="19"/>
|
<TopLine Value="19"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit61>
|
</Unit61>
|
||||||
<Unit62>
|
<Unit62>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdIOHandler.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdIOHandler.pas"/>
|
||||||
<UnitName Value="IdIOHandler"/>
|
<UnitName Value="IdIOHandler"/>
|
||||||
<CursorPos X="3" Y="906"/>
|
<CursorPos X="3" Y="906"/>
|
||||||
<TopLine Value="902"/>
|
<TopLine Value="902"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit62>
|
</Unit62>
|
||||||
<Unit63>
|
<Unit63>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdBuffer.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdBuffer.pas"/>
|
||||||
<UnitName Value="IdBuffer"/>
|
<UnitName Value="IdBuffer"/>
|
||||||
<CursorPos X="17" Y="432"/>
|
<CursorPos X="17" Y="432"/>
|
||||||
<TopLine Value="427"/>
|
<TopLine Value="427"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit63>
|
</Unit63>
|
||||||
<Unit64>
|
<Unit64>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdTCPConnection.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdTCPConnection.pas"/>
|
||||||
<UnitName Value="IdTCPConnection"/>
|
<UnitName Value="IdTCPConnection"/>
|
||||||
<CursorPos X="15" Y="357"/>
|
<CursorPos X="15" Y="357"/>
|
||||||
<TopLine Value="340"/>
|
<TopLine Value="340"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit64>
|
</Unit64>
|
||||||
<Unit65>
|
<Unit65>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdIOHandlerSocket.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdIOHandlerSocket.pas"/>
|
||||||
<UnitName Value="IdIOHandlerSocket"/>
|
<UnitName Value="IdIOHandlerSocket"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit65>
|
</Unit65>
|
||||||
<Unit66>
|
<Unit66>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdIOHandlerStack.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdIOHandlerStack.pas"/>
|
||||||
<UnitName Value="IdIOHandlerStack"/>
|
<UnitName Value="IdIOHandlerStack"/>
|
||||||
<CursorPos X="3" Y="400"/>
|
<CursorPos X="3" Y="400"/>
|
||||||
<TopLine Value="438"/>
|
<TopLine Value="438"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit66>
|
</Unit66>
|
||||||
<Unit67>
|
<Unit67>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdExceptionCore.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdExceptionCore.pas"/>
|
||||||
<UnitName Value="IdExceptionCore"/>
|
<UnitName Value="IdExceptionCore"/>
|
||||||
<CursorPos X="33" Y="108"/>
|
<CursorPos X="33" Y="108"/>
|
||||||
<TopLine Value="95"/>
|
<TopLine Value="95"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit67>
|
</Unit67>
|
||||||
<Unit68>
|
<Unit68>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/System/IdException.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\System\IdException.pas"/>
|
||||||
<UnitName Value="IdException"/>
|
<UnitName Value="IdException"/>
|
||||||
<CursorPos X="3" Y="183"/>
|
<CursorPos X="3" Y="183"/>
|
||||||
<TopLine Value="160"/>
|
<TopLine Value="160"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit68>
|
</Unit68>
|
||||||
<Unit69>
|
<Unit69>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/System/IdObjs.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\System\IdObjs.pas"/>
|
||||||
<UnitName Value="IdObjs"/>
|
<UnitName Value="IdObjs"/>
|
||||||
<CursorPos X="3" Y="94"/>
|
<CursorPos X="3" Y="94"/>
|
||||||
<TopLine Value="78"/>
|
<TopLine Value="78"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit69>
|
</Unit69>
|
||||||
<Unit70>
|
<Unit70>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/Core/IdSocketHandle.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Core\IdSocketHandle.pas"/>
|
||||||
<UnitName Value="IdSocketHandle"/>
|
<UnitName Value="IdSocketHandle"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit70>
|
</Unit70>
|
||||||
<Unit71>
|
<Unit71>
|
||||||
<Filename Value="../../../../../../lazarus_23_215XX/others_package/indy/indy-10.2.0.1/fpc/System/IdStack.pas"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\System\IdStack.pas"/>
|
||||||
<UnitName Value="IdStack"/>
|
<UnitName Value="IdStack"/>
|
||||||
<CursorPos X="14" Y="200"/>
|
<CursorPos X="14" Y="200"/>
|
||||||
<TopLine Value="176"/>
|
<TopLine Value="176"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit71>
|
</Unit71>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="3" HistoryIndex="2">
|
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||||
<Position1>
|
|
||||||
<Filename Value="http_server.pas"/>
|
|
||||||
<Caret Line="12" Column="56" TopLine="1"/>
|
|
||||||
</Position1>
|
|
||||||
<Position2>
|
|
||||||
<Filename Value="../user_service_intf_imp.pas"/>
|
|
||||||
<Caret Line="51" Column="60" TopLine="32"/>
|
|
||||||
</Position2>
|
|
||||||
<Position3>
|
|
||||||
<Filename Value="../../config_objects.pas"/>
|
|
||||||
<Caret Line="99" Column="60" TopLine="76"/>
|
|
||||||
</Position3>
|
|
||||||
</JumpHistory>
|
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="5"/>
|
<Version Value="5"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
<Target>
|
<Target>
|
||||||
<Filename Value="http_server"/>
|
<Filename Value="http_server"/>
|
||||||
</Target>
|
</Target>
|
||||||
<SearchPaths>
|
<SearchPaths>
|
||||||
<IncludeFiles Value="../../;$(LazarusDir)/others_package/indy/indy-10.2.0.1/fpc/Inc/"/>
|
<IncludeFiles Value="..\..\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
|
||||||
<OtherUnitFiles Value="../;../../;../../wst_rtti_filter/;$(LazarusDir)/others_package/indy/indy-10.2.0.1/fpc/Core/;$(LazarusDir)/others_package/indy/indy-10.2.0.1/fpc/Protocols/;$(LazarusDir)/others_package/indy/indy-10.2.0.1/fpc/System/;$(LazarusDir)/others_package/indy/indy-10.2.0.1/fpc/Inc/"/>
|
<OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Core\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Protocols\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\System\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
|
||||||
<UnitOutputDirectory Value="obj"/>
|
<UnitOutputDirectory Value="obj"/>
|
||||||
<SrcPath Value="$(LazarusDir)/others_package/indy/indy-10.2.0.1/fpc/Core/;$(LazarusDir)/others_package/indy/indy-10.2.0.1/fpc/Protocols/;$(LazarusDir)/others_package/indy/indy-10.2.0.1/fpc/System/;$(LazarusDir)/others_package/indy/indy-10.2.0.1/fpc/Inc/"/>
|
<SrcPath Value="$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Core\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Protocols\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\System\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
|
||||||
</SearchPaths>
|
</SearchPaths>
|
||||||
<Parsing>
|
<Parsing>
|
||||||
<SyntaxOptions>
|
<SyntaxOptions>
|
||||||
@ -605,19 +594,19 @@
|
|||||||
<Debugging>
|
<Debugging>
|
||||||
<BreakPoints Count="4">
|
<BreakPoints Count="4">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Source Value="D:/lazarusClean/fpcsrc/rtl/inc/getopts.pp"/>
|
<Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||||
<Line Value="230"/>
|
<Line Value="230"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
<Item2>
|
<Item2>
|
||||||
<Source Value="D:/lazarusClean/fpcsrc/rtl/inc/getopts.pp"/>
|
<Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||||
<Line Value="193"/>
|
<Line Value="193"/>
|
||||||
</Item2>
|
</Item2>
|
||||||
<Item3>
|
<Item3>
|
||||||
<Source Value="D:/lazarusClean/fpcsrc/rtl/inc/getopts.pp"/>
|
<Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||||
<Line Value="198"/>
|
<Line Value="198"/>
|
||||||
</Item3>
|
</Item3>
|
||||||
<Item4>
|
<Item4>
|
||||||
<Source Value="../../ws_helper/wsdl2pas_imp.pas"/>
|
<Source Value="..\..\ws_helper\wsdl2pas_imp.pas"/>
|
||||||
<Line Value="606"/>
|
<Line Value="606"/>
|
||||||
</Item4>
|
</Item4>
|
||||||
</BreakPoints>
|
</BreakPoints>
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<CONFIG>
|
<CONFIG>
|
||||||
<ProjectOptions>
|
<ProjectOptions>
|
||||||
<PathDelim Value="/"/>
|
<PathDelim Value="\"/>
|
||||||
<Version Value="5"/>
|
<Version Value="5"/>
|
||||||
<General>
|
<General>
|
||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<IconPath Value="./"/>
|
<IconPath Value=".\"/>
|
||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<ActiveEditorIndexAtStart Value="4"/>
|
<ActiveEditorIndexAtStart Value="4"/>
|
||||||
</General>
|
</General>
|
||||||
@ -14,6 +14,7 @@
|
|||||||
</VersionInfo>
|
</VersionInfo>
|
||||||
<PublishOptions>
|
<PublishOptions>
|
||||||
<Version Value="2"/>
|
<Version Value="2"/>
|
||||||
|
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
|
||||||
<IgnoreBinaries Value="False"/>
|
<IgnoreBinaries Value="False"/>
|
||||||
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||||
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||||
@ -21,7 +22,7 @@
|
|||||||
<RunParams>
|
<RunParams>
|
||||||
<local>
|
<local>
|
||||||
<FormatVersion Value="1"/>
|
<FormatVersion Value="1"/>
|
||||||
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||||
</local>
|
</local>
|
||||||
</RunParams>
|
</RunParams>
|
||||||
<Units Count="9">
|
<Units Count="9">
|
||||||
@ -36,7 +37,7 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
<Filename Value="../../library_server_intf.pas"/>
|
<Filename Value="..\..\library_server_intf.pas"/>
|
||||||
<UnitName Value="library_server_intf"/>
|
<UnitName Value="library_server_intf"/>
|
||||||
<CursorPos X="32" Y="91"/>
|
<CursorPos X="32" Y="91"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
@ -45,25 +46,25 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="../user_service_intf_imp.pas"/>
|
<Filename Value="..\user_service_intf_imp.pas"/>
|
||||||
<UnitName Value="user_service_intf_imp"/>
|
<UnitName Value="user_service_intf_imp"/>
|
||||||
<CursorPos X="43" Y="179"/>
|
<CursorPos X="43" Y="179"/>
|
||||||
<TopLine Value="157"/>
|
<TopLine Value="157"/>
|
||||||
<EditorIndex Value="6"/>
|
<EditorIndex Value="5"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit2>
|
</Unit2>
|
||||||
<Unit3>
|
<Unit3>
|
||||||
<Filename Value="../../wst_rtti_filter/rtti_filters.pas"/>
|
<Filename Value="..\..\wst_rtti_filter\rtti_filters.pas"/>
|
||||||
<UnitName Value="rtti_filters"/>
|
<UnitName Value="rtti_filters"/>
|
||||||
<CursorPos X="53" Y="43"/>
|
<CursorPos X="53" Y="43"/>
|
||||||
<TopLine Value="184"/>
|
<TopLine Value="184"/>
|
||||||
<EditorIndex Value="8"/>
|
<EditorIndex Value="7"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit3>
|
</Unit3>
|
||||||
<Unit4>
|
<Unit4>
|
||||||
<Filename Value="../user_service_intf_binder.pas"/>
|
<Filename Value="..\user_service_intf_binder.pas"/>
|
||||||
<UnitName Value="user_service_intf_binder"/>
|
<UnitName Value="user_service_intf_binder"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="64"/>
|
<TopLine Value="64"/>
|
||||||
@ -72,25 +73,25 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
<Unit5>
|
<Unit5>
|
||||||
<Filename Value="../../base_service_intf.pas"/>
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
<UnitName Value="base_service_intf"/>
|
<UnitName Value="base_service_intf"/>
|
||||||
<CursorPos X="52" Y="4125"/>
|
<CursorPos X="52" Y="4125"/>
|
||||||
<TopLine Value="4118"/>
|
<TopLine Value="4118"/>
|
||||||
<EditorIndex Value="7"/>
|
<EditorIndex Value="6"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit5>
|
</Unit5>
|
||||||
<Unit6>
|
<Unit6>
|
||||||
<Filename Value="../../semaphore.pas"/>
|
<Filename Value="..\..\semaphore.pas"/>
|
||||||
<UnitName Value="semaphore"/>
|
<UnitName Value="semaphore"/>
|
||||||
<CursorPos X="1" Y="140"/>
|
<CursorPos X="1" Y="140"/>
|
||||||
<TopLine Value="116"/>
|
<TopLine Value="111"/>
|
||||||
<EditorIndex Value="4"/>
|
<EditorIndex Value="4"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="13"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit6>
|
</Unit6>
|
||||||
<Unit7>
|
<Unit7>
|
||||||
<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="2" Y="13"/>
|
<CursorPos X="2" Y="13"/>
|
||||||
<TopLine Value="34"/>
|
<TopLine Value="34"/>
|
||||||
@ -99,30 +100,24 @@
|
|||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit7>
|
</Unit7>
|
||||||
<Unit8>
|
<Unit8>
|
||||||
<Filename Value="../../../../lazarus/lazarus/others_package/indy/indy-10.2.0.1/lazarus/IdDsnCoreResourceStrings.pas"/>
|
<Filename Value="..\..\..\..\lazarus\lazarus\others_package\indy\indy-10.2.0.1\lazarus\IdDsnCoreResourceStrings.pas"/>
|
||||||
<UnitName Value="IdDsnCoreResourceStrings"/>
|
<UnitName Value="IdDsnCoreResourceStrings"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="5"/>
|
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit8>
|
</Unit8>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="1" HistoryIndex="0">
|
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||||
<Position1>
|
|
||||||
<Filename Value="../../semaphore.pas"/>
|
|
||||||
<Caret Line="140" Column="1" TopLine="113"/>
|
|
||||||
</Position1>
|
|
||||||
</JumpHistory>
|
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="5"/>
|
<Version Value="5"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
<Target>
|
<Target>
|
||||||
<Filename Value="lib_server.dll"/>
|
<Filename Value="lib_server.dll"/>
|
||||||
</Target>
|
</Target>
|
||||||
<SearchPaths>
|
<SearchPaths>
|
||||||
<IncludeFiles Value="../../"/>
|
<IncludeFiles Value="..\..\"/>
|
||||||
<OtherUnitFiles Value="../;../../;../../wst_rtti_filter/"/>
|
<OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\"/>
|
||||||
<UnitOutputDirectory Value="obj"/>
|
<UnitOutputDirectory Value="obj"/>
|
||||||
</SearchPaths>
|
</SearchPaths>
|
||||||
<CodeGeneration>
|
<CodeGeneration>
|
||||||
@ -144,19 +139,19 @@
|
|||||||
<Debugging>
|
<Debugging>
|
||||||
<BreakPoints Count="4">
|
<BreakPoints Count="4">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Source Value="D:/lazarusClean/fpcsrc/rtl/inc/getopts.pp"/>
|
<Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||||
<Line Value="230"/>
|
<Line Value="230"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
<Item2>
|
<Item2>
|
||||||
<Source Value="D:/lazarusClean/fpcsrc/rtl/inc/getopts.pp"/>
|
<Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||||
<Line Value="193"/>
|
<Line Value="193"/>
|
||||||
</Item2>
|
</Item2>
|
||||||
<Item3>
|
<Item3>
|
||||||
<Source Value="D:/lazarusClean/fpcsrc/rtl/inc/getopts.pp"/>
|
<Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||||
<Line Value="198"/>
|
<Line Value="198"/>
|
||||||
</Item3>
|
</Item3>
|
||||||
<Item4>
|
<Item4>
|
||||||
<Source Value="../../ws_helper/wsdl2pas_imp.pas"/>
|
<Source Value="..\..\ws_helper\wsdl2pas_imp.pas"/>
|
||||||
<Line Value="606"/>
|
<Line Value="606"/>
|
||||||
</Item4>
|
</Item4>
|
||||||
</BreakPoints>
|
</BreakPoints>
|
||||||
|
@ -35,8 +35,8 @@
|
|||||||
<Filename Value="user_client_console.pas"/>
|
<Filename Value="user_client_console.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="user_client_console"/>
|
<UnitName Value="user_client_console"/>
|
||||||
<CursorPos X="14" Y="269"/>
|
<CursorPos X="111" Y="8"/>
|
||||||
<TopLine Value="252"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<UsageCount Value="76"/>
|
<UsageCount Value="76"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -46,16 +46,16 @@
|
|||||||
<UnitName Value="user_service_intf_proxy"/>
|
<UnitName Value="user_service_intf_proxy"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="4"/>
|
||||||
<UsageCount Value="30"/>
|
<UsageCount Value="30"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="..\..\synapse_tcp_protocol.pas"/>
|
<Filename Value="..\..\synapse_tcp_protocol.pas"/>
|
||||||
<UnitName Value="synapse_tcp_protocol"/>
|
<UnitName Value="synapse_tcp_protocol"/>
|
||||||
<CursorPos X="17" Y="29"/>
|
<CursorPos X="1" Y="23"/>
|
||||||
<TopLine Value="16"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="14"/>
|
<EditorIndex Value="12"/>
|
||||||
<UsageCount Value="37"/>
|
<UsageCount Value="37"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit2>
|
</Unit2>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
<UnitName Value="service_intf"/>
|
<UnitName Value="service_intf"/>
|
||||||
<CursorPos X="51" Y="34"/>
|
<CursorPos X="51" Y="34"/>
|
||||||
<TopLine Value="21"/>
|
<TopLine Value="21"/>
|
||||||
<EditorIndex Value="11"/>
|
<EditorIndex Value="10"/>
|
||||||
<UsageCount Value="33"/>
|
<UsageCount Value="33"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit3>
|
</Unit3>
|
||||||
@ -73,7 +73,7 @@
|
|||||||
<UnitName Value="user_service_intf"/>
|
<UnitName Value="user_service_intf"/>
|
||||||
<CursorPos X="53" Y="11"/>
|
<CursorPos X="53" Y="11"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="4"/>
|
<EditorIndex Value="5"/>
|
||||||
<UsageCount Value="29"/>
|
<UsageCount Value="29"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
@ -94,9 +94,9 @@
|
|||||||
<Unit7>
|
<Unit7>
|
||||||
<Filename Value="..\..\library_protocol.pas"/>
|
<Filename Value="..\..\library_protocol.pas"/>
|
||||||
<UnitName Value="library_protocol"/>
|
<UnitName Value="library_protocol"/>
|
||||||
<CursorPos X="57" Y="57"/>
|
<CursorPos X="1" Y="24"/>
|
||||||
<TopLine Value="2"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="10"/>
|
<EditorIndex Value="2"/>
|
||||||
<UsageCount Value="25"/>
|
<UsageCount Value="25"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit7>
|
</Unit7>
|
||||||
@ -140,8 +140,8 @@
|
|||||||
<Unit14>
|
<Unit14>
|
||||||
<Filename Value="..\..\synapse_http_protocol.pas"/>
|
<Filename Value="..\..\synapse_http_protocol.pas"/>
|
||||||
<UnitName Value="synapse_http_protocol"/>
|
<UnitName Value="synapse_http_protocol"/>
|
||||||
<CursorPos X="15" Y="59"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="45"/>
|
<TopLine Value="13"/>
|
||||||
<EditorIndex Value="9"/>
|
<EditorIndex Value="9"/>
|
||||||
<UsageCount Value="19"/>
|
<UsageCount Value="19"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -177,7 +177,7 @@
|
|||||||
<UnitName Value="semaphore"/>
|
<UnitName Value="semaphore"/>
|
||||||
<CursorPos X="1" Y="140"/>
|
<CursorPos X="1" Y="140"/>
|
||||||
<TopLine Value="111"/>
|
<TopLine Value="111"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="3"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit19>
|
</Unit19>
|
||||||
@ -186,9 +186,7 @@
|
|||||||
<UnitName Value="soap_formatter"/>
|
<UnitName Value="soap_formatter"/>
|
||||||
<CursorPos X="3" Y="232"/>
|
<CursorPos X="3" Y="232"/>
|
||||||
<TopLine Value="221"/>
|
<TopLine Value="221"/>
|
||||||
<EditorIndex Value="8"/>
|
|
||||||
<UsageCount Value="22"/>
|
<UsageCount Value="22"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit20>
|
</Unit20>
|
||||||
<Unit21>
|
<Unit21>
|
||||||
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
||||||
@ -203,7 +201,7 @@
|
|||||||
<UnitName Value="binary_formatter"/>
|
<UnitName Value="binary_formatter"/>
|
||||||
<CursorPos X="20" Y="21"/>
|
<CursorPos X="20" Y="21"/>
|
||||||
<TopLine Value="12"/>
|
<TopLine Value="12"/>
|
||||||
<EditorIndex Value="12"/>
|
<EditorIndex Value="11"/>
|
||||||
<UsageCount Value="30"/>
|
<UsageCount Value="30"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit22>
|
</Unit22>
|
||||||
@ -266,9 +264,7 @@
|
|||||||
<UnitName Value="wst_fpc_xml"/>
|
<UnitName Value="wst_fpc_xml"/>
|
||||||
<CursorPos X="34" Y="67"/>
|
<CursorPos X="34" Y="67"/>
|
||||||
<TopLine Value="42"/>
|
<TopLine Value="42"/>
|
||||||
<EditorIndex Value="13"/>
|
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="20"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit31>
|
</Unit31>
|
||||||
<Unit32>
|
<Unit32>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/>
|
||||||
@ -310,7 +306,7 @@
|
|||||||
<UnitName Value="indy_http_protocol"/>
|
<UnitName Value="indy_http_protocol"/>
|
||||||
<CursorPos X="1" Y="16"/>
|
<CursorPos X="1" Y="16"/>
|
||||||
<TopLine Value="109"/>
|
<TopLine Value="109"/>
|
||||||
<EditorIndex Value="7"/>
|
<EditorIndex Value="8"/>
|
||||||
<UsageCount Value="15"/>
|
<UsageCount Value="15"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit37>
|
</Unit37>
|
||||||
@ -324,25 +320,27 @@
|
|||||||
<Unit39>
|
<Unit39>
|
||||||
<Filename Value="..\..\ics_tcp_protocol.pas"/>
|
<Filename Value="..\..\ics_tcp_protocol.pas"/>
|
||||||
<UnitName Value="ics_tcp_protocol"/>
|
<UnitName Value="ics_tcp_protocol"/>
|
||||||
<CursorPos X="1" Y="31"/>
|
<CursorPos X="1" Y="22"/>
|
||||||
<TopLine Value="18"/>
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="1"/>
|
||||||
<UsageCount Value="14"/>
|
<UsageCount Value="14"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
</Unit39>
|
</Unit39>
|
||||||
<Unit40>
|
<Unit40>
|
||||||
<Filename Value="..\..\ics_http_protocol.pas"/>
|
<Filename Value="..\..\ics_http_protocol.pas"/>
|
||||||
<UnitName Value="ics_http_protocol"/>
|
<UnitName Value="ics_http_protocol"/>
|
||||||
<CursorPos X="55" Y="72"/>
|
<CursorPos X="1" Y="25"/>
|
||||||
<TopLine Value="128"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="6"/>
|
<EditorIndex Value="7"/>
|
||||||
<UsageCount Value="14"/>
|
<UsageCount Value="14"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit40>
|
</Unit40>
|
||||||
<Unit41>
|
<Unit41>
|
||||||
<Filename Value="..\..\same_process_protocol.pas"/>
|
<Filename Value="..\..\same_process_protocol.pas"/>
|
||||||
<UnitName Value="same_process_protocol"/>
|
<UnitName Value="same_process_protocol"/>
|
||||||
<CursorPos X="77" Y="83"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="31"/>
|
<TopLine Value="13"/>
|
||||||
<EditorIndex Value="5"/>
|
<EditorIndex Value="6"/>
|
||||||
<UsageCount Value="14"/>
|
<UsageCount Value="14"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit41>
|
</Unit41>
|
||||||
@ -354,12 +352,19 @@
|
|||||||
<UnitName Value="ubindingedit"/>
|
<UnitName Value="ubindingedit"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="3"/>
|
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit42>
|
</Unit42>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
<JumpHistory Count="2" 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"/>
|
||||||
|
@ -5,7 +5,7 @@ program user_client_console;
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, TypInfo, {$IFDEF WINDOWS}ActiveX,{$ENDIF}
|
Classes, SysUtils, TypInfo, {$IFDEF WINDOWS}ActiveX,{$ENDIF}
|
||||||
user_service_intf_proxy,
|
user_service_intf_proxy,
|
||||||
same_process_protocol, synapse_tcp_protocol, synapse_http_protocol, library_protocol, //ics_tcp_protocol, ics_http_protocol,
|
same_process_protocol, synapse_tcp_protocol, synapse_http_protocol, library_protocol, ics_tcp_protocol, ics_http_protocol,
|
||||||
soap_formatter, binary_formatter,
|
soap_formatter, binary_formatter,
|
||||||
user_service_intf, xmlrpc_formatter;
|
user_service_intf, xmlrpc_formatter;
|
||||||
|
|
||||||
|
@ -18,9 +18,6 @@ interface
|
|||||||
uses
|
uses
|
||||||
Classes, SysUtils, syncobjs{$IFNDEF FPC},Windows{$ENDIF};
|
Classes, SysUtils, syncobjs{$IFNDEF FPC},Windows{$ENDIF};
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
ESemaphoreException = class(Exception);
|
ESemaphoreException = class(Exception);
|
||||||
|
@ -22,9 +22,6 @@ uses
|
|||||||
service_intf, imp_utils, base_service_intf,
|
service_intf, imp_utils, base_service_intf,
|
||||||
httpsend;
|
httpsend;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
Const
|
Const
|
||||||
sTRANSPORT_NAME = 'HTTP';
|
sTRANSPORT_NAME = 'HTTP';
|
||||||
|
|
||||||
@ -157,6 +154,14 @@ end;
|
|||||||
|
|
||||||
procedure THTTPTransport.SendAndReceive(ARequest, AResponse: TStream);
|
procedure THTTPTransport.SendAndReceive(ARequest, AResponse: TStream);
|
||||||
{$IFDEF WST_DBG}
|
{$IFDEF WST_DBG}
|
||||||
|
procedure Display(const AStr : string);
|
||||||
|
begin
|
||||||
|
if IsConsole then
|
||||||
|
WriteLn(AStr)
|
||||||
|
{else
|
||||||
|
ShowMessage(AStr)};
|
||||||
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
s : string;
|
s : string;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -169,13 +174,13 @@ begin
|
|||||||
FConnection.Clear();
|
FConnection.Clear();
|
||||||
{$IFDEF WST_DBG}
|
{$IFDEF WST_DBG}
|
||||||
TMemoryStream(ARequest).SaveToFile('request.log');
|
TMemoryStream(ARequest).SaveToFile('request.log');
|
||||||
|
SetLength(s,ARequest.Size);
|
||||||
|
Move(TMemoryStream(ARequest).Memory^,s[1],Length(s));
|
||||||
|
Display(s);
|
||||||
SetLength(s,AResponse.Size);
|
SetLength(s,AResponse.Size);
|
||||||
Move(TMemoryStream(AResponse).Memory^,s[1],Length(s));
|
Move(TMemoryStream(AResponse).Memory^,s[1],Length(s));
|
||||||
TMemoryStream(AResponse).SaveToFile('response.log');
|
TMemoryStream(AResponse).SaveToFile('response.log');
|
||||||
if IsConsole then
|
Display(s);
|
||||||
WriteLn(s)
|
|
||||||
{else
|
|
||||||
ShowMessage(s)};
|
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -20,10 +20,7 @@ uses
|
|||||||
service_intf, imp_utils, base_service_intf,
|
service_intf, imp_utils, base_service_intf,
|
||||||
blcksock;
|
blcksock;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
//{$DEFINE WST_DBG}
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
{$DEFINE WST_DBG}
|
|
||||||
|
|
||||||
Const
|
Const
|
||||||
sTRANSPORT_NAME = 'TCP';
|
sTRANSPORT_NAME = 'TCP';
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
GetWSTResourceManager().AddResource('CALCULATOR',
|
GetWSTResourceManager().AddResource('CALCULATOR',
|
||||||
#0#0#0#20'WST_METADATA_0.2.2.0'#0#0#0#10'calculator'#1#0#0#0#11'ICalculator'#4
|
#0#0#0#20'WST_METADATA_0.2.2.0'#0#0#0#10'calculator'#1#0#0#0#11'ICalculator'#4
|
||||||
+#0#0#0#6'AddInt'#3#0#0#0#1'A'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#1'B'#0#0
|
+#0#0#0#6'AddInt'#3#0#0#0#1'A'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#1'B'#0#0
|
||||||
+#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#6'result'#0#0#0#17'TBinaryArgsResult'#0#0
|
+#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#6'Result'#0#0#0#17'TBinaryArgsResult'#0#0
|
||||||
+#0#0#0#0#0#3#0#0#0#6'DivInt'#3#0#0#0#1'A'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0
|
+#0#0#0#0#0#3#0#0#0#6'DivInt'#3#0#0#0#1'A'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0
|
||||||
+#0#0#1'B'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#6'result'#0#0#0#7'Integer'#0
|
+#0#0#1'B'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#6'Result'#0#0#0#7'Integer'#0
|
||||||
+#0#0#0#0#0#0#3#0#0#0#15'DoAllOperations'#3#0#0#0#1'A'#0#0#0#7'Integer'#0#0#0
|
+#0#0#0#0#0#0#3#0#0#0#15'DoAllOperations'#3#0#0#0#1'A'#0#0#0#7'Integer'#0#0#0
|
||||||
+#0#0#0#0#1#0#0#0#1'B'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#6'result'#0#0#0
|
+#0#0#0#0#1#0#0#0#1'B'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#6'Result'#0#0#0
|
||||||
+#22'TBinaryArgsResultArray'#0#0#0#0#0#0#0#3#0#0#0#11'DoOperation'#4#0#0#0#1'A'
|
+#22'TBinaryArgsResultArray'#0#0#0#0#0#0#0#3#0#0#0#11'DoOperation'#4#0#0#0#1'A'
|
||||||
+#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#1'B'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1
|
+#0#0#0#7'Integer'#0#0#0#0#0#0#0#1#0#0#0#1'B'#0#0#0#7'Integer'#0#0#0#0#0#0#0#1
|
||||||
+#0#0#0#10'AOperation'#0#0#0#8'TCalc_Op'#0#0#0#0#0#0#0#1#0#0#0#6'result'#0#0#0
|
+#0#0#0#10'AOperation'#0#0#0#8'TCalc_Op'#0#0#0#0#0#0#0#1#0#0#0#6'Result'#0#0#0
|
||||||
+#17'TBinaryArgsResult'#0#0#0#0#0#0#0#3''
|
+#17'TBinaryArgsResult'#0#0#0#0#0#0#0#3''
|
||||||
);
|
);
|
@ -2,10 +2,10 @@
|
|||||||
This unit has been produced by ws_helper.
|
This unit has been produced by ws_helper.
|
||||||
Input unit name : "calculator".
|
Input unit name : "calculator".
|
||||||
This unit name : "calculator_binder".
|
This unit name : "calculator_binder".
|
||||||
Date : "12/11/2006 11:22".
|
Date : "15/08/2007 16:34:20".
|
||||||
}
|
}
|
||||||
unit calculator_binder;
|
unit calculator_binder;
|
||||||
{$mode objfpc}{$H+}
|
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses SysUtils, Classes, base_service_intf, server_service_intf, calculator;
|
uses SysUtils, Classes, base_service_intf, server_service_intf, calculator;
|
||||||
@ -13,20 +13,25 @@ uses SysUtils, Classes, base_service_intf, server_service_intf, calculator;
|
|||||||
type
|
type
|
||||||
|
|
||||||
|
|
||||||
TCalculator_ServiceBinder=class(TBaseServiceBinder)
|
TCalculator_ServiceBinder = class(TBaseServiceBinder)
|
||||||
Protected
|
protected
|
||||||
procedure AddIntHandler(AFormatter:IFormatterResponse);
|
procedure AddIntHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
procedure DivIntHandler(AFormatter:IFormatterResponse);
|
procedure DivIntHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
procedure DoAllOperationsHandler(AFormatter:IFormatterResponse);
|
procedure DoAllOperationsHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
procedure DoOperationHandler(AFormatter:IFormatterResponse);
|
procedure DoOperationHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
Public
|
public
|
||||||
constructor Create();
|
constructor Create();
|
||||||
End;
|
end;
|
||||||
|
|
||||||
TCalculator_ServiceBinderFactory = class(TInterfacedObject,IItemFactory)
|
TCalculator_ServiceBinderFactory = class(TInterfacedObject,IItemFactory)
|
||||||
|
private
|
||||||
|
FInstance : IInterface;
|
||||||
protected
|
protected
|
||||||
function CreateInstance():IInterface;
|
function CreateInstance():IInterface;
|
||||||
End;
|
public
|
||||||
|
constructor Create();
|
||||||
|
destructor Destroy();override;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure Server_service_RegisterCalculatorService();
|
procedure Server_service_RegisterCalculatorService();
|
||||||
|
|
||||||
@ -34,9 +39,11 @@ Implementation
|
|||||||
uses TypInfo, wst_resources_imp,metadata_repository;
|
uses TypInfo, wst_resources_imp,metadata_repository;
|
||||||
|
|
||||||
{ TCalculator_ServiceBinder implementation }
|
{ TCalculator_ServiceBinder implementation }
|
||||||
procedure TCalculator_ServiceBinder.AddIntHandler(AFormatter:IFormatterResponse);
|
procedure TCalculator_ServiceBinder.AddIntHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
Var
|
var
|
||||||
cllCntrl : ICallControl;
|
cllCntrl : ICallControl;
|
||||||
|
objCntrl : IObjectControl;
|
||||||
|
hasObjCntrl : Boolean;
|
||||||
tmpObj : ICalculator;
|
tmpObj : ICalculator;
|
||||||
callCtx : ICallContext;
|
callCtx : ICallContext;
|
||||||
strPrmName : string;
|
strPrmName : string;
|
||||||
@ -44,34 +51,44 @@ Var
|
|||||||
A : Integer;
|
A : Integer;
|
||||||
B : Integer;
|
B : Integer;
|
||||||
returnVal : TBinaryArgsResult;
|
returnVal : TBinaryArgsResult;
|
||||||
Begin
|
begin
|
||||||
callCtx := GetCallContext();
|
callCtx := AContext;
|
||||||
Pointer(returnVal) := Nil;
|
TObject(returnVal) := nil;
|
||||||
|
|
||||||
strPrmName := 'A'; AFormatter.Get(TypeInfo(Integer),strPrmName,A);
|
strPrmName := 'A'; AFormatter.Get(TypeInfo(Integer),strPrmName,A);
|
||||||
strPrmName := 'B'; AFormatter.Get(TypeInfo(Integer),strPrmName,B);
|
strPrmName := 'B'; AFormatter.Get(TypeInfo(Integer),strPrmName,B);
|
||||||
|
|
||||||
tmpObj := Self.GetFactory().CreateInstance() as ICalculator;
|
tmpObj := Self.GetFactory().CreateInstance() as ICalculator;
|
||||||
if Supports(tmpObj,ICallControl,cllCntrl) then
|
if Supports(tmpObj,ICallControl,cllCntrl) then
|
||||||
cllCntrl.SetCallContext(GetCallContext());
|
cllCntrl.SetCallContext(callCtx);
|
||||||
|
hasObjCntrl := Supports(tmpObj,IObjectControl,objCntrl);
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Activate();
|
||||||
|
try
|
||||||
returnVal := tmpObj.AddInt(A,B);
|
returnVal := tmpObj.AddInt(A,B);
|
||||||
If Assigned(Pointer(returnVal)) Then
|
if Assigned(TObject(returnVal)) then
|
||||||
callCtx.AddObjectToFree(TObject(returnVal));
|
callCtx.AddObjectToFree(TObject(returnVal));
|
||||||
|
|
||||||
procName := AFormatter.GetCallProcedureName();
|
procName := AFormatter.GetCallProcedureName();
|
||||||
trgName := AFormatter.GetCallTarget();
|
trgName := AFormatter.GetCallTarget();
|
||||||
AFormatter.Clear();
|
AFormatter.Clear();
|
||||||
AFormatter.BeginCallResponse(procName,trgName);
|
AFormatter.BeginCallResponse(procName,trgName);
|
||||||
AFormatter.Put('return',TypeInfo(TBinaryArgsResult),returnVal);
|
AFormatter.Put('Result',TypeInfo(TBinaryArgsResult),returnVal);
|
||||||
AFormatter.EndCallResponse();
|
AFormatter.EndCallResponse();
|
||||||
|
|
||||||
callCtx := Nil;
|
callCtx := nil;
|
||||||
End;
|
finally
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Deactivate();
|
||||||
|
Self.GetFactory().ReleaseInstance(tmpObj);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCalculator_ServiceBinder.DivIntHandler(AFormatter:IFormatterResponse);
|
procedure TCalculator_ServiceBinder.DivIntHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
Var
|
var
|
||||||
cllCntrl : ICallControl;
|
cllCntrl : ICallControl;
|
||||||
|
objCntrl : IObjectControl;
|
||||||
|
hasObjCntrl : Boolean;
|
||||||
tmpObj : ICalculator;
|
tmpObj : ICalculator;
|
||||||
callCtx : ICallContext;
|
callCtx : ICallContext;
|
||||||
strPrmName : string;
|
strPrmName : string;
|
||||||
@ -79,31 +96,41 @@ Var
|
|||||||
A : Integer;
|
A : Integer;
|
||||||
B : Integer;
|
B : Integer;
|
||||||
returnVal : Integer;
|
returnVal : Integer;
|
||||||
Begin
|
begin
|
||||||
callCtx := GetCallContext();
|
callCtx := AContext;
|
||||||
|
|
||||||
strPrmName := 'A'; AFormatter.Get(TypeInfo(Integer),strPrmName,A);
|
strPrmName := 'A'; AFormatter.Get(TypeInfo(Integer),strPrmName,A);
|
||||||
strPrmName := 'B'; AFormatter.Get(TypeInfo(Integer),strPrmName,B);
|
strPrmName := 'B'; AFormatter.Get(TypeInfo(Integer),strPrmName,B);
|
||||||
|
|
||||||
tmpObj := Self.GetFactory().CreateInstance() as ICalculator;
|
tmpObj := Self.GetFactory().CreateInstance() as ICalculator;
|
||||||
if Supports(tmpObj,ICallControl,cllCntrl) then
|
if Supports(tmpObj,ICallControl,cllCntrl) then
|
||||||
cllCntrl.SetCallContext(GetCallContext());
|
cllCntrl.SetCallContext(callCtx);
|
||||||
|
hasObjCntrl := Supports(tmpObj,IObjectControl,objCntrl);
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Activate();
|
||||||
|
try
|
||||||
returnVal := tmpObj.DivInt(A,B);
|
returnVal := tmpObj.DivInt(A,B);
|
||||||
|
|
||||||
procName := AFormatter.GetCallProcedureName();
|
procName := AFormatter.GetCallProcedureName();
|
||||||
trgName := AFormatter.GetCallTarget();
|
trgName := AFormatter.GetCallTarget();
|
||||||
AFormatter.Clear();
|
AFormatter.Clear();
|
||||||
AFormatter.BeginCallResponse(procName,trgName);
|
AFormatter.BeginCallResponse(procName,trgName);
|
||||||
AFormatter.Put('return',TypeInfo(Integer),returnVal);
|
AFormatter.Put('Result',TypeInfo(Integer),returnVal);
|
||||||
AFormatter.EndCallResponse();
|
AFormatter.EndCallResponse();
|
||||||
|
|
||||||
callCtx := Nil;
|
callCtx := nil;
|
||||||
End;
|
finally
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Deactivate();
|
||||||
|
Self.GetFactory().ReleaseInstance(tmpObj);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCalculator_ServiceBinder.DoAllOperationsHandler(AFormatter:IFormatterResponse);
|
procedure TCalculator_ServiceBinder.DoAllOperationsHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
Var
|
var
|
||||||
cllCntrl : ICallControl;
|
cllCntrl : ICallControl;
|
||||||
|
objCntrl : IObjectControl;
|
||||||
|
hasObjCntrl : Boolean;
|
||||||
tmpObj : ICalculator;
|
tmpObj : ICalculator;
|
||||||
callCtx : ICallContext;
|
callCtx : ICallContext;
|
||||||
strPrmName : string;
|
strPrmName : string;
|
||||||
@ -111,34 +138,44 @@ Var
|
|||||||
A : Integer;
|
A : Integer;
|
||||||
B : Integer;
|
B : Integer;
|
||||||
returnVal : TBinaryArgsResultArray;
|
returnVal : TBinaryArgsResultArray;
|
||||||
Begin
|
begin
|
||||||
callCtx := GetCallContext();
|
callCtx := AContext;
|
||||||
Pointer(returnVal) := Nil;
|
TObject(returnVal) := nil;
|
||||||
|
|
||||||
strPrmName := 'A'; AFormatter.Get(TypeInfo(Integer),strPrmName,A);
|
strPrmName := 'A'; AFormatter.Get(TypeInfo(Integer),strPrmName,A);
|
||||||
strPrmName := 'B'; AFormatter.Get(TypeInfo(Integer),strPrmName,B);
|
strPrmName := 'B'; AFormatter.Get(TypeInfo(Integer),strPrmName,B);
|
||||||
|
|
||||||
tmpObj := Self.GetFactory().CreateInstance() as ICalculator;
|
tmpObj := Self.GetFactory().CreateInstance() as ICalculator;
|
||||||
if Supports(tmpObj,ICallControl,cllCntrl) then
|
if Supports(tmpObj,ICallControl,cllCntrl) then
|
||||||
cllCntrl.SetCallContext(GetCallContext());
|
cllCntrl.SetCallContext(callCtx);
|
||||||
|
hasObjCntrl := Supports(tmpObj,IObjectControl,objCntrl);
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Activate();
|
||||||
|
try
|
||||||
returnVal := tmpObj.DoAllOperations(A,B);
|
returnVal := tmpObj.DoAllOperations(A,B);
|
||||||
If Assigned(Pointer(returnVal)) Then
|
if Assigned(TObject(returnVal)) then
|
||||||
callCtx.AddObjectToFree(TObject(returnVal));
|
callCtx.AddObjectToFree(TObject(returnVal));
|
||||||
|
|
||||||
procName := AFormatter.GetCallProcedureName();
|
procName := AFormatter.GetCallProcedureName();
|
||||||
trgName := AFormatter.GetCallTarget();
|
trgName := AFormatter.GetCallTarget();
|
||||||
AFormatter.Clear();
|
AFormatter.Clear();
|
||||||
AFormatter.BeginCallResponse(procName,trgName);
|
AFormatter.BeginCallResponse(procName,trgName);
|
||||||
AFormatter.Put('return',TypeInfo(TBinaryArgsResultArray),returnVal);
|
AFormatter.Put('Result',TypeInfo(TBinaryArgsResultArray),returnVal);
|
||||||
AFormatter.EndCallResponse();
|
AFormatter.EndCallResponse();
|
||||||
|
|
||||||
callCtx := Nil;
|
callCtx := nil;
|
||||||
End;
|
finally
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Deactivate();
|
||||||
|
Self.GetFactory().ReleaseInstance(tmpObj);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCalculator_ServiceBinder.DoOperationHandler(AFormatter:IFormatterResponse);
|
procedure TCalculator_ServiceBinder.DoOperationHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
Var
|
var
|
||||||
cllCntrl : ICallControl;
|
cllCntrl : ICallControl;
|
||||||
|
objCntrl : IObjectControl;
|
||||||
|
hasObjCntrl : Boolean;
|
||||||
tmpObj : ICalculator;
|
tmpObj : ICalculator;
|
||||||
callCtx : ICallContext;
|
callCtx : ICallContext;
|
||||||
strPrmName : string;
|
strPrmName : string;
|
||||||
@ -147,9 +184,9 @@ Var
|
|||||||
B : Integer;
|
B : Integer;
|
||||||
AOperation : TCalc_Op;
|
AOperation : TCalc_Op;
|
||||||
returnVal : TBinaryArgsResult;
|
returnVal : TBinaryArgsResult;
|
||||||
Begin
|
begin
|
||||||
callCtx := GetCallContext();
|
callCtx := AContext;
|
||||||
Pointer(returnVal) := Nil;
|
TObject(returnVal) := nil;
|
||||||
|
|
||||||
strPrmName := 'A'; AFormatter.Get(TypeInfo(Integer),strPrmName,A);
|
strPrmName := 'A'; AFormatter.Get(TypeInfo(Integer),strPrmName,A);
|
||||||
strPrmName := 'B'; AFormatter.Get(TypeInfo(Integer),strPrmName,B);
|
strPrmName := 'B'; AFormatter.Get(TypeInfo(Integer),strPrmName,B);
|
||||||
@ -157,38 +194,58 @@ Begin
|
|||||||
|
|
||||||
tmpObj := Self.GetFactory().CreateInstance() as ICalculator;
|
tmpObj := Self.GetFactory().CreateInstance() as ICalculator;
|
||||||
if Supports(tmpObj,ICallControl,cllCntrl) then
|
if Supports(tmpObj,ICallControl,cllCntrl) then
|
||||||
cllCntrl.SetCallContext(GetCallContext());
|
cllCntrl.SetCallContext(callCtx);
|
||||||
|
hasObjCntrl := Supports(tmpObj,IObjectControl,objCntrl);
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Activate();
|
||||||
|
try
|
||||||
returnVal := tmpObj.DoOperation(A,B,AOperation);
|
returnVal := tmpObj.DoOperation(A,B,AOperation);
|
||||||
If Assigned(Pointer(returnVal)) Then
|
if Assigned(TObject(returnVal)) then
|
||||||
callCtx.AddObjectToFree(TObject(returnVal));
|
callCtx.AddObjectToFree(TObject(returnVal));
|
||||||
|
|
||||||
procName := AFormatter.GetCallProcedureName();
|
procName := AFormatter.GetCallProcedureName();
|
||||||
trgName := AFormatter.GetCallTarget();
|
trgName := AFormatter.GetCallTarget();
|
||||||
AFormatter.Clear();
|
AFormatter.Clear();
|
||||||
AFormatter.BeginCallResponse(procName,trgName);
|
AFormatter.BeginCallResponse(procName,trgName);
|
||||||
AFormatter.Put('return',TypeInfo(TBinaryArgsResult),returnVal);
|
AFormatter.Put('Result',TypeInfo(TBinaryArgsResult),returnVal);
|
||||||
AFormatter.EndCallResponse();
|
AFormatter.EndCallResponse();
|
||||||
|
|
||||||
callCtx := Nil;
|
callCtx := nil;
|
||||||
End;
|
finally
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Deactivate();
|
||||||
|
Self.GetFactory().ReleaseInstance(tmpObj);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
constructor TCalculator_ServiceBinder.Create();
|
constructor TCalculator_ServiceBinder.Create();
|
||||||
Begin
|
begin
|
||||||
Inherited Create(GetServiceImplementationRegistry().FindFactory('ICalculator'));
|
inherited Create(GetServiceImplementationRegistry().FindFactory('ICalculator'));
|
||||||
RegisterVerbHandler('AddInt',@AddIntHandler);
|
RegisterVerbHandler('AddInt',{$IFDEF FPC}@{$ENDIF}AddIntHandler);
|
||||||
RegisterVerbHandler('DivInt',@DivIntHandler);
|
RegisterVerbHandler('DivInt',{$IFDEF FPC}@{$ENDIF}DivIntHandler);
|
||||||
RegisterVerbHandler('DoAllOperations',@DoAllOperationsHandler);
|
RegisterVerbHandler('DoAllOperations',{$IFDEF FPC}@{$ENDIF}DoAllOperationsHandler);
|
||||||
RegisterVerbHandler('DoOperation',@DoOperationHandler);
|
RegisterVerbHandler('DoOperation',{$IFDEF FPC}@{$ENDIF}DoOperationHandler);
|
||||||
End;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ TCalculator_ServiceBinderFactory }
|
{ TCalculator_ServiceBinderFactory }
|
||||||
|
|
||||||
function TCalculator_ServiceBinderFactory.CreateInstance():IInterface;
|
function TCalculator_ServiceBinderFactory.CreateInstance():IInterface;
|
||||||
Begin
|
begin
|
||||||
Result := TCalculator_ServiceBinder.Create() as IInterface;
|
Result := FInstance;
|
||||||
End;
|
end;
|
||||||
|
|
||||||
|
constructor TCalculator_ServiceBinderFactory.Create();
|
||||||
|
begin
|
||||||
|
FInstance := TCalculator_ServiceBinder.Create() as IInterface;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TCalculator_ServiceBinderFactory.Destroy();
|
||||||
|
begin
|
||||||
|
FInstance := nil;
|
||||||
|
inherited Destroy();
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure Server_service_RegisterCalculatorService();
|
procedure Server_service_RegisterCalculatorService();
|
||||||
@ -198,10 +255,10 @@ End;
|
|||||||
|
|
||||||
initialization
|
initialization
|
||||||
|
|
||||||
{$IF DECLARED(Register_calculator_NameSpace)}
|
|
||||||
Register_calculator_NameSpace();
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
{$i calculator.wst}
|
{$i calculator.wst}
|
||||||
|
|
||||||
|
{$IF DECLARED(Register_calculator_ServiceMetadata)}
|
||||||
|
Register_calculator_ServiceMetadata();
|
||||||
|
{$IFEND}
|
||||||
|
|
||||||
End.
|
End.
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
This unit has been produced by ws_helper.
|
This unit has been produced by ws_helper.
|
||||||
Input unit name : "calculator".
|
Input unit name : "calculator".
|
||||||
This unit name : "calculator_imp".
|
This unit name : "calculator_imp".
|
||||||
Date : "02/07/2006 16:49".
|
Date : "15/08/2007 16:34:20".
|
||||||
}
|
}
|
||||||
Unit calculator_imp;
|
Unit calculator_imp;
|
||||||
{$mode objfpc}{$H+}
|
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
|
||||||
Interface
|
Interface
|
||||||
|
|
||||||
Uses SysUtils, Classes,
|
Uses SysUtils, Classes,
|
||||||
@ -17,21 +17,21 @@ Type
|
|||||||
TCalculator_ServiceImp=class(TBaseServiceImplementation,ICalculator)
|
TCalculator_ServiceImp=class(TBaseServiceImplementation,ICalculator)
|
||||||
Protected
|
Protected
|
||||||
function AddInt(
|
function AddInt(
|
||||||
Const A : Integer;
|
const A : Integer;
|
||||||
Const B : Integer
|
const B : Integer
|
||||||
):TBinaryArgsResult;
|
):TBinaryArgsResult;
|
||||||
function DivInt(
|
function DivInt(
|
||||||
Const A : Integer;
|
const A : Integer;
|
||||||
Const B : Integer
|
const B : Integer
|
||||||
):Integer;
|
):Integer;
|
||||||
function DoAllOperations(
|
function DoAllOperations(
|
||||||
Const A : Integer;
|
const A : Integer;
|
||||||
Const B : Integer
|
const B : Integer
|
||||||
):TBinaryArgsResultArray;
|
):TBinaryArgsResultArray;
|
||||||
function DoOperation(
|
function DoOperation(
|
||||||
Const A : Integer;
|
const A : Integer;
|
||||||
Const B : Integer;
|
const B : Integer;
|
||||||
Const AOperation : TCalc_Op
|
const AOperation : TCalc_Op
|
||||||
):TBinaryArgsResult;
|
):TBinaryArgsResult;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
@ -39,119 +39,47 @@ Type
|
|||||||
procedure RegisterCalculatorImplementationFactory();
|
procedure RegisterCalculatorImplementationFactory();
|
||||||
|
|
||||||
Implementation
|
Implementation
|
||||||
|
uses config_objects;
|
||||||
|
|
||||||
{ TCalculator_ServiceImp implementation }
|
{ TCalculator_ServiceImp implementation }
|
||||||
function TCalculator_ServiceImp.AddInt(
|
function TCalculator_ServiceImp.AddInt(
|
||||||
Const A : Integer;
|
const A : Integer;
|
||||||
Const B : Integer
|
const B : Integer
|
||||||
):TBinaryArgsResult;
|
):TBinaryArgsResult;
|
||||||
var
|
|
||||||
hdr : TCalcResultHeader;
|
|
||||||
h : TCalcHeader;
|
|
||||||
cc : ICallContext;
|
|
||||||
Begin
|
Begin
|
||||||
hdr := TCalcResultHeader.Create();
|
// your code here
|
||||||
cc := GetCallContext();
|
|
||||||
if Assigned(cc) and ( cc.GetHeaderCount([hdIn]) > 0 ) and ( cc.GetHeader(0).InheritsFrom(TCalcHeader) ) then begin
|
|
||||||
h := cc.GetHeader(0) as TCalcHeader;
|
|
||||||
h.Understood := True;
|
|
||||||
hdr.Assign(h);
|
|
||||||
end;
|
|
||||||
hdr.TimeStamp := DateTimeToStr(Now());
|
|
||||||
hdr.SessionID := 'testSession';
|
|
||||||
cc.AddHeader(hdr,True);
|
|
||||||
hdr := nil;
|
|
||||||
Result := TBinaryArgsResult.Create();
|
|
||||||
Try
|
|
||||||
Result.Arg_OP := '+';
|
|
||||||
Result.Arg_OpEnum := coAdd;
|
|
||||||
Result.Arg_A := A;
|
|
||||||
Result.Arg_B := B;
|
|
||||||
Result.Arg_R := A + B;
|
|
||||||
Result.Comment := 'Doing an + operation';
|
|
||||||
Except
|
|
||||||
FreeAndNil(Result);
|
|
||||||
Raise;
|
|
||||||
End;
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
function TCalculator_ServiceImp.DivInt(
|
function TCalculator_ServiceImp.DivInt(
|
||||||
Const A : Integer;
|
const A : Integer;
|
||||||
Const B : Integer
|
const B : Integer
|
||||||
):Integer;
|
):Integer;
|
||||||
Begin
|
Begin
|
||||||
Result := A div B;
|
// your code here
|
||||||
End;
|
End;
|
||||||
|
|
||||||
function TCalculator_ServiceImp.DoAllOperations(
|
function TCalculator_ServiceImp.DoAllOperations(
|
||||||
Const A : Integer;
|
const A : Integer;
|
||||||
Const B : Integer
|
const B : Integer
|
||||||
):TBinaryArgsResultArray;
|
):TBinaryArgsResultArray;
|
||||||
Begin
|
Begin
|
||||||
Result := TBinaryArgsResultArray.Create();
|
// your code here
|
||||||
Result.SetLength(4);
|
|
||||||
With Result[0] do Begin
|
|
||||||
Arg_A := A;
|
|
||||||
Arg_B := B;
|
|
||||||
Arg_OP := '-';
|
|
||||||
Arg_OpEnum := coSub;
|
|
||||||
Arg_R := Arg_A - Arg_B;
|
|
||||||
End;
|
|
||||||
With Result[1] do Begin
|
|
||||||
Arg_A := A;
|
|
||||||
Arg_B := B;
|
|
||||||
Arg_OP := '+';
|
|
||||||
Arg_OpEnum := coAdd;
|
|
||||||
Arg_R := Arg_A + Arg_B;
|
|
||||||
End;
|
|
||||||
With Result[2] do Begin
|
|
||||||
Arg_A := A;
|
|
||||||
Arg_B := B;
|
|
||||||
Arg_OP := '*';
|
|
||||||
Arg_OpEnum := coMul;
|
|
||||||
Arg_R := Arg_A * Arg_B;
|
|
||||||
End;
|
|
||||||
With Result[3] do Begin
|
|
||||||
Arg_A := A;
|
|
||||||
Arg_B := B;
|
|
||||||
Arg_OP := '/';
|
|
||||||
Arg_OpEnum := coDiv;
|
|
||||||
Arg_R := Arg_A div Arg_B;
|
|
||||||
End;
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
function TCalculator_ServiceImp.DoOperation(
|
function TCalculator_ServiceImp.DoOperation(
|
||||||
Const A : Integer;
|
const A : Integer;
|
||||||
Const B : Integer;
|
const B : Integer;
|
||||||
Const AOperation : TCalc_Op
|
const AOperation : TCalc_Op
|
||||||
):TBinaryArgsResult;
|
):TBinaryArgsResult;
|
||||||
Begin
|
Begin
|
||||||
Result := TBinaryArgsResult.Create();
|
// your code here
|
||||||
try
|
|
||||||
Result.Arg_A := A;
|
|
||||||
Result.Arg_B := B;
|
|
||||||
Result.Arg_OP := 'X';
|
|
||||||
Result.Arg_OpEnum := AOperation;
|
|
||||||
Result.Comment := 'Doing an operation...';
|
|
||||||
|
|
||||||
case AOperation of
|
|
||||||
coAdd : Result.Arg_R := Result.Arg_A + Result.Arg_B;
|
|
||||||
coSub : Result.Arg_R := Result.Arg_A - Result.Arg_B;
|
|
||||||
coMul : Result.Arg_R := Result.Arg_A * Result.Arg_B;
|
|
||||||
coDiv : Result.Arg_R := Result.Arg_A div Result.Arg_B;
|
|
||||||
end;
|
|
||||||
except
|
|
||||||
FreeAndNil(Result);
|
|
||||||
raise;
|
|
||||||
end;
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure RegisterCalculatorImplementationFactory();
|
procedure RegisterCalculatorImplementationFactory();
|
||||||
Begin
|
Begin
|
||||||
GetServiceImplementationRegistry().Register(
|
GetServiceImplementationRegistry().Register('ICalculator',TImplementationFactory.Create(TCalculator_ServiceImp,wst_GetServiceConfigText('ICalculator')) as IServiceImplementationFactory);
|
||||||
'ICalculator',
|
|
||||||
TImplementationFactory.Create(TCalculator_ServiceImp) as IServiceImplementationFactory
|
|
||||||
).RegisterExtension(['TLoggerServiceExtension']);
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
End.
|
End.
|
||||||
|
@ -64,9 +64,8 @@ uses base_service_intf,
|
|||||||
server_service_soap, server_binary_formatter,
|
server_service_soap, server_binary_formatter,
|
||||||
metadata_repository, metadata_wsdl, DOM, XMLWrite,
|
metadata_repository, metadata_wsdl, DOM, XMLWrite,
|
||||||
calculator, calculator_binder, calculator_imp,
|
calculator, calculator_binder, calculator_imp,
|
||||||
metadata_service, metadata_service_binder, metadata_service_imp,
|
metadata_service, metadata_service_binder, metadata_service_imp;
|
||||||
|
|
||||||
user_service_intf, user_service_intf_binder, user_service_intf_imp;
|
|
||||||
|
|
||||||
const
|
const
|
||||||
sSEPARATOR = '/';
|
sSEPARATOR = '/';
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<IconPath Value="./"/>
|
<IconPath Value="./"/>
|
||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<ActiveEditorIndexAtStart Value="13"/>
|
<ActiveEditorIndexAtStart Value="0"/>
|
||||||
</General>
|
</General>
|
||||||
<PublishOptions>
|
<PublishOptions>
|
||||||
<Version Value="2"/>
|
<Version Value="2"/>
|
||||||
@ -37,8 +37,8 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="wst_http_server"/>
|
<UnitName Value="wst_http_server"/>
|
||||||
<CursorPos X="1" Y="40"/>
|
<CursorPos X="1" Y="40"/>
|
||||||
<TopLine Value="18"/>
|
<TopLine Value="11"/>
|
||||||
<EditorIndex Value="13"/>
|
<EditorIndex Value="10"/>
|
||||||
<UsageCount Value="202"/>
|
<UsageCount Value="202"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
@ -46,7 +46,7 @@
|
|||||||
<Filename Value="app_object.pas"/>
|
<Filename Value="app_object.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="app_object"/>
|
<UnitName Value="app_object"/>
|
||||||
<CursorPos X="43" Y="69"/>
|
<CursorPos X="1" Y="69"/>
|
||||||
<TopLine Value="50"/>
|
<TopLine Value="50"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<UsageCount Value="202"/>
|
<UsageCount Value="202"/>
|
||||||
@ -170,7 +170,7 @@
|
|||||||
<UnitName Value="base_service_intf"/>
|
<UnitName Value="base_service_intf"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="82"/>
|
<TopLine Value="82"/>
|
||||||
<EditorIndex Value="8"/>
|
<EditorIndex Value="5"/>
|
||||||
<UsageCount Value="201"/>
|
<UsageCount Value="201"/>
|
||||||
<Bookmarks Count="1">
|
<Bookmarks Count="1">
|
||||||
<Item0 X="52" Y="707" ID="1"/>
|
<Item0 X="52" Y="707" ID="1"/>
|
||||||
@ -199,7 +199,7 @@
|
|||||||
<UnitName Value="server_service_soap"/>
|
<UnitName Value="server_service_soap"/>
|
||||||
<CursorPos X="14" Y="22"/>
|
<CursorPos X="14" Y="22"/>
|
||||||
<TopLine Value="13"/>
|
<TopLine Value="13"/>
|
||||||
<EditorIndex Value="9"/>
|
<EditorIndex Value="6"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit21>
|
</Unit21>
|
||||||
@ -287,7 +287,7 @@
|
|||||||
<UnitName Value="base_soap_formatter"/>
|
<UnitName Value="base_soap_formatter"/>
|
||||||
<CursorPos X="21" Y="121"/>
|
<CursorPos X="21" Y="121"/>
|
||||||
<TopLine Value="109"/>
|
<TopLine Value="109"/>
|
||||||
<EditorIndex Value="10"/>
|
<EditorIndex Value="7"/>
|
||||||
<UsageCount Value="59"/>
|
<UsageCount Value="59"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit32>
|
</Unit32>
|
||||||
@ -438,7 +438,7 @@
|
|||||||
<Filename Value="..\..\metadata_service_imp.pas"/>
|
<Filename Value="..\..\metadata_service_imp.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="metadata_service_imp"/>
|
<UnitName Value="metadata_service_imp"/>
|
||||||
<CursorPos X="13" Y="8"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="3"/>
|
<EditorIndex Value="3"/>
|
||||||
<UsageCount Value="196"/>
|
<UsageCount Value="196"/>
|
||||||
@ -489,9 +489,9 @@
|
|||||||
<Filename Value="..\calculator\srv\calculator_binder.pas"/>
|
<Filename Value="..\calculator\srv\calculator_binder.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="calculator_binder"/>
|
<UnitName Value="calculator_binder"/>
|
||||||
<CursorPos X="16" Y="205"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="165"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="12"/>
|
<EditorIndex Value="9"/>
|
||||||
<UsageCount Value="133"/>
|
<UsageCount Value="133"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit62>
|
</Unit62>
|
||||||
@ -501,7 +501,7 @@
|
|||||||
<UnitName Value="calculator"/>
|
<UnitName Value="calculator"/>
|
||||||
<CursorPos X="44" Y="19"/>
|
<CursorPos X="44" Y="19"/>
|
||||||
<TopLine Value="79"/>
|
<TopLine Value="79"/>
|
||||||
<EditorIndex Value="11"/>
|
<EditorIndex Value="8"/>
|
||||||
<UsageCount Value="133"/>
|
<UsageCount Value="133"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit63>
|
</Unit63>
|
||||||
@ -570,18 +570,14 @@
|
|||||||
<UnitName Value="user_service_intf_binder"/>
|
<UnitName Value="user_service_intf_binder"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="7"/>
|
|
||||||
<UsageCount Value="15"/>
|
<UsageCount Value="15"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit73>
|
</Unit73>
|
||||||
<Unit74>
|
<Unit74>
|
||||||
<Filename Value="user_service_intf_imp.pas"/>
|
<Filename Value="user_service_intf_imp.pas"/>
|
||||||
<UnitName Value="user_service_intf_imp"/>
|
<UnitName Value="user_service_intf_imp"/>
|
||||||
<CursorPos X="3" Y="56"/>
|
<CursorPos X="3" Y="56"/>
|
||||||
<TopLine Value="54"/>
|
<TopLine Value="54"/>
|
||||||
<EditorIndex Value="6"/>
|
|
||||||
<UsageCount Value="15"/>
|
<UsageCount Value="15"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit74>
|
</Unit74>
|
||||||
<Unit75>
|
<Unit75>
|
||||||
<Filename Value="user_service_intf.wst"/>
|
<Filename Value="user_service_intf.wst"/>
|
||||||
@ -595,9 +591,7 @@
|
|||||||
<UnitName Value="user_service_intf"/>
|
<UnitName Value="user_service_intf"/>
|
||||||
<CursorPos X="21" Y="43"/>
|
<CursorPos X="21" Y="43"/>
|
||||||
<TopLine Value="33"/>
|
<TopLine Value="33"/>
|
||||||
<EditorIndex Value="5"/>
|
|
||||||
<UsageCount Value="15"/>
|
<UsageCount Value="15"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit76>
|
</Unit76>
|
||||||
<Unit77>
|
<Unit77>
|
||||||
<Filename Value="..\calculator\srv\calculator.wst"/>
|
<Filename Value="..\calculator\srv\calculator.wst"/>
|
||||||
@ -640,27 +634,15 @@
|
|||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit82>
|
</Unit82>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="5" HistoryIndex="4">
|
<JumpHistory Count="2" HistoryIndex="1">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="..\..\metadata_wsdl.pas"/>
|
<Filename Value="..\calculator\srv\calculator_binder.pas"/>
|
||||||
<Caret Line="369" Column="44" TopLine="358"/>
|
<Caret Line="205" Column="16" TopLine="165"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="user_service_intf_imp.pas"/>
|
<Filename Value="..\..\metadata_service_imp.pas"/>
|
||||||
<Caret Line="70" Column="1" TopLine="29"/>
|
<Caret Line="8" Column="13" TopLine="1"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
|
||||||
<Filename Value="user_service_intf_imp.pas"/>
|
|
||||||
<Caret Line="23" Column="15" TopLine="12"/>
|
|
||||||
</Position3>
|
|
||||||
<Position4>
|
|
||||||
<Filename Value="user_service_intf_imp.pas"/>
|
|
||||||
<Caret Line="21" Column="3" TopLine="17"/>
|
|
||||||
</Position4>
|
|
||||||
<Position5>
|
|
||||||
<Filename Value="wst_http_server.pas"/>
|
|
||||||
<Caret Line="22" Column="24" TopLine="1"/>
|
|
||||||
</Position5>
|
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
222
wst/trunk/tests/record/client/record_client.lpi
Normal file
222
wst/trunk/tests/record/client/record_client.lpi
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Version Value="5"/>
|
||||||
|
<General>
|
||||||
|
<Flags>
|
||||||
|
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
||||||
|
<MainUnitHasCreateFormStatements Value="False"/>
|
||||||
|
<MainUnitHasTitleStatement Value="False"/>
|
||||||
|
</Flags>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<IconPath Value="./"/>
|
||||||
|
<TargetFileExt Value=".exe"/>
|
||||||
|
<ActiveEditorIndexAtStart Value="0"/>
|
||||||
|
</General>
|
||||||
|
<VersionInfo>
|
||||||
|
<ProjectVersion Value=""/>
|
||||||
|
<Language Value=""/>
|
||||||
|
<CharSet Value=""/>
|
||||||
|
</VersionInfo>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<IgnoreBinaries Value="False"/>
|
||||||
|
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||||
|
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<local>
|
||||||
|
<FormatVersion Value="1"/>
|
||||||
|
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||||
|
</local>
|
||||||
|
</RunParams>
|
||||||
|
<Units Count="16">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="record_client.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="record_client"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="0"/>
|
||||||
|
<UsageCount Value="35"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="..\record_sample.pas"/>
|
||||||
|
<UnitName Value="record_sample"/>
|
||||||
|
<CursorPos X="53" Y="16"/>
|
||||||
|
<TopLine Value="13"/>
|
||||||
|
<EditorIndex Value="9"/>
|
||||||
|
<UsageCount Value="18"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="..\record_sample_proxy.pas"/>
|
||||||
|
<UnitName Value="record_sample_proxy"/>
|
||||||
|
<CursorPos X="1" Y="56"/>
|
||||||
|
<TopLine Value="41"/>
|
||||||
|
<EditorIndex Value="8"/>
|
||||||
|
<UsageCount Value="18"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit2>
|
||||||
|
<Unit3>
|
||||||
|
<Filename Value="..\record_sample.wst"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
<SyntaxHighlighter Value="None"/>
|
||||||
|
</Unit3>
|
||||||
|
<Unit4>
|
||||||
|
<Filename Value="..\..\..\synapse_http_protocol.pas"/>
|
||||||
|
<UnitName Value="synapse_http_protocol"/>
|
||||||
|
<CursorPos X="1" Y="16"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="2"/>
|
||||||
|
<UsageCount Value="18"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit4>
|
||||||
|
<Unit5>
|
||||||
|
<Filename Value="..\..\..\record_rtti.pas"/>
|
||||||
|
<UnitName Value="record_rtti"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="6"/>
|
||||||
|
<UsageCount Value="18"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit5>
|
||||||
|
<Unit6>
|
||||||
|
<Filename Value="..\..\..\base_service_intf.pas"/>
|
||||||
|
<UnitName Value="base_service_intf"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="3"/>
|
||||||
|
<UsageCount Value="18"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit6>
|
||||||
|
<Unit7>
|
||||||
|
<Filename Value="..\..\..\wst_types.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="wst_types"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="7"/>
|
||||||
|
<UsageCount Value="35"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit7>
|
||||||
|
<Unit8>
|
||||||
|
<Filename Value="..\..\..\base_soap_formatter.pas"/>
|
||||||
|
<UnitName Value="base_soap_formatter"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="4"/>
|
||||||
|
<UsageCount Value="18"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit8>
|
||||||
|
<Unit9>
|
||||||
|
<Filename Value="..\..\..\soap_formatter.pas"/>
|
||||||
|
<UnitName Value="soap_formatter"/>
|
||||||
|
<CursorPos X="1" Y="188"/>
|
||||||
|
<TopLine Value="173"/>
|
||||||
|
<EditorIndex Value="1"/>
|
||||||
|
<UsageCount Value="18"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit9>
|
||||||
|
<Unit10>
|
||||||
|
<Filename Value="..\..\..\imp_utils.pas"/>
|
||||||
|
<UnitName Value="imp_utils"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="5"/>
|
||||||
|
<UsageCount Value="18"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit10>
|
||||||
|
<Unit11>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\classesh.inc"/>
|
||||||
|
<CursorPos X="15" Y="513"/>
|
||||||
|
<TopLine Value="498"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit11>
|
||||||
|
<Unit12>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\stringl.inc"/>
|
||||||
|
<CursorPos X="54" Y="230"/>
|
||||||
|
<TopLine Value="222"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit12>
|
||||||
|
<Unit13>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\strutils.pp"/>
|
||||||
|
<UnitName Value="strutils"/>
|
||||||
|
<CursorPos X="21" Y="32"/>
|
||||||
|
<TopLine Value="163"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit13>
|
||||||
|
<Unit14>
|
||||||
|
<Filename Value="..\..\..\service_intf.pas"/>
|
||||||
|
<UnitName Value="service_intf"/>
|
||||||
|
<CursorPos X="1" Y="220"/>
|
||||||
|
<TopLine Value="205"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit14>
|
||||||
|
<Unit15>
|
||||||
|
<Filename Value="..\..\..\indy_http_protocol.pas"/>
|
||||||
|
<UnitName Value="indy_http_protocol"/>
|
||||||
|
<CursorPos X="15" Y="35"/>
|
||||||
|
<TopLine Value="20"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit15>
|
||||||
|
</Units>
|
||||||
|
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="5"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="..\..\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
|
||||||
|
<OtherUnitFiles Value="..\;..\..\;..\..\..\;$(LazarusDir)\others_package\synapse\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Core\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Protocols\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\System\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
|
||||||
|
<UnitOutputDirectory Value="obj"/>
|
||||||
|
<SrcPath Value="$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Core\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Protocols\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\System\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<CodeGeneration>
|
||||||
|
<Generate Value="Faster"/>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Other>
|
||||||
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<BreakPoints Count="6">
|
||||||
|
<Item1>
|
||||||
|
<Source Value="..\..\..\metadata_wsdl.pas"/>
|
||||||
|
<Line Value="459"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Source Value="..\..\..\metadata_wsdl.pas"/>
|
||||||
|
<Line Value="468"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Source Value="..\..\..\metadata_wsdl.pas"/>
|
||||||
|
<Line Value="431"/>
|
||||||
|
</Item3>
|
||||||
|
<Item4>
|
||||||
|
<Source Value="..\..\..\server_service_intf.pas"/>
|
||||||
|
<Line Value="630"/>
|
||||||
|
</Item4>
|
||||||
|
<Item5>
|
||||||
|
<Source Value="..\..\..\base_service_intf.pas"/>
|
||||||
|
<Line Value="4634"/>
|
||||||
|
</Item5>
|
||||||
|
<Item6>
|
||||||
|
<Source Value="..\..\..\base_service_intf.pas"/>
|
||||||
|
<Line Value="4711"/>
|
||||||
|
</Item6>
|
||||||
|
</BreakPoints>
|
||||||
|
<Exceptions Count="2">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item2>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
110
wst/trunk/tests/record/client/record_client.pas
Normal file
110
wst/trunk/tests/record/client/record_client.pas
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
program record_client;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, {$IFDEF WINDOWS}ActiveX,{$ENDIF}
|
||||||
|
soap_formatter,
|
||||||
|
synapse_http_protocol,
|
||||||
|
//indy_http_protocol,
|
||||||
|
metadata_repository,
|
||||||
|
record_sample, record_sample_proxy;
|
||||||
|
|
||||||
|
function ReadEntryStr(const APromp : string):string ;
|
||||||
|
begin
|
||||||
|
Result := '';
|
||||||
|
Write(APromp);
|
||||||
|
while True do begin
|
||||||
|
ReadLn(Result);
|
||||||
|
Result := Trim(Result);
|
||||||
|
if ( Length(Result) > 0 ) then
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ReadEntryInt(const APromp : string):Integer ;
|
||||||
|
var
|
||||||
|
locBuffer : string;
|
||||||
|
begin
|
||||||
|
Write(APromp);
|
||||||
|
while True do begin
|
||||||
|
ReadLn(locBuffer);
|
||||||
|
locBuffer := Trim(locBuffer);
|
||||||
|
if TryStrToInt(locBuffer,Result) then
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ReadEntryFloat(const APromp : string) : Single ;
|
||||||
|
var
|
||||||
|
locBuffer : string;
|
||||||
|
begin
|
||||||
|
Write(APromp);
|
||||||
|
while True do begin
|
||||||
|
ReadLn(locBuffer);
|
||||||
|
locBuffer := Trim(locBuffer);
|
||||||
|
if TryStrToFloat(locBuffer,Result) then
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
locService : RecordService;
|
||||||
|
A : RecordA;
|
||||||
|
B : RecordB;
|
||||||
|
C : RecordC;
|
||||||
|
begin
|
||||||
|
{$IFDEF WINDOWS}
|
||||||
|
CoInitialize(nil);
|
||||||
|
try
|
||||||
|
{$ENDIF}
|
||||||
|
SYNAPSE_RegisterHTTP_Transport();
|
||||||
|
//INDY_RegisterHTTP_Transport();
|
||||||
|
WriteLn('Web Services Toolkit Record sample');
|
||||||
|
WriteLn('This sample demonstrates the Object Pascal "Record" support by WST');
|
||||||
|
WriteLn();
|
||||||
|
locService := TRecordService_Proxy.Create(
|
||||||
|
'RecordService','soap:Style=RPC;EncodingStyle=Literal','http:address=http://127.0.0.1:20000/services/RecordService');
|
||||||
|
while True do begin
|
||||||
|
A.fieldA := 0;
|
||||||
|
A.fieldB := 0;
|
||||||
|
C.intField := 1;
|
||||||
|
C.RecordField.RecordField.fieldA := 21;
|
||||||
|
C.RecordField.RecordField.fieldB := 22;
|
||||||
|
C.RecordField.RecordField.comment := 'Comment 23';
|
||||||
|
C.RecordField.intField := 3;
|
||||||
|
C.RecordField.RecordField.comment := '31 comment';
|
||||||
|
C.RecordField.comment := 'xx comment ddf';
|
||||||
|
A.fieldA := ReadEntryInt('Enter the Integer field : ');
|
||||||
|
A.fieldB := ReadEntryFloat('Enter the Single field : ');
|
||||||
|
B.intField := 2 * A.fieldA;
|
||||||
|
B := locService.Add(A);
|
||||||
|
WriteLn;
|
||||||
|
WriteLn('Response ( B ) : ');
|
||||||
|
WriteLn(' intField : ',B.intField);
|
||||||
|
WriteLn(' singleField : ',B.singleField);
|
||||||
|
WriteLn(' comment : ',B.comment);
|
||||||
|
WriteLn();
|
||||||
|
WriteLn;
|
||||||
|
C := locService.AddRec(A,B,C);
|
||||||
|
WriteLn;
|
||||||
|
WriteLn('Response ( C ) : ');
|
||||||
|
WriteLn(' intField : ',C.intField);
|
||||||
|
WriteLn(' RecordField.intField : ',C.RecordField.intField);
|
||||||
|
WriteLn(' RecordField.singleField : ',C.RecordField.singleField);
|
||||||
|
WriteLn(' RecordField.singleField : ',C.RecordField.comment);
|
||||||
|
WriteLn(' RecordField.RecordField.fieldA : ',C.RecordField.RecordField.fieldA);
|
||||||
|
WriteLn(' RecordField.RecordField.fieldB : ',C.RecordField.RecordField.fieldB);
|
||||||
|
WriteLn(' RecordField.RecordField.comment : ',C.RecordField.RecordField.comment);
|
||||||
|
WriteLn();
|
||||||
|
|
||||||
|
if ( UpperCase(ReadEntryStr('Continue ( Y/N ) :'))[1] <> 'Y' ) then
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
{$IFDEF WINDOWS}
|
||||||
|
finally
|
||||||
|
CoUninitialize();
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
end.
|
||||||
|
|
33
wst/trunk/tests/record/record_sample.WSDL
Normal file
33
wst/trunk/tests/record/record_sample.WSDL
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<definitions name="urn:record_sample" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:record_sample" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:record_sample">
|
||||||
|
<types>
|
||||||
|
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:record_sample">
|
||||||
|
<xsd:complexType name="TRecordClass">
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="fieldA" type="xsd:int" maxOccurs="1" minOccurs="1"/>
|
||||||
|
<xsd:element name="fieldB" type="xsd:single" maxOccurs="1" minOccurs="1"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:schema>
|
||||||
|
</types>
|
||||||
|
<message name="Add"><part name="AValue" type="tns:TRecordClass"/></message>
|
||||||
|
<message name="AddResponse"><part name="result" type="xsd:long"/></message>
|
||||||
|
<portType name="RecordService">
|
||||||
|
<document><GUID value="{E42B7653-4B50-4956-88B4-FBCEC57B667A}"/></document>
|
||||||
|
<operation name="Add">
|
||||||
|
<input message="tns:Add"/>
|
||||||
|
<output message="tns:AddResponse"/>
|
||||||
|
</operation>
|
||||||
|
</portType>
|
||||||
|
<binding name="RecordServiceBinding" type="tns:RecordService">
|
||||||
|
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||||
|
<operation name="Add">
|
||||||
|
<soap:operation soapAction=""/>
|
||||||
|
<input><soap:body use="literal" namespace="urn:record_sample"/></input>
|
||||||
|
<output><soap:body use="literal" namespace="urn:record_sample"/></output>
|
||||||
|
</operation>
|
||||||
|
</binding>
|
||||||
|
<service name="RecordService">
|
||||||
|
<port name="RecordServicePort" binding="tns:RecordServiceBinding"><soap:address location="http://127.0.0.1:20000"/></port>
|
||||||
|
</service>
|
||||||
|
</definitions>
|
146
wst/trunk/tests/record/record_sample.pas
Normal file
146
wst/trunk/tests/record/record_sample.pas
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
{
|
||||||
|
This unit has been produced by ws_helper.
|
||||||
|
Input unit name : "record_sample".
|
||||||
|
This unit name : "record_sample".
|
||||||
|
Date : "17/08/2007 19:37:26".
|
||||||
|
}
|
||||||
|
unit record_sample;
|
||||||
|
{$IFDEF FPC}
|
||||||
|
{$mode objfpc} {$H+}
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
{$DEFINE WST_RECORD_RTTI}
|
||||||
|
{$ENDIF}
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;
|
||||||
|
|
||||||
|
const
|
||||||
|
sNAME_SPACE = 'record_sample';
|
||||||
|
sUNIT_NAME = 'record_sample';
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
|
||||||
|
RecordA = record
|
||||||
|
fieldB : Single;
|
||||||
|
fieldA : Integer;
|
||||||
|
comment : String;
|
||||||
|
end;
|
||||||
|
|
||||||
|
RecordB = record
|
||||||
|
singleField : Single;
|
||||||
|
intField : Integer;
|
||||||
|
comment : String;
|
||||||
|
RecordField : RecordA;
|
||||||
|
end;
|
||||||
|
|
||||||
|
RecordC = record
|
||||||
|
intField : Integer;
|
||||||
|
RecordField : RecordB;
|
||||||
|
end;
|
||||||
|
|
||||||
|
RecordService = interface(IInvokable)
|
||||||
|
['{E42B7653-4B50-4956-88B4-FBCEC57B667A}']
|
||||||
|
function Add(
|
||||||
|
const AValue : RecordA
|
||||||
|
):RecordB;
|
||||||
|
function AddRec(
|
||||||
|
const AA : RecordA;
|
||||||
|
const AB : RecordB;
|
||||||
|
const AC : RecordC
|
||||||
|
):RecordC;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Register_record_sample_ServiceMetadata();
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
uses metadata_repository, record_rtti, wst_types;
|
||||||
|
|
||||||
|
|
||||||
|
procedure Register_record_sample_ServiceMetadata();
|
||||||
|
var
|
||||||
|
mm : IModuleMetadataMngr;
|
||||||
|
begin
|
||||||
|
mm := GetModuleMetadataMngr();
|
||||||
|
mm.SetRepositoryNameSpace(sUNIT_NAME, sNAME_SPACE);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
function __RecordA_TYPEINFO_FUNC__() : PTypeInfo;
|
||||||
|
var
|
||||||
|
p : ^RecordA;
|
||||||
|
r : RecordA;
|
||||||
|
begin
|
||||||
|
p := @r;
|
||||||
|
Result := MakeRawTypeInfo(
|
||||||
|
'RecordA',
|
||||||
|
SizeOf(RecordA),
|
||||||
|
[ PtrUInt(@(p^.fieldB)) - PtrUInt(p), PtrUInt(@(p^.fieldA)) - PtrUInt(p), PtrUInt(@(p^.comment)) - PtrUInt(p) ],
|
||||||
|
[ TypeInfo(Single), TypeInfo(Integer), TypeInfo(String) ]
|
||||||
|
);
|
||||||
|
end;
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
function __RecordB_TYPEINFO_FUNC__() : PTypeInfo;
|
||||||
|
var
|
||||||
|
p : ^RecordB;
|
||||||
|
r : RecordB;
|
||||||
|
begin
|
||||||
|
p := @r;
|
||||||
|
Result := MakeRawTypeInfo(
|
||||||
|
'RecordB',
|
||||||
|
SizeOf(RecordB),
|
||||||
|
[ PtrUInt(@(p^.singleField)) - PtrUInt(p), PtrUInt(@(p^.intField)) - PtrUInt(p), PtrUInt(@(p^.comment)) - PtrUInt(p), PtrUInt(@(p^.RecordField)) - PtrUInt(p) ],
|
||||||
|
[ TypeInfo(Single), TypeInfo(Integer), TypeInfo(String), TypeInfo(RecordA) ]
|
||||||
|
);
|
||||||
|
end;
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
function __RecordC_TYPEINFO_FUNC__() : PTypeInfo;
|
||||||
|
var
|
||||||
|
p : ^RecordC;
|
||||||
|
r : RecordC;
|
||||||
|
begin
|
||||||
|
p := @r;
|
||||||
|
Result := MakeRawTypeInfo(
|
||||||
|
'RecordC',
|
||||||
|
SizeOf(RecordC),
|
||||||
|
[ PtrUInt(@(p^.intField)) - PtrUInt(p), PtrUInt(@(p^.RecordField)) - PtrUInt(p) ],
|
||||||
|
[ TypeInfo(Integer), TypeInfo(RecordB) ]
|
||||||
|
);
|
||||||
|
end;
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
initialization
|
||||||
|
|
||||||
|
|
||||||
|
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RecordA),'RecordA').RegisterExternalPropertyName('__FIELDS__','fieldB;fieldA;comment');
|
||||||
|
{$IFNDEF WST_RECORD_RTTI}
|
||||||
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordA)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(TypeInfo(RecordA)),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordA)].GetExternalPropertyName('__FIELDS__')));
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordA)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(__RecordA_TYPEINFO_FUNC__()),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordA)].GetExternalPropertyName('__FIELDS__')));
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RecordB),'RecordB').RegisterExternalPropertyName('__FIELDS__','singleField;intField;comment;RecordField');
|
||||||
|
{$IFNDEF WST_RECORD_RTTI}
|
||||||
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordB)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(TypeInfo(RecordB)),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordB)].GetExternalPropertyName('__FIELDS__')));
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordB)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(__RecordB_TYPEINFO_FUNC__()),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordB)].GetExternalPropertyName('__FIELDS__')));
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RecordC),'RecordC').RegisterExternalPropertyName('__FIELDS__','intField;RecordField');
|
||||||
|
{$IFNDEF WST_RECORD_RTTI}
|
||||||
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordC)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(TypeInfo(RecordC)),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordC)].GetExternalPropertyName('__FIELDS__')));
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordC)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(__RecordC_TYPEINFO_FUNC__()),GetTypeRegistry().ItemByTypeInfo[TypeInfo(RecordC)].GetExternalPropertyName('__FIELDS__')));
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
|
||||||
|
End.
|
165
wst/trunk/tests/record/record_sample_binder.pas
Normal file
165
wst/trunk/tests/record/record_sample_binder.pas
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
{
|
||||||
|
This unit has been produced by ws_helper.
|
||||||
|
Input unit name : "record_sample".
|
||||||
|
This unit name : "record_sample_binder".
|
||||||
|
Date : "17/08/2007 19:37:26".
|
||||||
|
}
|
||||||
|
unit record_sample_binder;
|
||||||
|
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses SysUtils, Classes, base_service_intf, server_service_intf, record_sample;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
|
||||||
|
TRecordService_ServiceBinder = class(TBaseServiceBinder)
|
||||||
|
protected
|
||||||
|
procedure AddHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
|
procedure AddRecHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
|
public
|
||||||
|
constructor Create();
|
||||||
|
end;
|
||||||
|
|
||||||
|
TRecordService_ServiceBinderFactory = class(TInterfacedObject,IItemFactory)
|
||||||
|
private
|
||||||
|
FInstance : IInterface;
|
||||||
|
protected
|
||||||
|
function CreateInstance():IInterface;
|
||||||
|
public
|
||||||
|
constructor Create();
|
||||||
|
destructor Destroy();override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Server_service_RegisterRecordServiceService();
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
uses TypInfo, wst_resources_imp,metadata_repository;
|
||||||
|
|
||||||
|
{ TRecordService_ServiceBinder implementation }
|
||||||
|
procedure TRecordService_ServiceBinder.AddHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
|
var
|
||||||
|
cllCntrl : ICallControl;
|
||||||
|
objCntrl : IObjectControl;
|
||||||
|
hasObjCntrl : Boolean;
|
||||||
|
tmpObj : RecordService;
|
||||||
|
callCtx : ICallContext;
|
||||||
|
strPrmName : string;
|
||||||
|
procName,trgName : string;
|
||||||
|
AValue : RecordA;
|
||||||
|
returnVal : RecordB;
|
||||||
|
begin
|
||||||
|
callCtx := AContext;
|
||||||
|
|
||||||
|
strPrmName := 'AValue'; AFormatter.Get(TypeInfo(RecordA),strPrmName,AValue);
|
||||||
|
|
||||||
|
tmpObj := Self.GetFactory().CreateInstance() as RecordService;
|
||||||
|
if Supports(tmpObj,ICallControl,cllCntrl) then
|
||||||
|
cllCntrl.SetCallContext(callCtx);
|
||||||
|
hasObjCntrl := Supports(tmpObj,IObjectControl,objCntrl);
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Activate();
|
||||||
|
try
|
||||||
|
returnVal := tmpObj.Add(AValue);
|
||||||
|
|
||||||
|
procName := AFormatter.GetCallProcedureName();
|
||||||
|
trgName := AFormatter.GetCallTarget();
|
||||||
|
AFormatter.Clear();
|
||||||
|
AFormatter.BeginCallResponse(procName,trgName);
|
||||||
|
AFormatter.Put('Result',TypeInfo(RecordB),returnVal);
|
||||||
|
AFormatter.EndCallResponse();
|
||||||
|
|
||||||
|
callCtx := nil;
|
||||||
|
finally
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Deactivate();
|
||||||
|
Self.GetFactory().ReleaseInstance(tmpObj);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRecordService_ServiceBinder.AddRecHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||||
|
var
|
||||||
|
cllCntrl : ICallControl;
|
||||||
|
objCntrl : IObjectControl;
|
||||||
|
hasObjCntrl : Boolean;
|
||||||
|
tmpObj : RecordService;
|
||||||
|
callCtx : ICallContext;
|
||||||
|
strPrmName : string;
|
||||||
|
procName,trgName : string;
|
||||||
|
AA : RecordA;
|
||||||
|
AB : RecordB;
|
||||||
|
AC : RecordC;
|
||||||
|
returnVal : RecordC;
|
||||||
|
begin
|
||||||
|
callCtx := AContext;
|
||||||
|
|
||||||
|
strPrmName := 'AA'; AFormatter.Get(TypeInfo(RecordA),strPrmName,AA);
|
||||||
|
strPrmName := 'AB'; AFormatter.Get(TypeInfo(RecordB),strPrmName,AB);
|
||||||
|
strPrmName := 'AC'; AFormatter.Get(TypeInfo(RecordC),strPrmName,AC);
|
||||||
|
|
||||||
|
tmpObj := Self.GetFactory().CreateInstance() as RecordService;
|
||||||
|
if Supports(tmpObj,ICallControl,cllCntrl) then
|
||||||
|
cllCntrl.SetCallContext(callCtx);
|
||||||
|
hasObjCntrl := Supports(tmpObj,IObjectControl,objCntrl);
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Activate();
|
||||||
|
try
|
||||||
|
returnVal := tmpObj.AddRec(AA,AB,AC);
|
||||||
|
|
||||||
|
procName := AFormatter.GetCallProcedureName();
|
||||||
|
trgName := AFormatter.GetCallTarget();
|
||||||
|
AFormatter.Clear();
|
||||||
|
AFormatter.BeginCallResponse(procName,trgName);
|
||||||
|
AFormatter.Put('Result',TypeInfo(RecordC),returnVal);
|
||||||
|
AFormatter.EndCallResponse();
|
||||||
|
|
||||||
|
callCtx := nil;
|
||||||
|
finally
|
||||||
|
if hasObjCntrl then
|
||||||
|
objCntrl.Deactivate();
|
||||||
|
Self.GetFactory().ReleaseInstance(tmpObj);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
constructor TRecordService_ServiceBinder.Create();
|
||||||
|
begin
|
||||||
|
inherited Create(GetServiceImplementationRegistry().FindFactory('RecordService'));
|
||||||
|
RegisterVerbHandler('Add',{$IFDEF FPC}@{$ENDIF}AddHandler);
|
||||||
|
RegisterVerbHandler('AddRec',{$IFDEF FPC}@{$ENDIF}AddRecHandler);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{ TRecordService_ServiceBinderFactory }
|
||||||
|
|
||||||
|
function TRecordService_ServiceBinderFactory.CreateInstance():IInterface;
|
||||||
|
begin
|
||||||
|
Result := FInstance;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TRecordService_ServiceBinderFactory.Create();
|
||||||
|
begin
|
||||||
|
FInstance := TRecordService_ServiceBinder.Create() as IInterface;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TRecordService_ServiceBinderFactory.Destroy();
|
||||||
|
begin
|
||||||
|
FInstance := nil;
|
||||||
|
inherited Destroy();
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure Server_service_RegisterRecordServiceService();
|
||||||
|
Begin
|
||||||
|
GetServerServiceRegistry().Register('RecordService',TRecordService_ServiceBinderFactory.Create() as IItemFactory);
|
||||||
|
End;
|
||||||
|
|
||||||
|
initialization
|
||||||
|
|
||||||
|
{$i record_sample.wst}
|
||||||
|
|
||||||
|
{$IF DECLARED(Register_record_sample_ServiceMetadata)}
|
||||||
|
Register_record_sample_ServiceMetadata();
|
||||||
|
{$IFEND}
|
||||||
|
|
||||||
|
End.
|
67
wst/trunk/tests/record/record_sample_imp.pas
Normal file
67
wst/trunk/tests/record/record_sample_imp.pas
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
This unit has been produced by ws_helper.
|
||||||
|
Input unit name : "record_sample".
|
||||||
|
This unit name : "record_sample_imp".
|
||||||
|
Date : "17/08/2007 19:37:26".
|
||||||
|
}
|
||||||
|
Unit record_sample_imp;
|
||||||
|
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
|
||||||
|
Interface
|
||||||
|
|
||||||
|
Uses SysUtils, Classes,
|
||||||
|
base_service_intf, server_service_intf, server_service_imputils, record_sample;
|
||||||
|
|
||||||
|
Type
|
||||||
|
|
||||||
|
|
||||||
|
TRecordService_ServiceImp=class(TBaseServiceImplementation,RecordService)
|
||||||
|
Protected
|
||||||
|
function Add(
|
||||||
|
const AValue : RecordA
|
||||||
|
):RecordB;
|
||||||
|
function AddRec(
|
||||||
|
const AA : RecordA;
|
||||||
|
const AB : RecordB;
|
||||||
|
const AC : RecordC
|
||||||
|
):RecordC;
|
||||||
|
End;
|
||||||
|
|
||||||
|
|
||||||
|
procedure RegisterRecordServiceImplementationFactory();
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
uses config_objects;
|
||||||
|
|
||||||
|
{ TRecordService_ServiceImp implementation }
|
||||||
|
function TRecordService_ServiceImp.Add(
|
||||||
|
const AValue : RecordA
|
||||||
|
):RecordB;
|
||||||
|
Begin
|
||||||
|
Result.singleField := AValue.fieldA + AValue.fieldB;
|
||||||
|
Result.intField := Trunc(AValue.fieldA + AValue.fieldB);
|
||||||
|
Result.comment := 'Computed in Add().';
|
||||||
|
Result.RecordField := AValue;
|
||||||
|
End;
|
||||||
|
|
||||||
|
function TRecordService_ServiceImp.AddRec(
|
||||||
|
const AA : RecordA;
|
||||||
|
const AB : RecordB;
|
||||||
|
const AC : RecordC
|
||||||
|
):RecordC;
|
||||||
|
Begin
|
||||||
|
Result.RecordField.intField := 1234;
|
||||||
|
Result.RecordField.RecordField.fieldA := 0;
|
||||||
|
Result.RecordField.RecordField.fieldB := 0;
|
||||||
|
Result.intField := Trunc(AA.fieldA + AA.fieldB);
|
||||||
|
Result.RecordField.singleField := AB.singleField + AB.intField;
|
||||||
|
Result.RecordField.comment := 'Computed in AddRec().';
|
||||||
|
End;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure RegisterRecordServiceImplementationFactory();
|
||||||
|
Begin
|
||||||
|
GetServiceImplementationRegistry().Register('RecordService',TImplementationFactory.Create(TRecordService_ServiceImp,wst_GetServiceConfigText('RecordService')) as IServiceImplementationFactory);
|
||||||
|
End;
|
||||||
|
|
||||||
|
End.
|
107
wst/trunk/tests/record/record_sample_proxy.pas
Normal file
107
wst/trunk/tests/record/record_sample_proxy.pas
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
{
|
||||||
|
This unit has been produced by ws_helper.
|
||||||
|
Input unit name : "record_sample".
|
||||||
|
This unit name : "record_sample_proxy".
|
||||||
|
Date : "17/08/2007 19:37:26".
|
||||||
|
}
|
||||||
|
|
||||||
|
Unit record_sample_proxy;
|
||||||
|
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
|
||||||
|
Interface
|
||||||
|
|
||||||
|
Uses SysUtils, Classes, TypInfo, base_service_intf, service_intf, record_sample;
|
||||||
|
|
||||||
|
Type
|
||||||
|
|
||||||
|
|
||||||
|
TRecordService_Proxy=class(TBaseProxy,RecordService)
|
||||||
|
Protected
|
||||||
|
class function GetServiceType() : PTypeInfo;override;
|
||||||
|
function Add(
|
||||||
|
const AValue : RecordA
|
||||||
|
):RecordB;
|
||||||
|
function AddRec(
|
||||||
|
const AA : RecordA;
|
||||||
|
const AB : RecordB;
|
||||||
|
const AC : RecordC
|
||||||
|
):RecordC;
|
||||||
|
End;
|
||||||
|
|
||||||
|
Function wst_CreateInstance_RecordService(const AFormat : string = 'SOAP:'; const ATransport : string = 'HTTP:'):RecordService;
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
uses wst_resources_imp, metadata_repository;
|
||||||
|
|
||||||
|
|
||||||
|
Function wst_CreateInstance_RecordService(const AFormat : string; const ATransport : string):RecordService;
|
||||||
|
Begin
|
||||||
|
Result := TRecordService_Proxy.Create('RecordService',AFormat+GetServiceDefaultFormatProperties(TypeInfo(RecordService)),ATransport + 'address=' + GetServiceDefaultAddress(TypeInfo(RecordService)));
|
||||||
|
End;
|
||||||
|
|
||||||
|
{ TRecordService_Proxy implementation }
|
||||||
|
|
||||||
|
class function TRecordService_Proxy.GetServiceType() : PTypeInfo;
|
||||||
|
begin
|
||||||
|
result := TypeInfo(RecordService);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TRecordService_Proxy.Add(
|
||||||
|
const AValue : RecordA
|
||||||
|
):RecordB;
|
||||||
|
Var
|
||||||
|
locSerializer : IFormatterClient;
|
||||||
|
strPrmName : string;
|
||||||
|
Begin
|
||||||
|
locSerializer := GetSerializer();
|
||||||
|
Try
|
||||||
|
locSerializer.BeginCall('Add', GetTarget(),(Self as ICallContext));
|
||||||
|
locSerializer.Put('AValue', TypeInfo(RecordA), AValue);
|
||||||
|
locSerializer.EndCall();
|
||||||
|
|
||||||
|
MakeCall();
|
||||||
|
|
||||||
|
locSerializer.BeginCallRead((Self as ICallContext));
|
||||||
|
strPrmName := 'Result';
|
||||||
|
locSerializer.Get(TypeInfo(RecordB), strPrmName, Result);
|
||||||
|
|
||||||
|
Finally
|
||||||
|
locSerializer.Clear();
|
||||||
|
End;
|
||||||
|
End;
|
||||||
|
|
||||||
|
function TRecordService_Proxy.AddRec(
|
||||||
|
const AA : RecordA;
|
||||||
|
const AB : RecordB;
|
||||||
|
const AC : RecordC
|
||||||
|
):RecordC;
|
||||||
|
Var
|
||||||
|
locSerializer : IFormatterClient;
|
||||||
|
strPrmName : string;
|
||||||
|
Begin
|
||||||
|
locSerializer := GetSerializer();
|
||||||
|
Try
|
||||||
|
locSerializer.BeginCall('AddRec', GetTarget(),(Self as ICallContext));
|
||||||
|
locSerializer.Put('AA', TypeInfo(RecordA), AA);
|
||||||
|
locSerializer.Put('AB', TypeInfo(RecordB), AB);
|
||||||
|
locSerializer.Put('AC', TypeInfo(RecordC), AC);
|
||||||
|
locSerializer.EndCall();
|
||||||
|
|
||||||
|
MakeCall();
|
||||||
|
|
||||||
|
locSerializer.BeginCallRead((Self as ICallContext));
|
||||||
|
strPrmName := 'Result';
|
||||||
|
locSerializer.Get(TypeInfo(RecordC), strPrmName, Result);
|
||||||
|
|
||||||
|
Finally
|
||||||
|
locSerializer.Clear();
|
||||||
|
End;
|
||||||
|
End;
|
||||||
|
|
||||||
|
|
||||||
|
initialization
|
||||||
|
{$i record_sample.wst}
|
||||||
|
|
||||||
|
{$IF DECLARED(Register_record_sample_ServiceMetadata)}
|
||||||
|
Register_record_sample_ServiceMetadata();
|
||||||
|
{$IFEND}
|
||||||
|
End.
|
44
wst/trunk/tests/record/server/delphi/record_server.cfg
Normal file
44
wst/trunk/tests/record/server/delphi/record_server.cfg
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
-$A8
|
||||||
|
-$B-
|
||||||
|
-$C+
|
||||||
|
-$D+
|
||||||
|
-$E-
|
||||||
|
-$F-
|
||||||
|
-$G+
|
||||||
|
-$H+
|
||||||
|
-$I+
|
||||||
|
-$J-
|
||||||
|
-$K-
|
||||||
|
-$L+
|
||||||
|
-$M-
|
||||||
|
-$N+
|
||||||
|
-$O+
|
||||||
|
-$P+
|
||||||
|
-$Q-
|
||||||
|
-$R-
|
||||||
|
-$S-
|
||||||
|
-$T-
|
||||||
|
-$U-
|
||||||
|
-$V+
|
||||||
|
-$W-
|
||||||
|
-$X+
|
||||||
|
-$YD
|
||||||
|
-$Z1
|
||||||
|
-cg
|
||||||
|
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||||
|
-H+
|
||||||
|
-W+
|
||||||
|
-M
|
||||||
|
-$M16384,1048576
|
||||||
|
-K$00400000
|
||||||
|
-N"obj"
|
||||||
|
-LE"c:\program files\borland\delphi7\Projects\Bpl"
|
||||||
|
-LN"c:\program files\borland\delphi7\Projects\Bpl"
|
||||||
|
-U"..\..\..\;..\..\;..\;..\..\..\..\"
|
||||||
|
-O"..\..\..\;..\..\;..\;..\..\..\..\"
|
||||||
|
-I"..\..\..\;..\..\;..\;..\..\..\..\"
|
||||||
|
-R"..\..\..\;..\..\;..\;..\..\..\..\"
|
||||||
|
-DINDY_9
|
||||||
|
-w-UNSAFE_TYPE
|
||||||
|
-w-UNSAFE_CODE
|
||||||
|
-w-UNSAFE_CAST
|
159
wst/trunk/tests/record/server/delphi/record_server.dof
Normal file
159
wst/trunk/tests/record/server/delphi/record_server.dof
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
[FileVersion]
|
||||||
|
Version=7.0
|
||||||
|
[Compiler]
|
||||||
|
A=8
|
||||||
|
B=0
|
||||||
|
C=1
|
||||||
|
D=1
|
||||||
|
E=0
|
||||||
|
F=0
|
||||||
|
G=1
|
||||||
|
H=1
|
||||||
|
I=1
|
||||||
|
J=0
|
||||||
|
K=0
|
||||||
|
L=1
|
||||||
|
M=0
|
||||||
|
N=1
|
||||||
|
O=1
|
||||||
|
P=1
|
||||||
|
Q=0
|
||||||
|
R=0
|
||||||
|
S=0
|
||||||
|
T=0
|
||||||
|
U=0
|
||||||
|
V=1
|
||||||
|
W=0
|
||||||
|
X=1
|
||||||
|
Y=1
|
||||||
|
Z=1
|
||||||
|
ShowHints=1
|
||||||
|
ShowWarnings=1
|
||||||
|
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||||
|
NamespacePrefix=
|
||||||
|
SymbolDeprecated=1
|
||||||
|
SymbolLibrary=1
|
||||||
|
SymbolPlatform=1
|
||||||
|
UnitLibrary=1
|
||||||
|
UnitPlatform=1
|
||||||
|
UnitDeprecated=1
|
||||||
|
HResultCompat=1
|
||||||
|
HidingMember=1
|
||||||
|
HiddenVirtual=1
|
||||||
|
Garbage=1
|
||||||
|
BoundsError=1
|
||||||
|
ZeroNilCompat=1
|
||||||
|
StringConstTruncated=1
|
||||||
|
ForLoopVarVarPar=1
|
||||||
|
TypedConstVarPar=1
|
||||||
|
AsgToTypedConst=1
|
||||||
|
CaseLabelRange=1
|
||||||
|
ForVariable=1
|
||||||
|
ConstructingAbstract=1
|
||||||
|
ComparisonFalse=1
|
||||||
|
ComparisonTrue=1
|
||||||
|
ComparingSignedUnsigned=1
|
||||||
|
CombiningSignedUnsigned=1
|
||||||
|
UnsupportedConstruct=1
|
||||||
|
FileOpen=1
|
||||||
|
FileOpenUnitSrc=1
|
||||||
|
BadGlobalSymbol=1
|
||||||
|
DuplicateConstructorDestructor=1
|
||||||
|
InvalidDirective=1
|
||||||
|
PackageNoLink=1
|
||||||
|
PackageThreadVar=1
|
||||||
|
ImplicitImport=1
|
||||||
|
HPPEMITIgnored=1
|
||||||
|
NoRetVal=1
|
||||||
|
UseBeforeDef=1
|
||||||
|
ForLoopVarUndef=1
|
||||||
|
UnitNameMismatch=1
|
||||||
|
NoCFGFileFound=1
|
||||||
|
MessageDirective=1
|
||||||
|
ImplicitVariants=1
|
||||||
|
UnicodeToLocale=1
|
||||||
|
LocaleToUnicode=1
|
||||||
|
ImagebaseMultiple=1
|
||||||
|
SuspiciousTypecast=1
|
||||||
|
PrivatePropAccessor=1
|
||||||
|
UnsafeType=0
|
||||||
|
UnsafeCode=0
|
||||||
|
UnsafeCast=0
|
||||||
|
[Linker]
|
||||||
|
MapFile=0
|
||||||
|
OutputObjs=0
|
||||||
|
ConsoleApp=1
|
||||||
|
DebugInfo=0
|
||||||
|
RemoteSymbols=0
|
||||||
|
MinStackSize=16384
|
||||||
|
MaxStackSize=1048576
|
||||||
|
ImageBase=4194304
|
||||||
|
ExeDescription=
|
||||||
|
[Directories]
|
||||||
|
OutputDir=
|
||||||
|
UnitOutputDir=obj
|
||||||
|
PackageDLLOutputDir=
|
||||||
|
PackageDCPOutputDir=
|
||||||
|
SearchPath=..\..\..\;..\..\;..\;..\..\..\..\
|
||||||
|
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;FIBDBMidas7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxForumLibD7;cxLibraryVCLD7;cxPageControlVCLD7;dxBarD7;dxComnD7;dxBarDBNavD7;dxBarExtItemsD7;dxBarExtDBItemsD7;dxsbD7;dxmdsD7;dxdbtrD7;dxtrmdD7;dxorgcD7;dxdborD7;dxEdtrD7;EQTLD7;ECQDBCD7;EQDBTLD7;EQGridD7;dxGrEdD7;dxExELD7;dxELibD7;cxEditorsVCLD7;cxGridVCLD7;dxThemeD7;cxDataD7;cxGridUtilsVCLD7;dxPSCoreD7;dxPsPrVwAdvD7;dxPSLnksD7;dxPSTeeChartD7;dxPSDBTeeChartD7;dxPSdxDBTVLnkD7;dxPSdxOCLnkD7;dxPSdxDBOCLnkD7;dxPScxGridLnkD7;dxPSTLLnkD7;qrpt
|
||||||
|
Conditionals=INDY_9
|
||||||
|
DebugSourceDirs=
|
||||||
|
UsePackages=0
|
||||||
|
[Parameters]
|
||||||
|
RunParams=
|
||||||
|
HostApplication=
|
||||||
|
Launcher=
|
||||||
|
UseLauncher=0
|
||||||
|
DebugCWD=
|
||||||
|
[Language]
|
||||||
|
ActiveLang=
|
||||||
|
ProjectLang=
|
||||||
|
RootDir=C:\Program Files\Borland\Delphi7\Bin\
|
||||||
|
[Version Info]
|
||||||
|
IncludeVerInfo=0
|
||||||
|
AutoIncBuild=0
|
||||||
|
MajorVer=1
|
||||||
|
MinorVer=0
|
||||||
|
Release=0
|
||||||
|
Build=0
|
||||||
|
Debug=0
|
||||||
|
PreRelease=0
|
||||||
|
Special=0
|
||||||
|
Private=0
|
||||||
|
DLL=0
|
||||||
|
Locale=1036
|
||||||
|
CodePage=1252
|
||||||
|
[Version Info Keys]
|
||||||
|
CompanyName=
|
||||||
|
FileDescription=
|
||||||
|
FileVersion=1.0.0.0
|
||||||
|
InternalName=
|
||||||
|
LegalCopyright=
|
||||||
|
LegalTrademarks=
|
||||||
|
OriginalFilename=
|
||||||
|
ProductName=
|
||||||
|
ProductVersion=1.0.0.0
|
||||||
|
Comments=
|
||||||
|
[Excluded Packages]
|
||||||
|
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxDBTLLnkD7.bpl=ExpressPrinting System ReportLink for ExpressQuantumDBTreeList by Developer Express Inc.
|
||||||
|
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxDBGrLnkD7.bpl=ExpressPrinting System ReportLink for ExpressQuantumGrid by Developer Express Inc.
|
||||||
|
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxInsLnkD7.bpl=ExpressPrinting System ReportLink for ExpressInspector by Developer Express Inc.
|
||||||
|
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxOILnkD7.bpl=ExpressPrinting System ReportLink for ExpressRTTIInspector by Developer Express Inc.
|
||||||
|
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxMVLnkD7.bpl=ExpressPrinting System ReportLink for ExpressMasterView by Developer Express Inc.
|
||||||
|
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxFCLnkD7.bpl=ExpressPrinting System ReportLinks for ExpressFlowChart by Developer Express Inc.
|
||||||
|
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPScxSSLnkD7.bpl=ExpressPrinting System ReportLink for ExpressSpreadSheet by Developer Express Inc.
|
||||||
|
[HistoryLists\hlConditionals]
|
||||||
|
Count=1
|
||||||
|
Item0=INDY_9
|
||||||
|
[HistoryLists\hlUnitAliases]
|
||||||
|
Count=1
|
||||||
|
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||||
|
[HistoryLists\hlSearchPath]
|
||||||
|
Count=4
|
||||||
|
Item0=..\..\..\;..\..\;..\;..\..\..\..\
|
||||||
|
Item1=$(DELPHI)\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\..\;..\..\;..\;..\..\..\..\
|
||||||
|
Item2=..\..\..\;..\..\;..\
|
||||||
|
Item3=..\
|
||||||
|
[HistoryLists\hlUnitOutputDirectory]
|
||||||
|
Count=1
|
||||||
|
Item0=obj
|
44
wst/trunk/tests/record/server/delphi/record_server.dpr
Normal file
44
wst/trunk/tests/record/server/delphi/record_server.dpr
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
program record_server;
|
||||||
|
|
||||||
|
{$APPTYPE CONSOLE}
|
||||||
|
|
||||||
|
uses
|
||||||
|
delphi_init_com, Classes, SysUtils,
|
||||||
|
indy_http_server,
|
||||||
|
metadata_service,
|
||||||
|
server_listener,
|
||||||
|
server_service_soap,
|
||||||
|
server_binary_formatter,
|
||||||
|
server_service_xmlrpc,
|
||||||
|
config_objects,
|
||||||
|
record_sample,
|
||||||
|
record_sample_binder,
|
||||||
|
record_sample_imp,
|
||||||
|
record_rtti;
|
||||||
|
|
||||||
|
var
|
||||||
|
AppObject : TwstListener;
|
||||||
|
begin
|
||||||
|
Server_service_RegisterBinaryFormat();
|
||||||
|
Server_service_RegisterSoapFormat();
|
||||||
|
Server_service_RegisterXmlRpcFormat();
|
||||||
|
|
||||||
|
RegisterRecordServiceImplementationFactory();
|
||||||
|
Server_service_RegisterRecordServiceService();
|
||||||
|
|
||||||
|
//wst_CreateDefaultFile(wst_GetConfigFileName(),nil);
|
||||||
|
|
||||||
|
AppObject := TwstIndyHttpListener.Create('127.0.0.1',20000);
|
||||||
|
try
|
||||||
|
WriteLn('"Web Service Toolkit" HTTP Server sample listening at:');
|
||||||
|
WriteLn('');
|
||||||
|
WriteLn('http://127.0.0.1:20000/');
|
||||||
|
WriteLn('');
|
||||||
|
WriteLn('Press enter to quit.');
|
||||||
|
AppObject.Start();
|
||||||
|
ReadLn;
|
||||||
|
finally
|
||||||
|
FreeAndNil(AppObject);
|
||||||
|
end;
|
||||||
|
end.
|
||||||
|
|
240
wst/trunk/tests/record/server/record_server.lpi
Normal file
240
wst/trunk/tests/record/server/record_server.lpi
Normal file
@ -0,0 +1,240 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Version Value="5"/>
|
||||||
|
<General>
|
||||||
|
<Flags>
|
||||||
|
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
||||||
|
<MainUnitHasCreateFormStatements Value="False"/>
|
||||||
|
<MainUnitHasTitleStatement Value="False"/>
|
||||||
|
</Flags>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<IconPath Value="./"/>
|
||||||
|
<TargetFileExt Value=".exe"/>
|
||||||
|
<ActiveEditorIndexAtStart Value="0"/>
|
||||||
|
</General>
|
||||||
|
<VersionInfo>
|
||||||
|
<ProjectVersion Value=""/>
|
||||||
|
<Language Value=""/>
|
||||||
|
<CharSet Value=""/>
|
||||||
|
</VersionInfo>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<IgnoreBinaries Value="False"/>
|
||||||
|
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||||
|
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<local>
|
||||||
|
<FormatVersion Value="1"/>
|
||||||
|
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||||
|
</local>
|
||||||
|
</RunParams>
|
||||||
|
<Units Count="18">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="record_server.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="record_server"/>
|
||||||
|
<CursorPos X="61" Y="27"/>
|
||||||
|
<TopLine Value="7"/>
|
||||||
|
<EditorIndex Value="0"/>
|
||||||
|
<UsageCount Value="37"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="..\..\..\indy_http_server.pas"/>
|
||||||
|
<UnitName Value="indy_http_server"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<UsageCount Value="12"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="..\..\..\wst_fpc_xml.pas"/>
|
||||||
|
<UnitName Value="wst_fpc_xml"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<UsageCount Value="13"/>
|
||||||
|
</Unit2>
|
||||||
|
<Unit3>
|
||||||
|
<Filename Value="..\record_sample_binder.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="record_sample_binder"/>
|
||||||
|
<CursorPos X="47" Y="68"/>
|
||||||
|
<TopLine Value="50"/>
|
||||||
|
<EditorIndex Value="7"/>
|
||||||
|
<UsageCount Value="26"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit3>
|
||||||
|
<Unit4>
|
||||||
|
<Filename Value="..\record_sample.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="record_sample"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="9"/>
|
||||||
|
<UsageCount Value="26"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit4>
|
||||||
|
<Unit5>
|
||||||
|
<Filename Value="..\record_sample_proxy.pas"/>
|
||||||
|
<UnitName Value="record_sample_proxy"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="12"/>
|
||||||
|
<UsageCount Value="19"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit5>
|
||||||
|
<Unit6>
|
||||||
|
<Filename Value="..\record_sample_imp.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="record_sample_imp"/>
|
||||||
|
<CursorPos X="52" Y="20"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="8"/>
|
||||||
|
<UsageCount Value="26"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit6>
|
||||||
|
<Unit7>
|
||||||
|
<Filename Value="..\..\..\base_service_intf.pas"/>
|
||||||
|
<UnitName Value="base_service_intf"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="10"/>
|
||||||
|
<UsageCount Value="19"/>
|
||||||
|
<Bookmarks Count="1">
|
||||||
|
<Item0 X="3" Y="362" ID="1"/>
|
||||||
|
</Bookmarks>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit7>
|
||||||
|
<Unit8>
|
||||||
|
<Filename Value="..\..\..\record_rtti.pas"/>
|
||||||
|
<UnitName Value="record_rtti"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="11"/>
|
||||||
|
<UsageCount Value="19"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit8>
|
||||||
|
<Unit9>
|
||||||
|
<Filename Value="..\..\..\server_service_soap.pas"/>
|
||||||
|
<UnitName Value="server_service_soap"/>
|
||||||
|
<CursorPos X="15" Y="22"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="1"/>
|
||||||
|
<UsageCount Value="19"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit9>
|
||||||
|
<Unit10>
|
||||||
|
<Filename Value="..\..\..\base_soap_formatter.pas"/>
|
||||||
|
<UnitName Value="base_soap_formatter"/>
|
||||||
|
<CursorPos X="21" Y="21"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="2"/>
|
||||||
|
<UsageCount Value="19"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit10>
|
||||||
|
<Unit11>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysstrh.inc"/>
|
||||||
|
<CursorPos X="55" Y="89"/>
|
||||||
|
<TopLine Value="60"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit11>
|
||||||
|
<Unit12>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
||||||
|
<CursorPos X="8" Y="75"/>
|
||||||
|
<TopLine Value="282"/>
|
||||||
|
<UsageCount Value="9"/>
|
||||||
|
</Unit12>
|
||||||
|
<Unit13>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/>
|
||||||
|
<UnitName Value="typinfo"/>
|
||||||
|
<CursorPos X="56" Y="39"/>
|
||||||
|
<TopLine Value="200"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit13>
|
||||||
|
<Unit14>
|
||||||
|
<Filename Value="..\..\..\wst_global.inc"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="3"/>
|
||||||
|
<UsageCount Value="13"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit14>
|
||||||
|
<Unit15>
|
||||||
|
<Filename Value="..\..\..\wst_types.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="wst_types"/>
|
||||||
|
<CursorPos X="14" Y="18"/>
|
||||||
|
<TopLine Value="10"/>
|
||||||
|
<EditorIndex Value="4"/>
|
||||||
|
<UsageCount Value="30"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit15>
|
||||||
|
<Unit16>
|
||||||
|
<Filename Value="..\..\..\wst.inc"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="5"/>
|
||||||
|
<UsageCount Value="13"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit16>
|
||||||
|
<Unit17>
|
||||||
|
<Filename Value="..\..\..\wst_delphi.inc"/>
|
||||||
|
<CursorPos X="13" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="6"/>
|
||||||
|
<UsageCount Value="13"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit17>
|
||||||
|
</Units>
|
||||||
|
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="5"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="..\..\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
|
||||||
|
<OtherUnitFiles Value="..\;..\..\;..\..\..\;..\..\..\wst_rtti_filter\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Core\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Protocols\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\System\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
|
||||||
|
<UnitOutputDirectory Value="obj"/>
|
||||||
|
<SrcPath Value="$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Core\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Protocols\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\System\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<CodeGeneration>
|
||||||
|
<Generate Value="Faster"/>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Other>
|
||||||
|
<CustomOptions Value="-dINDY_10
|
||||||
|
-dUseCThreads
|
||||||
|
"/>
|
||||||
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<BreakPoints Count="4">
|
||||||
|
<Item1>
|
||||||
|
<Source Value="..\..\..\metadata_wsdl.pas"/>
|
||||||
|
<Line Value="459"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Source Value="..\..\..\metadata_wsdl.pas"/>
|
||||||
|
<Line Value="468"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Source Value="..\..\..\metadata_wsdl.pas"/>
|
||||||
|
<Line Value="431"/>
|
||||||
|
</Item3>
|
||||||
|
<Item4>
|
||||||
|
<Source Value="..\..\..\server_service_intf.pas"/>
|
||||||
|
<Line Value="630"/>
|
||||||
|
</Item4>
|
||||||
|
</BreakPoints>
|
||||||
|
<Exceptions Count="2">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item2>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
40
wst/trunk/tests/record/server/record_server.pas
Normal file
40
wst/trunk/tests/record/server/record_server.pas
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
program record_server;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
{$IFDEF UNIX}{$IFDEF UseCThreads}
|
||||||
|
cthreads,
|
||||||
|
{$ENDIF}{$ENDIF}
|
||||||
|
Classes, SysUtils,
|
||||||
|
indy_http_server, metadata_service, server_listener,
|
||||||
|
server_service_soap, server_binary_formatter, server_service_xmlrpc, config_objects,
|
||||||
|
record_sample, record_sample_binder, record_sample_imp, record_rtti;
|
||||||
|
|
||||||
|
|
||||||
|
var
|
||||||
|
AppObject : TwstListener;
|
||||||
|
begin
|
||||||
|
Server_service_RegisterBinaryFormat();
|
||||||
|
Server_service_RegisterSoapFormat();
|
||||||
|
Server_service_RegisterXmlRpcFormat();
|
||||||
|
|
||||||
|
RegisterRecordServiceImplementationFactory();
|
||||||
|
Server_service_RegisterRecordServiceService();
|
||||||
|
|
||||||
|
//wst_CreateDefaultFile(wst_GetConfigFileName(),nil);
|
||||||
|
|
||||||
|
AppObject := TwstIndyHttpListener.Create('127.0.0.1',20000);
|
||||||
|
try
|
||||||
|
WriteLn('"Web Service Toolkit" HTTP Server sample listening at:');
|
||||||
|
WriteLn('');
|
||||||
|
WriteLn('http://127.0.0.1:20000/');
|
||||||
|
WriteLn('');
|
||||||
|
WriteLn('Press enter to quit.');
|
||||||
|
AppObject.Start();
|
||||||
|
ReadLn();
|
||||||
|
finally
|
||||||
|
FreeAndNil(AppObject);
|
||||||
|
end;
|
||||||
|
end.
|
||||||
|
|
305
wst/trunk/tests/record/test/test_record.lpi
Normal file
305
wst/trunk/tests/record/test/test_record.lpi
Normal file
@ -0,0 +1,305 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Version Value="5"/>
|
||||||
|
<General>
|
||||||
|
<Flags>
|
||||||
|
<MainUnitHasUsesSectionForAllUnits Value="False"/>
|
||||||
|
<MainUnitHasCreateFormStatements Value="False"/>
|
||||||
|
<MainUnitHasTitleStatement Value="False"/>
|
||||||
|
</Flags>
|
||||||
|
<MainUnit Value="0"/>
|
||||||
|
<TargetFileExt Value=".exe"/>
|
||||||
|
<ActiveEditorIndexAtStart Value="2"/>
|
||||||
|
</General>
|
||||||
|
<VersionInfo>
|
||||||
|
<ProjectVersion Value=""/>
|
||||||
|
<Language Value=""/>
|
||||||
|
<CharSet Value=""/>
|
||||||
|
</VersionInfo>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<IgnoreBinaries Value="False"/>
|
||||||
|
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||||
|
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<local>
|
||||||
|
<FormatVersion Value="1"/>
|
||||||
|
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
|
||||||
|
</local>
|
||||||
|
</RunParams>
|
||||||
|
<Units Count="12">
|
||||||
|
<Unit0>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="test_record"/>
|
||||||
|
<CursorPos X="31" Y="37"/>
|
||||||
|
<TopLine Value="17"/>
|
||||||
|
<EditorIndex Value="0"/>
|
||||||
|
<UsageCount Value="20"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit0>
|
||||||
|
<Unit1>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win\sysutils.pp"/>
|
||||||
|
<UnitName Value="sysutils"/>
|
||||||
|
<CursorPos X="10" Y="33"/>
|
||||||
|
<TopLine Value="49"/>
|
||||||
|
<EditorIndex Value="9"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit1>
|
||||||
|
<Unit2>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||||
|
<CursorPos X="11" Y="236"/>
|
||||||
|
<TopLine Value="210"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit2>
|
||||||
|
<Unit3>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\intfh.inc"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="4"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit3>
|
||||||
|
<Unit4>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/>
|
||||||
|
<UnitName Value="typinfo"/>
|
||||||
|
<CursorPos X="7" Y="75"/>
|
||||||
|
<TopLine Value="60"/>
|
||||||
|
<EditorIndex Value="8"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit4>
|
||||||
|
<Unit5>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\rtti.inc"/>
|
||||||
|
<CursorPos X="3" Y="132"/>
|
||||||
|
<TopLine Value="43"/>
|
||||||
|
<EditorIndex Value="2"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit5>
|
||||||
|
<Unit6>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="record_rtti"/>
|
||||||
|
<CursorPos X="13" Y="28"/>
|
||||||
|
<TopLine Value="7"/>
|
||||||
|
<EditorIndex Value="1"/>
|
||||||
|
<UsageCount Value="20"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit6>
|
||||||
|
<Unit7>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\system.inc"/>
|
||||||
|
<CursorPos X="20" Y="244"/>
|
||||||
|
<TopLine Value="222"/>
|
||||||
|
<EditorIndex Value="4"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit7>
|
||||||
|
<Unit8>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
|
||||||
|
<CursorPos X="11" Y="865"/>
|
||||||
|
<TopLine Value="845"/>
|
||||||
|
<EditorIndex Value="5"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit8>
|
||||||
|
<Unit9>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win\systhrd.inc"/>
|
||||||
|
<CursorPos X="14" Y="137"/>
|
||||||
|
<TopLine Value="137"/>
|
||||||
|
<EditorIndex Value="7"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit9>
|
||||||
|
<Unit10>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\aliases.inc"/>
|
||||||
|
<CursorPos X="11" Y="31"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="3"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit10>
|
||||||
|
<Unit11>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\compproc.inc"/>
|
||||||
|
<CursorPos X="32" Y="408"/>
|
||||||
|
<TopLine Value="391"/>
|
||||||
|
<EditorIndex Value="6"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit11>
|
||||||
|
</Units>
|
||||||
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
|
<Position1>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="101" Column="1" TopLine="77"/>
|
||||||
|
</Position1>
|
||||||
|
<Position2>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="95" Column="1" TopLine="77"/>
|
||||||
|
</Position2>
|
||||||
|
<Position3>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="96" Column="1" TopLine="77"/>
|
||||||
|
</Position3>
|
||||||
|
<Position4>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="97" Column="1" TopLine="77"/>
|
||||||
|
</Position4>
|
||||||
|
<Position5>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="98" Column="1" TopLine="77"/>
|
||||||
|
</Position5>
|
||||||
|
<Position6>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="99" Column="1" TopLine="77"/>
|
||||||
|
</Position6>
|
||||||
|
<Position7>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="100" Column="1" TopLine="77"/>
|
||||||
|
</Position7>
|
||||||
|
<Position8>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="101" Column="1" TopLine="77"/>
|
||||||
|
</Position8>
|
||||||
|
<Position9>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="103" Column="1" TopLine="77"/>
|
||||||
|
</Position9>
|
||||||
|
<Position10>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="43" Column="1" TopLine="17"/>
|
||||||
|
</Position10>
|
||||||
|
<Position11>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="22" Column="1" TopLine="7"/>
|
||||||
|
</Position11>
|
||||||
|
<Position12>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="103" Column="22" TopLine="77"/>
|
||||||
|
</Position12>
|
||||||
|
<Position13>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="42" Column="1" TopLine="17"/>
|
||||||
|
</Position13>
|
||||||
|
<Position14>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="32" Column="50" TopLine="17"/>
|
||||||
|
</Position14>
|
||||||
|
<Position15>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="31" Column="50" TopLine="17"/>
|
||||||
|
</Position15>
|
||||||
|
<Position16>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="15" Column="24" TopLine="1"/>
|
||||||
|
</Position16>
|
||||||
|
<Position17>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="27" Column="29" TopLine="17"/>
|
||||||
|
</Position17>
|
||||||
|
<Position18>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="42" Column="1" TopLine="17"/>
|
||||||
|
</Position18>
|
||||||
|
<Position19>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="97" Column="29" TopLine="78"/>
|
||||||
|
</Position19>
|
||||||
|
<Position20>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="42" Column="1" TopLine="17"/>
|
||||||
|
</Position20>
|
||||||
|
<Position21>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="33" Column="1" TopLine="17"/>
|
||||||
|
</Position21>
|
||||||
|
<Position22>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="42" Column="1" TopLine="17"/>
|
||||||
|
</Position22>
|
||||||
|
<Position23>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="33" Column="55" TopLine="17"/>
|
||||||
|
</Position23>
|
||||||
|
<Position24>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\rtti.inc"/>
|
||||||
|
<Caret Line="139" Column="38" TopLine="130"/>
|
||||||
|
</Position24>
|
||||||
|
<Position25>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\system.inc"/>
|
||||||
|
<Caret Line="244" Column="20" TopLine="222"/>
|
||||||
|
</Position25>
|
||||||
|
<Position26>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
|
||||||
|
<Caret Line="739" Column="10" TopLine="651"/>
|
||||||
|
</Position26>
|
||||||
|
<Position27>
|
||||||
|
<Filename Value="..\..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
|
||||||
|
<Caret Line="865" Column="11" TopLine="845"/>
|
||||||
|
</Position27>
|
||||||
|
<Position28>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="97" Column="44" TopLine="78"/>
|
||||||
|
</Position28>
|
||||||
|
<Position29>
|
||||||
|
<Filename Value="test_record.pas"/>
|
||||||
|
<Caret Line="42" Column="24" TopLine="17"/>
|
||||||
|
</Position29>
|
||||||
|
<Position30>
|
||||||
|
<Filename Value="..\record_rtti.pas"/>
|
||||||
|
<Caret Line="40" Column="73" TopLine="40"/>
|
||||||
|
</Position30>
|
||||||
|
</JumpHistory>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="5"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<OtherUnitFiles Value="C:\Programmes\lazarus\wst\trunk\tests\record\"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<CodeGeneration>
|
||||||
|
<Generate Value="Faster"/>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Other>
|
||||||
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<BreakPoints Count="4">
|
||||||
|
<Item1>
|
||||||
|
<Source Value="..\..\..\samples\http_server\D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||||
|
<Line Value="230"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Source Value="..\..\..\samples\http_server\D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||||
|
<Line Value="193"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<Source Value="..\..\..\samples\http_server\D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
|
||||||
|
<Line Value="198"/>
|
||||||
|
</Item3>
|
||||||
|
<Item4>
|
||||||
|
<Source Value="..\..\..\ws_helper\wsdl2pas_imp.pas"/>
|
||||||
|
<Line Value="606"/>
|
||||||
|
</Item4>
|
||||||
|
</BreakPoints>
|
||||||
|
<Watches Count="2">
|
||||||
|
<Item1>
|
||||||
|
<Expression Value="locStrFilter"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Expression Value="i"/>
|
||||||
|
</Item2>
|
||||||
|
</Watches>
|
||||||
|
<Exceptions Count="2">
|
||||||
|
<Item1>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item2>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
47
wst/trunk/tests/record/test/test_record.pas
Normal file
47
wst/trunk/tests/record/test/test_record.pas
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
program test_record;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils
|
||||||
|
,TypInfo, record_rtti;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
TSampleRecord = record
|
||||||
|
fieldA : Integer;
|
||||||
|
fieldB : Single;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure PrintRecType(ARecTyp : PRecordTypeData);
|
||||||
|
var
|
||||||
|
i : Integer;
|
||||||
|
f : TRecordFieldInfo;
|
||||||
|
begin
|
||||||
|
Assert(Assigned(ARecTyp));
|
||||||
|
WriteLn('');
|
||||||
|
WriteLn('Type name = ', ARecTyp^.Name);
|
||||||
|
WriteLn(' RecordSize = ', ARecTyp^.RecordSize);
|
||||||
|
WriteLn(' FieldCount = ', ARecTyp^.FieldCount);
|
||||||
|
for i := 1 to ARecTyp^.FieldCount do begin
|
||||||
|
f := ARecTyp^.Fields[i-1];
|
||||||
|
WriteLn(' Field[',i,']');
|
||||||
|
WriteLn(' Name = ',f.Name);
|
||||||
|
WriteLn(' Offset = ',f.Offset);
|
||||||
|
WriteLn(' TypeInfo = ',PtrUInt(f.TypeInfo));
|
||||||
|
if ( f.TypeInfo <> nil ) then begin
|
||||||
|
WriteLn(' TypeInfo^.Name = ',f.TypeInfo^^.Name);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
WriteLn('');
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
recTyp : PRecordTypeData;
|
||||||
|
begin
|
||||||
|
recTyp := MakeRecordTypeInfo(TypeInfo(TSampleRecord));
|
||||||
|
PrintRecType(recTyp);
|
||||||
|
FreeRecordTypeInfo(recTyp);
|
||||||
|
ReadLn;
|
||||||
|
end.
|
||||||
|
|
@ -15,7 +15,7 @@
|
|||||||
-$O+
|
-$O+
|
||||||
-$P+
|
-$P+
|
||||||
-$Q-
|
-$Q-
|
||||||
-$R-
|
-$R+
|
||||||
-$S-
|
-$S-
|
||||||
-$T-
|
-$T-
|
||||||
-$U-
|
-$U-
|
||||||
|
@ -18,7 +18,7 @@ N=1
|
|||||||
O=1
|
O=1
|
||||||
P=1
|
P=1
|
||||||
Q=0
|
Q=0
|
||||||
R=0
|
R=1
|
||||||
S=0
|
S=0
|
||||||
T=0
|
T=0
|
||||||
U=0
|
U=0
|
||||||
|
39
wst/trunk/tests/test_suite/simple_record_test.pas
Normal file
39
wst/trunk/tests/test_suite/simple_record_test.pas
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{$DEFINE HAS_QWORD}
|
||||||
|
{$DEFINE HAS_COMP}
|
||||||
|
|
||||||
|
unit simple_record_test;
|
||||||
|
interface
|
||||||
|
|
||||||
|
type
|
||||||
|
TTestSmallRecord = record
|
||||||
|
fieldSmallint : Smallint;
|
||||||
|
fieldWord : Word;
|
||||||
|
fieldString : string;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TTestRecord = record
|
||||||
|
fieldByte : Byte;
|
||||||
|
fieldShortInt : ShortInt;
|
||||||
|
fieldSmallint : Smallint;
|
||||||
|
fieldWord : Word;
|
||||||
|
fieldInteget : Integer;
|
||||||
|
fieldLongWord : LongWord;
|
||||||
|
fieldInt64 : Int64;
|
||||||
|
{$IFDEF HAS_QWORD}
|
||||||
|
fieldQWord : QWord;
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF HAS_COMP}
|
||||||
|
fieldComp : Comp;
|
||||||
|
{$ENDIF}
|
||||||
|
fieldSingle : Single;
|
||||||
|
fieldDouble : Double;
|
||||||
|
fieldExtended : Extended;
|
||||||
|
fieldCurrency : Currency;
|
||||||
|
fieldBoolean : Boolean;
|
||||||
|
fieldString : string;
|
||||||
|
fieldRecord : TTestSmallRecord;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
@ -13,9 +13,6 @@ uses
|
|||||||
TypInfo,
|
TypInfo,
|
||||||
base_service_intf, server_service_intf;
|
base_service_intf, server_service_intf;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
ITest = interface
|
ITest = interface
|
||||||
@ -37,6 +34,34 @@ type
|
|||||||
constructor Create();override;
|
constructor Create();override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
ISimple_A = interface
|
||||||
|
['{D015AD95-6062-4650-9B00-CF3004E9CA1A}']//['{4793180A-DAA4-4E50-9194-5EEEE851EBE3}']
|
||||||
|
end;
|
||||||
|
|
||||||
|
ISimple_B = interface
|
||||||
|
['{4793180A-DAA4-4E50-9194-5EEEE851EBE3}']
|
||||||
|
end;
|
||||||
|
|
||||||
|
TSimpleFactoryItem_A = class(TSimpleFactoryItem,IInterface,ISimple_A)
|
||||||
|
end;
|
||||||
|
|
||||||
|
TSimpleFactoryItem_B = class(TSimpleFactoryItem,IInterface,ISimple_B)
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TTest_TIntfPoolItem }
|
||||||
|
|
||||||
|
TTest_TIntfPoolItem = class(TTestCase)
|
||||||
|
published
|
||||||
|
procedure All();
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TTest_TSimpleItemFactory }
|
||||||
|
|
||||||
|
TTest_TSimpleItemFactory = class(TTestCase)
|
||||||
|
published
|
||||||
|
procedure CreateProc();
|
||||||
|
procedure CreateInstance();
|
||||||
|
end;
|
||||||
|
|
||||||
{ TTest_TIntfPool }
|
{ TTest_TIntfPool }
|
||||||
|
|
||||||
@ -447,15 +472,121 @@ begin
|
|||||||
Check(oldElt <> elt,'4.2');
|
Check(oldElt <> elt,'4.2');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TTest_TIntfPoolItem }
|
||||||
|
|
||||||
|
procedure TTest_TIntfPoolItem.All();
|
||||||
|
var
|
||||||
|
i : IInterface;
|
||||||
|
b : Boolean;
|
||||||
|
a : TIntfPoolItem;
|
||||||
|
begin
|
||||||
|
i := nil;
|
||||||
|
b := False;
|
||||||
|
a := TIntfPoolItem.Create(i,b);
|
||||||
|
try
|
||||||
|
Check(( i = a.Intf ),'Create() > Intf');
|
||||||
|
CheckEquals(b,a.Used,'Create() > Used');
|
||||||
|
b := not b;
|
||||||
|
a.Used := b;
|
||||||
|
CheckEquals(b,a.Used,'Used');
|
||||||
|
finally
|
||||||
|
FreeAndNil(a);
|
||||||
|
end;
|
||||||
|
a := nil;
|
||||||
|
|
||||||
|
i := nil;
|
||||||
|
b := True;
|
||||||
|
a := TIntfPoolItem.Create(i,b);
|
||||||
|
try
|
||||||
|
Check(( i = a.Intf ),'Create() > Intf');
|
||||||
|
CheckEquals(b,a.Used,'Create() > Used');
|
||||||
|
b := not b;
|
||||||
|
a.Used := b;
|
||||||
|
CheckEquals(b,a.Used,'Used');
|
||||||
|
finally
|
||||||
|
FreeAndNil(a);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TTest_TSimpleItemFactory }
|
||||||
|
|
||||||
|
procedure TTest_TSimpleItemFactory.CreateInstance();
|
||||||
|
var
|
||||||
|
b, a : IItemFactory;
|
||||||
|
itm : IInterface;
|
||||||
|
begin
|
||||||
|
a := TSimpleItemFactory.Create(TSimpleFactoryItem_A);
|
||||||
|
itm := a.CreateInstance();
|
||||||
|
CheckEquals(True,Assigned(itm));
|
||||||
|
CheckEquals(True,Supports(itm,ISimple_A));
|
||||||
|
|
||||||
|
itm := a.CreateInstance();
|
||||||
|
CheckEquals(True,Assigned(itm));
|
||||||
|
CheckEquals(True,Supports(itm,ISimple_A));
|
||||||
|
|
||||||
|
b := TSimpleItemFactory.Create(TSimpleFactoryItem_B);
|
||||||
|
itm := b.CreateInstance();
|
||||||
|
CheckEquals(True,Assigned(itm));
|
||||||
|
CheckEquals(True,Supports(itm,ISimple_B));
|
||||||
|
|
||||||
|
itm := b.CreateInstance();
|
||||||
|
CheckEquals(True,Assigned(itm));
|
||||||
|
CheckEquals(True,Supports(itm,ISimple_B));
|
||||||
|
end;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TSimpleItemFactoryCrack }
|
||||||
|
|
||||||
|
TSimpleItemFactoryCrack = class(TSimpleItemFactory)
|
||||||
|
public
|
||||||
|
function GetItemClass() : TSimpleFactoryItemClass;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TSimpleItemFactoryCrack }
|
||||||
|
|
||||||
|
function TSimpleItemFactoryCrack.GetItemClass() : TSimpleFactoryItemClass;
|
||||||
|
begin
|
||||||
|
Result := inherited GetItemClass();
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTest_TSimpleItemFactory.CreateProc();
|
||||||
|
var
|
||||||
|
a : IItemFactory;
|
||||||
|
b : TSimpleItemFactoryCrack;
|
||||||
|
ok : Boolean;
|
||||||
|
begin
|
||||||
|
ok := False;
|
||||||
|
try
|
||||||
|
TSimpleItemFactory.Create(nil);
|
||||||
|
except
|
||||||
|
on e : EServiceConfigException do begin
|
||||||
|
ok := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
CheckEquals(True,ok,'Create(nil)');
|
||||||
|
|
||||||
|
b := TSimpleItemFactoryCrack.Create(TSimpleFactoryItem_A);
|
||||||
|
CheckEquals(TSimpleFactoryItem_A,b.GetItemClass());
|
||||||
|
FreeAndNil(b);
|
||||||
|
|
||||||
|
b := TSimpleItemFactoryCrack.Create(TSimpleFactoryItem_B);
|
||||||
|
CheckEquals(TSimpleFactoryItem_B,b.GetItemClass());
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
RegisterTest(TTest_TIntfPool);
|
RegisterTest(TTest_TIntfPool);
|
||||||
RegisterTest(TTest_TSimpleItemFactoryEx);
|
RegisterTest(TTest_TSimpleItemFactoryEx);
|
||||||
RegisterTest(TTest_TImplementationFactory);
|
RegisterTest(TTest_TImplementationFactory);
|
||||||
|
RegisterTest(TTest_TIntfPoolItem);
|
||||||
|
RegisterTest(TTest_TImplementationFactory);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
RegisterTest(TTest_TIntfPool.Suite);
|
RegisterTest(TTest_TIntfPool.Suite);
|
||||||
RegisterTest(TTest_TSimpleItemFactoryEx.Suite);
|
RegisterTest(TTest_TSimpleItemFactoryEx.Suite);
|
||||||
RegisterTest(TTest_TImplementationFactory.Suite);
|
RegisterTest(TTest_TImplementationFactory.Suite);
|
||||||
|
RegisterTest(TTest_TIntfPoolItem.Suite);
|
||||||
|
RegisterTest(TTest_TImplementationFactory.Suite);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -19,14 +19,12 @@ uses
|
|||||||
Classes, SysUtils,
|
Classes, SysUtils,
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
fpcunit, testutils, testregistry,
|
fpcunit, testutils, testregistry,
|
||||||
{$ELSE}
|
{$ENDIF}
|
||||||
TestFrameWork,
|
{$IFNDEF FPC}
|
||||||
|
TestFrameWork, ActiveX,
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
TypInfo,
|
TypInfo,
|
||||||
base_service_intf;
|
base_service_intf, wst_types, server_service_intf, service_intf;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -285,6 +283,31 @@ type
|
|||||||
|
|
||||||
TEmbeddedArrayOfStringRemotable = class(TArrayOfStringRemotable);
|
TEmbeddedArrayOfStringRemotable = class(TArrayOfStringRemotable);
|
||||||
|
|
||||||
|
TTestSmallRecord = record
|
||||||
|
fieldSmallint : Smallint;
|
||||||
|
fieldWord : Word;
|
||||||
|
fieldString : string;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TTestRecord = record
|
||||||
|
fieldByte : Byte;
|
||||||
|
fieldShortInt : ShortInt;
|
||||||
|
fieldSmallint : Smallint;
|
||||||
|
fieldWord : Word;
|
||||||
|
fieldInteger : Integer;
|
||||||
|
fieldLongWord : LongWord;
|
||||||
|
fieldInt64 : Int64;
|
||||||
|
fieldQWord : QWord;
|
||||||
|
fieldComp : Comp;
|
||||||
|
fieldSingle : Single;
|
||||||
|
fieldDouble : Double;
|
||||||
|
fieldExtended : Extended;
|
||||||
|
fieldCurrency : Currency;
|
||||||
|
fieldBoolean : Boolean;
|
||||||
|
fieldString : string;
|
||||||
|
fieldRecord : TTestSmallRecord;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TTestFormatterSimpleType }
|
{ TTestFormatterSimpleType }
|
||||||
|
|
||||||
TTestFormatterSimpleType= class(TTestCase)
|
TTestFormatterSimpleType= class(TTestCase)
|
||||||
@ -352,6 +375,9 @@ type
|
|||||||
procedure Test_FloatCurrencyArray();
|
procedure Test_FloatCurrencyArray();
|
||||||
|
|
||||||
procedure Test_ComplexInt32S();
|
procedure Test_ComplexInt32S();
|
||||||
|
|
||||||
|
procedure Test_Record_simple();
|
||||||
|
procedure Test_Record_nested();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TTestBinaryFormatter }
|
{ TTestBinaryFormatter }
|
||||||
@ -452,8 +478,43 @@ type
|
|||||||
procedure ParseDate();
|
procedure ParseDate();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TTest_SoapFormatterExceptionBlock }
|
||||||
|
|
||||||
|
TTest_SoapFormatterExceptionBlock = class(TTestCase)
|
||||||
|
protected
|
||||||
|
procedure SetUp(); override;
|
||||||
|
procedure TearDown(); override;
|
||||||
|
function CreateFormatter():IFormatterResponse;
|
||||||
|
function CreateFormatterClient():IFormatterClient;
|
||||||
|
published
|
||||||
|
procedure ExceptBlock_server();
|
||||||
|
procedure ExceptBlock_client();
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TTest_XmlRpcFormatterExceptionBlock }
|
||||||
|
|
||||||
|
TTest_XmlRpcFormatterExceptionBlock = class(TTestCase)
|
||||||
|
protected
|
||||||
|
procedure SetUp(); override;
|
||||||
|
procedure TearDown(); override;
|
||||||
|
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;
|
uses base_binary_formatter, base_soap_formatter, base_xmlrpc_formatter, record_rtti,
|
||||||
|
Math, imp_utils
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
, xmldom, wst_delphi_xml
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF FPC}
|
||||||
|
, DOM, XMLRead, wst_fpc_xml
|
||||||
|
{$ENDIF}
|
||||||
|
, server_service_soap, soap_formatter,
|
||||||
|
server_service_xmlrpc, xmlrpc_formatter;
|
||||||
|
|
||||||
function TTestFormatterSimpleType.Support_ComplextType_with_SimpleContent( ): Boolean;
|
function TTestFormatterSimpleType.Support_ComplextType_with_SimpleContent( ): Boolean;
|
||||||
begin
|
begin
|
||||||
@ -2502,6 +2563,139 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestFormatter.Test_Record_simple();
|
||||||
|
const VAL_1 : Integer = 12; VAL_2 : Integer = -76; VAL_3 = 'wst record sample';
|
||||||
|
var
|
||||||
|
f : IFormatterBase;
|
||||||
|
s : TMemoryStream;
|
||||||
|
x : string;
|
||||||
|
a : TTestSmallRecord;
|
||||||
|
begin
|
||||||
|
s := nil;
|
||||||
|
try
|
||||||
|
a.fieldWord := VAL_1;
|
||||||
|
a.fieldSmallint := VAL_2;
|
||||||
|
a.fieldString := VAL_3;
|
||||||
|
f := CreateFormatter(TypeInfo(TClass_Int));
|
||||||
|
|
||||||
|
f.BeginObject('Root',TypeInfo(TClass_Int));
|
||||||
|
f.Put('a',TypeInfo(TTestSmallRecord),a);
|
||||||
|
f.EndScope();
|
||||||
|
a.fieldWord := 0;
|
||||||
|
a.fieldSmallint := 0;
|
||||||
|
a.fieldString := '';
|
||||||
|
s := TMemoryStream.Create();
|
||||||
|
f.SaveToStream(s); s.SaveToFile(ClassName + '.Test_Record_simple.xml');
|
||||||
|
|
||||||
|
f := CreateFormatter(TypeInfo(TClass_Int));
|
||||||
|
s.Position := 0;
|
||||||
|
f.LoadFromStream(s);
|
||||||
|
x := 'Root';
|
||||||
|
f.BeginObjectRead(x,TypeInfo(TClass_Int));
|
||||||
|
x := 'a';
|
||||||
|
f.Get(TypeInfo(TTestSmallRecord),x,a);
|
||||||
|
f.EndScopeRead();
|
||||||
|
|
||||||
|
CheckEquals(VAL_1,a.fieldWord);
|
||||||
|
CheckEquals(VAL_2,a.fieldSmallint);
|
||||||
|
CheckEquals(VAL_3,a.fieldString);
|
||||||
|
finally
|
||||||
|
s.Free();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTestFormatter.Test_Record_nested();
|
||||||
|
const
|
||||||
|
VAL_EPSILON = 0.0001;
|
||||||
|
VAL_EMPTY_RECORD : TTestRecord = (
|
||||||
|
fieldByte : 0;
|
||||||
|
fieldShortInt : 0;
|
||||||
|
fieldSmallint : 0;
|
||||||
|
fieldWord : 0;
|
||||||
|
fieldInteger : 0;
|
||||||
|
fieldLongWord : 0;
|
||||||
|
fieldInt64 : 0;
|
||||||
|
fieldQWord : 0;
|
||||||
|
fieldComp : 0;
|
||||||
|
fieldSingle : 0;
|
||||||
|
fieldDouble : 0;
|
||||||
|
fieldExtended : 0;
|
||||||
|
fieldCurrency : 0;
|
||||||
|
fieldBoolean : False;
|
||||||
|
fieldString : '';
|
||||||
|
fieldRecord : ( fieldSmallint : 0; fieldWord : 0; fieldString : '');
|
||||||
|
);
|
||||||
|
VAL_RECORD : TTestRecord = (
|
||||||
|
fieldByte : 12;
|
||||||
|
fieldShortInt : -10;
|
||||||
|
fieldSmallint : 76;
|
||||||
|
fieldWord : 34;
|
||||||
|
fieldInteger : -45;
|
||||||
|
fieldLongWord : 567;
|
||||||
|
fieldInt64 : 8910;
|
||||||
|
fieldQWord : 111213;
|
||||||
|
fieldComp : 141516;
|
||||||
|
fieldSingle : 1718;
|
||||||
|
fieldDouble : -1819;
|
||||||
|
fieldExtended : 2021;
|
||||||
|
fieldCurrency : -2122;
|
||||||
|
fieldBoolean : True;
|
||||||
|
fieldString : 'sample record string 0123456789';
|
||||||
|
fieldRecord : ( fieldSmallint : 10; fieldWord : 11; fieldString : 'azertyqwerty');
|
||||||
|
);
|
||||||
|
var
|
||||||
|
f : IFormatterBase;
|
||||||
|
s : TMemoryStream;
|
||||||
|
x : string;
|
||||||
|
a : TTestRecord;
|
||||||
|
begin
|
||||||
|
s := nil;
|
||||||
|
try
|
||||||
|
a := VAL_RECORD;
|
||||||
|
f := CreateFormatter(TypeInfo(TClass_Int));
|
||||||
|
|
||||||
|
f.BeginObject('Root',TypeInfo(TClass_Int));
|
||||||
|
f.Put('a',TypeInfo(TTestRecord),a);
|
||||||
|
f.EndScope();
|
||||||
|
a := VAL_EMPTY_RECORD;
|
||||||
|
s := TMemoryStream.Create();
|
||||||
|
f.SaveToStream(s); s.SaveToFile(ClassName + '.Test_Record_nested.xml');
|
||||||
|
|
||||||
|
f := CreateFormatter(TypeInfo(TClass_Int));
|
||||||
|
s.Position := 0;
|
||||||
|
f.LoadFromStream(s);
|
||||||
|
x := 'Root';
|
||||||
|
f.BeginObjectRead(x,TypeInfo(TClass_Int));
|
||||||
|
x := 'a';
|
||||||
|
f.Get(TypeInfo(TTestRecord),x,a);
|
||||||
|
f.EndScopeRead();
|
||||||
|
|
||||||
|
CheckEquals(VAL_RECORD.fieldBoolean,a.fieldBoolean,'fieldBoolean');
|
||||||
|
CheckEquals(VAL_RECORD.fieldByte,a.fieldByte,'fieldByte');
|
||||||
|
{$IFDEF HAS_COMP}
|
||||||
|
CheckEquals(VAL_RECORD.fieldComp,a.fieldComp,'fieldComp');
|
||||||
|
{$ENDIF}
|
||||||
|
Check(IsZero(VAL_RECORD.fieldCurrency-a.fieldCurrency,VAL_EPSILON),'fieldCurrency');
|
||||||
|
Check(IsZero(VAL_RECORD.fieldExtended-a.fieldExtended,VAL_EPSILON),'fieldExtended');
|
||||||
|
CheckEquals(VAL_RECORD.fieldInt64,a.fieldInt64,'fieldInt64');
|
||||||
|
CheckEquals(VAL_RECORD.fieldInteger,a.fieldInteger,'fieldInteger');
|
||||||
|
Check(VAL_RECORD.fieldLongWord = a.fieldLongWord,'fieldLongWord');
|
||||||
|
{$IFDEF HAS_QWORD}
|
||||||
|
CheckEquals(VAL_RECORD.fieldQWord,a.fieldQWord,'fieldQWord');
|
||||||
|
{$ENDIF}
|
||||||
|
CheckEquals(VAL_RECORD.fieldRecord.fieldSmallint,a.fieldRecord.fieldSmallint,'fieldSmallint');
|
||||||
|
CheckEquals(VAL_RECORD.fieldRecord.fieldString,a.fieldRecord.fieldString,'fieldString');
|
||||||
|
CheckEquals(VAL_RECORD.fieldRecord.fieldWord,a.fieldRecord.fieldWord,'fieldWord');
|
||||||
|
CheckEquals(VAL_RECORD.fieldShortInt,a.fieldShortInt,'fieldShortInt');
|
||||||
|
Check(IsZero(VAL_RECORD.fieldSingle-a.fieldSingle,VAL_EPSILON),'fieldSingle');
|
||||||
|
CheckEquals(VAL_RECORD.fieldSmallint,a.fieldSmallint,'fieldSmallint');
|
||||||
|
CheckEquals(VAL_RECORD.fieldString,a.fieldString,'fieldString');
|
||||||
|
CheckEquals(VAL_RECORD.fieldWord,a.fieldWord,'fieldWord');
|
||||||
|
finally
|
||||||
|
s.Free();
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ TTestBinaryFormatter }
|
{ TTestBinaryFormatter }
|
||||||
|
|
||||||
@ -3151,6 +3345,386 @@ begin
|
|||||||
Result := False;
|
Result := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TTest_SoapFormatterExceptionBlock }
|
||||||
|
|
||||||
|
function TTest_SoapFormatterExceptionBlock.CreateFormatter() : IFormatterResponse;
|
||||||
|
begin
|
||||||
|
Result := server_service_soap.TSOAPFormatter.Create() as IFormatterResponse;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TTest_SoapFormatterExceptionBlock.CreateFormatterClient() : IFormatterClient;
|
||||||
|
begin
|
||||||
|
Result := soap_formatter.TSOAPFormatter.Create() as IFormatterClient;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function FindAttributeByValueInNode(
|
||||||
|
const AAttValue : string;
|
||||||
|
const ANode : TDOMNode;
|
||||||
|
out AResAtt : string
|
||||||
|
):boolean;
|
||||||
|
Var
|
||||||
|
i,c : Integer;
|
||||||
|
begin
|
||||||
|
AResAtt := '';
|
||||||
|
if Assigned(ANode) and
|
||||||
|
Assigned(ANode.Attributes) and
|
||||||
|
( ANode.Attributes.Length > 0 )
|
||||||
|
then begin
|
||||||
|
c := Pred(ANode.Attributes.Length);
|
||||||
|
For i := 0 To c Do Begin
|
||||||
|
If AnsiSameText(AAttValue,ANode.Attributes.Item[i].NodeValue) Then Begin
|
||||||
|
AResAtt := ANode.Attributes.Item[i].NodeName;
|
||||||
|
Result := True;
|
||||||
|
Exit;
|
||||||
|
End;
|
||||||
|
End;
|
||||||
|
end;
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTest_SoapFormatterExceptionBlock.ExceptBlock_server();
|
||||||
|
const
|
||||||
|
VAL_CODE = 'Server.CustomCode.Test'; VAL_MSG = 'This is a sample exception message.';
|
||||||
|
var
|
||||||
|
f : IFormatterResponse;
|
||||||
|
strm : TMemoryStream;
|
||||||
|
|
||||||
|
envNd : TDOMElement;
|
||||||
|
bdyNd, fltNd, hdrNd, tmpNode : TDOMNode;
|
||||||
|
nsShortName,eltName, msgBuff : string;
|
||||||
|
doc : TXMLDocument;
|
||||||
|
begin
|
||||||
|
f := CreateFormatter();
|
||||||
|
f.BeginExceptionList(VAL_CODE,VAL_MSG);
|
||||||
|
f.EndExceptionList();
|
||||||
|
strm := TMemoryStream.Create();
|
||||||
|
try
|
||||||
|
f.SaveToStream(strm);strm.SaveToFile('TTest_SoapFormatterExceptionBlock.ExceptBlock.xml');
|
||||||
|
strm.Position := 0;
|
||||||
|
ReadXMLFile(doc,strm);
|
||||||
|
if FindAttributeByValueInNode(sSOAP_ENV,doc.DocumentElement,nsShortName) or
|
||||||
|
FindAttributeByValueInNode('"' + sSOAP_ENV + '"',doc.DocumentElement,nsShortName)
|
||||||
|
then begin
|
||||||
|
nsShortName := Copy(nsShortName,1 + Pos(':',nsShortName),MaxInt);
|
||||||
|
if not IsStrEmpty(nsShortName) then
|
||||||
|
nsShortName := nsShortName + ':';
|
||||||
|
end else begin
|
||||||
|
nsShortName := '';
|
||||||
|
end;
|
||||||
|
eltName := nsShortName + sENVELOPE;
|
||||||
|
envNd := doc.DocumentElement;
|
||||||
|
if not SameText(eltName,envNd.NodeName) then
|
||||||
|
check(False,Format('XML root node must be "Envelope", found : "%s"',[envNd.NodeName + ':::' + nsShortName]));
|
||||||
|
|
||||||
|
bdyNd := envNd.FirstChild;
|
||||||
|
if not Assigned(bdyNd) then
|
||||||
|
check(False,'Node not found : "Body".');
|
||||||
|
|
||||||
|
eltName := nsShortName + 'Body';
|
||||||
|
if not SameText(bdyNd.NodeName,eltName) then begin
|
||||||
|
check(False,'Node not found : "Body".');
|
||||||
|
end;
|
||||||
|
|
||||||
|
bdyNd := envNd.FirstChild;
|
||||||
|
If Not Assigned(bdyNd) Then
|
||||||
|
check(False,'Node not found : "Body"');
|
||||||
|
If Not SameText(bdyNd.NodeName,eltName) Then
|
||||||
|
bdyNd := bdyNd.NextSibling;
|
||||||
|
If Not Assigned(bdyNd) Then
|
||||||
|
Check(False,'Node not found : "Body"');
|
||||||
|
If Not Assigned(bdyNd.FirstChild) Then
|
||||||
|
Check(False,'Response Node not found');
|
||||||
|
eltName := nsShortName + 'Fault';
|
||||||
|
if SameText(eltName,bdyNd.FirstChild.NodeName) then begin
|
||||||
|
fltNd := bdyNd.FirstChild;
|
||||||
|
eltName := 'faultcode';
|
||||||
|
tmpNode := FindNode(fltNd,eltName);
|
||||||
|
if not Assigned(tmpNode) then
|
||||||
|
Check(False,Format('"%s" Node not found.',[eltName]));
|
||||||
|
if tmpNode.HasChildNodes then
|
||||||
|
msgBuff := tmpNode.FirstChild.NodeValue
|
||||||
|
else
|
||||||
|
msgBuff := tmpNode.NodeValue;
|
||||||
|
CheckEquals(VAL_CODE,msgBuff,eltName);
|
||||||
|
|
||||||
|
eltName := 'faultstring';
|
||||||
|
tmpNode := FindNode(fltNd,eltName);
|
||||||
|
if not Assigned(tmpNode) then
|
||||||
|
Check(False,Format('"%s" Node not found.',[eltName]));
|
||||||
|
if tmpNode.HasChildNodes then
|
||||||
|
msgBuff := tmpNode.FirstChild.NodeValue
|
||||||
|
else
|
||||||
|
msgBuff := tmpNode.NodeValue;
|
||||||
|
CheckEquals(VAL_MSG,msgBuff,eltName);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FreeAndNil(strm);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTest_SoapFormatterExceptionBlock.ExceptBlock_client();
|
||||||
|
const
|
||||||
|
VAL_CODE = 'Server.CustomCode.Test'; VAL_MSG = 'This is a sample exception message.';
|
||||||
|
VAL_STREAM =
|
||||||
|
'<?xml version="1.0"?> '+
|
||||||
|
' <SOAP-ENV:Envelope ' +
|
||||||
|
' xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' +
|
||||||
|
' xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" ' +
|
||||||
|
' xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> ' +
|
||||||
|
' <SOAP-ENV:Body> '+
|
||||||
|
' <SOAP-ENV:Fault> '+
|
||||||
|
' <faultcode>' + VAL_CODE + '</faultcode> '+
|
||||||
|
' <faultstring>' + VAL_MSG +'</faultstring> '+
|
||||||
|
' </SOAP-ENV:Fault> '+
|
||||||
|
' </SOAP-ENV:Body> '+
|
||||||
|
' </SOAP-ENV:Envelope>';
|
||||||
|
var
|
||||||
|
f : IFormatterClient;
|
||||||
|
strm : TStringStream;
|
||||||
|
excpt_code, excpt_msg : string;
|
||||||
|
begin
|
||||||
|
excpt_code := '';
|
||||||
|
excpt_msg := '';
|
||||||
|
f := CreateFormatterClient();
|
||||||
|
strm := TStringStream.Create(VAL_STREAM);
|
||||||
|
try
|
||||||
|
strm.Position := 0;
|
||||||
|
f.LoadFromStream(strm);
|
||||||
|
try
|
||||||
|
f.BeginCallRead(nil);
|
||||||
|
Check(False,'BeginCallRead() should raise an exception.');
|
||||||
|
except
|
||||||
|
on e : ESOAPException 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;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
function __TTestSmallRecord_TYPEINFO_FUNC__() : PTypeInfo;
|
||||||
|
var
|
||||||
|
p : ^TTestSmallRecord;
|
||||||
|
r : TTestSmallRecord;
|
||||||
|
begin
|
||||||
|
p := @r;
|
||||||
|
Result := MakeRawTypeInfo(
|
||||||
|
'TTestSmallRecord',
|
||||||
|
SizeOf(TTestSmallRecord),
|
||||||
|
[ PtrUInt(@(p^.fieldSmallint)) - PtrUInt(p), PtrUInt(@(p^.fieldWord)) - PtrUInt(p), PtrUInt(@(p^.fieldString)) - PtrUInt(p) ],
|
||||||
|
[ TypeInfo(SmallInt), TypeInfo(Word), TypeInfo(String) ]
|
||||||
|
);
|
||||||
|
end;
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
function __TTestRecord_TYPEINFO_FUNC__() : PTypeInfo;
|
||||||
|
var
|
||||||
|
p : ^TTestRecord;
|
||||||
|
r : TTestRecord;
|
||||||
|
begin
|
||||||
|
p := @r;
|
||||||
|
Result := MakeRawTypeInfo(
|
||||||
|
'TTestRecord',
|
||||||
|
SizeOf(TTestRecord),
|
||||||
|
[ PtrUInt(@(p^.fieldByte)) - PtrUInt(p), PtrUInt(@(p^.fieldShortInt)) - PtrUInt(p), PtrUInt(@(p^.fieldSmallint)) - PtrUInt(p), PtrUInt(@(p^.fieldWord)) - PtrUInt(p), PtrUInt(@(p^.fieldInteger)) - PtrUInt(p), PtrUInt(@(p^.fieldLongWord)) - PtrUInt(p), PtrUInt(@(p^.fieldInt64)) - PtrUInt(p), PtrUInt(@(p^.fieldQWord)) - PtrUInt(p), PtrUInt(@(p^.fieldComp)) - PtrUInt(p), PtrUInt(@(p^.fieldSingle)) - PtrUInt(p), PtrUInt(@(p^.fieldDouble)) - PtrUInt(p), PtrUInt(@(p^.fieldExtended)) - PtrUInt(p), PtrUInt(@(p^.fieldCurrency)) - PtrUInt(p), PtrUInt(@(p^.fieldBoolean)) - PtrUInt(p), PtrUInt(@(p^.fieldString)) - PtrUInt(p), PtrUInt(@(p^.fieldRecord)) - PtrUInt(p) ],
|
||||||
|
[ TypeInfo(Byte), TypeInfo(ShortInt), TypeInfo(SmallInt), TypeInfo(Word), TypeInfo(Integer), TypeInfo(LongWord), TypeInfo(Int64), TypeInfo(QWord), TypeInfo(Comp), TypeInfo(Single), TypeInfo(Double), TypeInfo(Extended), TypeInfo(Currency), TypeInfo(Boolean), TypeInfo(String), TypeInfo(TTestSmallRecord) ]
|
||||||
|
);
|
||||||
|
end;
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
procedure TTest_SoapFormatterExceptionBlock.SetUp();
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
CoInitialize(nil);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTest_SoapFormatterExceptionBlock.TearDown();
|
||||||
|
begin
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
CoUninitialize();
|
||||||
|
{$ENDIF}
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TTest_XmlRpcFormatterExceptionBlock }
|
||||||
|
|
||||||
|
procedure TTest_XmlRpcFormatterExceptionBlock.SetUp();
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
CoInitialize(nil);
|
||||||
|
{$ENDIF}
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTest_XmlRpcFormatterExceptionBlock.TearDown();
|
||||||
|
begin
|
||||||
|
{$IFNDEF FPC}
|
||||||
|
CoUninitialize();
|
||||||
|
{$ENDIF}
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TTest_XmlRpcFormatterExceptionBlock.CreateFormatter() : IFormatterResponse;
|
||||||
|
begin
|
||||||
|
Result := server_service_xmlrpc.TXmlRpcFormatter.Create() as IFormatterResponse;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TTest_XmlRpcFormatterExceptionBlock.CreateFormatterClient() : IFormatterClient;
|
||||||
|
begin
|
||||||
|
Result := xmlrpc_formatter.TXmlRpcFormatter.Create() as IFormatterClient;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTest_XmlRpcFormatterExceptionBlock.ExceptBlock_server();
|
||||||
|
function loc_FindNode(AScope : TDOMNode; const ANodeName: string): TDOMNode;
|
||||||
|
var
|
||||||
|
memberNode, tmpNode : TDOMNode;
|
||||||
|
i : Integer;
|
||||||
|
chilNodes : TDOMNodeList;
|
||||||
|
nodeFound : Boolean;
|
||||||
|
begin
|
||||||
|
Result := nil;
|
||||||
|
if AScope.HasChildNodes() then begin
|
||||||
|
nodeFound := False;
|
||||||
|
memberNode := AScope.FirstChild;
|
||||||
|
while ( not nodeFound ) and ( memberNode <> nil ) do begin
|
||||||
|
if memberNode.HasChildNodes() then begin
|
||||||
|
chilNodes := memberNode.ChildNodes;
|
||||||
|
for i := 0 to Pred(GetNodeListCount(chilNodes)) do begin
|
||||||
|
tmpNode := chilNodes.Item[i];
|
||||||
|
if AnsiSameText(sNAME,tmpNode.NodeName) and
|
||||||
|
( tmpNode.FirstChild <> nil ) and
|
||||||
|
AnsiSameText(ANodeName,tmpNode.FirstChild.NodeValue)
|
||||||
|
then begin
|
||||||
|
nodeFound := True;
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if nodeFound then begin
|
||||||
|
tmpNode := FindNode(memberNode,sVALUE);
|
||||||
|
if ( tmpNode <> nil ) and ( tmpNode.FirstChild <> nil ) then begin
|
||||||
|
Result := tmpNode.FirstChild;
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
memberNode := memberNode.NextSibling;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
const VAL_CODE = '1210'; VAL_MSG = 'This is a sample exception message.';
|
||||||
|
var
|
||||||
|
f : IFormatterResponse;
|
||||||
|
strm : TMemoryStream;
|
||||||
|
callNode : TDOMElement;
|
||||||
|
faultNode, faultStruct, tmpNode : TDOMNode;
|
||||||
|
doc : TXMLDocument;
|
||||||
|
eltName : string;
|
||||||
|
excpt_Obj : EXmlRpcException;
|
||||||
|
excpt_code, excpt_msg : string;
|
||||||
|
begin
|
||||||
|
f := CreateFormatter();
|
||||||
|
f.BeginExceptionList(VAL_CODE,VAL_MSG);
|
||||||
|
f.EndExceptionList();
|
||||||
|
strm := TMemoryStream.Create();
|
||||||
|
try
|
||||||
|
f.SaveToStream(strm);strm.SaveToFile('TTest_XmlRpcFormatterExceptionBlock.ExceptBlock.xml');
|
||||||
|
strm.Position := 0;
|
||||||
|
ReadXMLFile(doc,strm);
|
||||||
|
callNode := doc.DocumentElement;
|
||||||
|
if not SameText(base_xmlrpc_formatter.sMETHOD_RESPONSE,callNode.NodeName) then
|
||||||
|
Check(False,Format('XML root node must be "%s".',[base_xmlrpc_formatter.sMETHOD_RESPONSE]));
|
||||||
|
|
||||||
|
faultNode := FindNode(callNode,base_xmlrpc_formatter.sFAULT);
|
||||||
|
if ( faultNode = nil ) then begin
|
||||||
|
Check(False,Format('Invalid XmlRPC response message, "%s" or "%s" are not present.',[base_xmlrpc_formatter.sPARAMS,base_xmlrpc_formatter.sFAULT]));
|
||||||
|
end;
|
||||||
|
tmpNode := FindNode(faultNode,base_xmlrpc_formatter.sVALUE);
|
||||||
|
if ( tmpNode = nil ) then begin
|
||||||
|
Check(False,Format('Invalid XmlRPC fault response message, "%s" is not present.',[base_xmlrpc_formatter.sVALUE]));
|
||||||
|
end;
|
||||||
|
faultStruct := FindNode(tmpNode,XmlRpcDataTypeNames[xdtStruct]);
|
||||||
|
if ( faultStruct = nil ) then begin
|
||||||
|
Check(False,Format('Invalid XmlRPC fault response message, "%s" is not present.',[XmlRpcDataTypeNames[xdtStruct]]));
|
||||||
|
end;
|
||||||
|
tmpNode := loc_FindNode(faultStruct,base_xmlrpc_formatter.sFAULT_CODE);
|
||||||
|
if ( tmpNode = nil ) then begin
|
||||||
|
Check(False,Format('Invalid XmlRPC fault response message, "%s" is not present.',[base_xmlrpc_formatter.sFAULT_CODE]));
|
||||||
|
end;
|
||||||
|
excpt_code := tmpNode.FirstChild.NodeValue;
|
||||||
|
CheckEquals(VAL_CODE,excpt_code,base_xmlrpc_formatter.sFAULT_STRING);
|
||||||
|
tmpNode := loc_FindNode(faultStruct,base_xmlrpc_formatter.sFAULT_STRING);
|
||||||
|
if ( tmpNode = nil ) then begin
|
||||||
|
Check(False,Format('Invalid XmlRPC fault response message, "%s" is not present.',[base_xmlrpc_formatter.sFAULT_STRING]));
|
||||||
|
end;
|
||||||
|
excpt_msg := tmpNode.FirstChild.NodeValue;
|
||||||
|
CheckEquals(VAL_MSG,excpt_msg,base_xmlrpc_formatter.sFAULT_STRING);
|
||||||
|
finally
|
||||||
|
FreeAndNil(strm);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TTest_XmlRpcFormatterExceptionBlock.ExceptBlock_client();
|
||||||
|
const
|
||||||
|
VAL_CODE = '1210'; VAL_MSG = 'This is a sample exception message.';
|
||||||
|
VAL_STREAM =
|
||||||
|
'<?xml version="1.0"?> ' +
|
||||||
|
' <methodResponse> ' +
|
||||||
|
' <fault> ' +
|
||||||
|
' <value> ' +
|
||||||
|
' <struct> ' +
|
||||||
|
' <member> ' +
|
||||||
|
' <name>faultCode</name> ' +
|
||||||
|
' <value> ' +
|
||||||
|
' <int>' + VAL_CODE + '</int> ' +
|
||||||
|
' </value> ' +
|
||||||
|
' </member> ' +
|
||||||
|
' <member> ' +
|
||||||
|
' <name>faultString</name> ' +
|
||||||
|
' <value> ' +
|
||||||
|
' <string>' + VAL_MSG + '</string> ' +
|
||||||
|
' </value> ' +
|
||||||
|
' </member> ' +
|
||||||
|
' </struct> ' +
|
||||||
|
' </value> ' +
|
||||||
|
' </fault> ' +
|
||||||
|
' </methodResponse>';
|
||||||
|
var
|
||||||
|
f : IFormatterClient;
|
||||||
|
strm : TStringStream;
|
||||||
|
excpt_code, excpt_msg : string;
|
||||||
|
begin
|
||||||
|
excpt_code := '';
|
||||||
|
excpt_msg := '';
|
||||||
|
f := CreateFormatterClient();
|
||||||
|
strm := TStringStream.Create(VAL_STREAM);
|
||||||
|
try
|
||||||
|
strm.Position := 0;
|
||||||
|
f.LoadFromStream(strm);
|
||||||
|
try
|
||||||
|
f.BeginCallRead(nil);
|
||||||
|
Check(False,'BeginCallRead() should raise an exception.');
|
||||||
|
except
|
||||||
|
on e : EXmlRpcException 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;
|
||||||
|
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');
|
||||||
@ -3177,6 +3751,22 @@ initialization
|
|||||||
RegisterExternalPropertyName(sARRAY_STYLE,sEmbedded);
|
RegisterExternalPropertyName(sARRAY_STYLE,sEmbedded);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TTestSmallRecord),'TTestSmallRecord').RegisterExternalPropertyName('__FIELDS__','fieldSmallint;fieldWord;fieldString');
|
||||||
|
{$IFNDEF WST_RECORD_RTTI}
|
||||||
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestSmallRecord)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(TypeInfo(TTestSmallRecord)),GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestSmallRecord)].GetExternalPropertyName('__FIELDS__')));
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
{$IFDEF WST_RECORD_RTTI}
|
||||||
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestSmallRecord)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(__TTestSmallRecord_TYPEINFO_FUNC__()),GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestSmallRecord)].GetExternalPropertyName('__FIELDS__')));
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
|
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TTestRecord),'TTestRecord').RegisterExternalPropertyName('__FIELDS__','fieldByte;fieldShortInt;fieldSmallint;fieldWord;fieldInteger;fieldLongWord;fieldInt64;fieldQWord;fieldComp;fieldSingle;fieldDouble;fieldExtended;fieldCurrency;fieldBoolean;fieldString;fieldRecord');
|
||||||
|
{$IFNDEF WST_RECORD_RTTI}
|
||||||
|
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestRecord)].RegisterObject(FIELDS_STRING,TRecordRttiDataObject.Create(MakeRecordTypeInfo(TypeInfo(TTestRecord)),GetTypeRegistry().ItemByTypeInfo[TypeInfo(TTestRecord)].GetExternalPropertyName('__FIELDS__')));
|
||||||
|
{$ENDIF 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__')));
|
||||||
|
{$ENDIF WST_RECORD_RTTI}
|
||||||
|
|
||||||
{$IFDEF FPC}
|
{$IFDEF FPC}
|
||||||
RegisterTest(TTestArray);
|
RegisterTest(TTestArray);
|
||||||
RegisterTest(TTestSOAPFormatter);
|
RegisterTest(TTestSOAPFormatter);
|
||||||
@ -3190,6 +3780,8 @@ initialization
|
|||||||
|
|
||||||
RegisterTest(TTestXmlRpcFormatterAttributes);
|
RegisterTest(TTestXmlRpcFormatterAttributes);
|
||||||
RegisterTest(TTestXmlRpcFormatter);
|
RegisterTest(TTestXmlRpcFormatter);
|
||||||
|
RegisterTest(TTest_SoapFormatterExceptionBlock);
|
||||||
|
RegisterTest(TTest_XmlRpcFormatterExceptionBlock);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
RegisterTest(TTestArray.Suite);
|
RegisterTest(TTestArray.Suite);
|
||||||
RegisterTest(TTestSOAPFormatter.Suite);
|
RegisterTest(TTestSOAPFormatter.Suite);
|
||||||
@ -3203,5 +3795,9 @@ initialization
|
|||||||
|
|
||||||
RegisterTest(TTestXmlRpcFormatterAttributes.Suite);
|
RegisterTest(TTestXmlRpcFormatterAttributes.Suite);
|
||||||
RegisterTest(TTestXmlRpcFormatter.Suite);
|
RegisterTest(TTestXmlRpcFormatter.Suite);
|
||||||
|
RegisterTest(TTest_SoapFormatterExceptionBlock.Suite);
|
||||||
|
RegisterTest(TTest_XmlRpcFormatterExceptionBlock.Suite);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -27,9 +27,6 @@ uses
|
|||||||
pascal_parser_intf,
|
pascal_parser_intf,
|
||||||
metadata_wsdl;
|
metadata_wsdl;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
{$INCLUDE wst_delphi.inc}
|
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
{ TTestMetadata }
|
{ TTestMetadata }
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<IconPath Value="./"/>
|
<IconPath Value="./"/>
|
||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<ActiveEditorIndexAtStart Value="4"/>
|
<ActiveEditorIndexAtStart Value="2"/>
|
||||||
</General>
|
</General>
|
||||||
<PublishOptions>
|
<PublishOptions>
|
||||||
<Version Value="2"/>
|
<Version Value="2"/>
|
||||||
@ -27,27 +27,25 @@
|
|||||||
<PackageName Value="FPCUnitTestRunner"/>
|
<PackageName Value="FPCUnitTestRunner"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="72">
|
<Units Count="74">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="wst_test_suite.lpr"/>
|
<Filename Value="wst_test_suite.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="wst_test_suite"/>
|
<UnitName Value="wst_test_suite"/>
|
||||||
<CursorPos X="9" Y="5"/>
|
<CursorPos X="48" Y="5"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="4"/>
|
||||||
<EditorIndex Value="5"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
<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="17" Y="1733"/>
|
<CursorPos X="3" Y="901"/>
|
||||||
<TopLine Value="1726"/>
|
<TopLine Value="890"/>
|
||||||
<EditorIndex Value="4"/>
|
<EditorIndex Value="11"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Bookmarks Count="1">
|
<Bookmarks Count="1">
|
||||||
<Item0 X="17" Y="984" ID="3"/>
|
<Item0 X="17" Y="1046" ID="3"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
@ -55,25 +53,29 @@
|
|||||||
<Filename Value="..\..\server_service_soap.pas"/>
|
<Filename Value="..\..\server_service_soap.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="server_service_soap"/>
|
<UnitName Value="server_service_soap"/>
|
||||||
<CursorPos X="38" Y="29"/>
|
<CursorPos X="8" Y="182"/>
|
||||||
<TopLine Value="18"/>
|
<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="26" Y="13"/>
|
<CursorPos X="31" Y="148"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="148"/>
|
||||||
|
<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="15" Y="1479"/>
|
<CursorPos X="31" Y="19"/>
|
||||||
<TopLine Value="1464"/>
|
<TopLine Value="13"/>
|
||||||
<EditorIndex Value="12"/>
|
<EditorIndex Value="14"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
@ -81,13 +83,13 @@
|
|||||||
<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="46" Y="4524"/>
|
<CursorPos X="19" Y="10"/>
|
||||||
<TopLine Value="4490"/>
|
<TopLine Value="10"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Bookmarks Count="2">
|
<Bookmarks Count="2">
|
||||||
<Item0 X="33" Y="1130" ID="0"/>
|
<Item0 X="33" Y="1135" ID="0"/>
|
||||||
<Item1 X="5" Y="1184" ID="1"/>
|
<Item1 X="5" Y="1189" ID="1"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit5>
|
</Unit5>
|
||||||
@ -95,9 +97,9 @@
|
|||||||
<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="1" Y="1"/>
|
<CursorPos X="3" Y="1127"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1116"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="4"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit6>
|
</Unit6>
|
||||||
@ -105,17 +107,19 @@
|
|||||||
<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="1" Y="1"/>
|
<CursorPos X="12" Y="108"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="103"/>
|
||||||
|
<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="14" Y="14"/>
|
<CursorPos X="1" Y="14"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="17"/>
|
<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="490" ID="2"/>
|
||||||
@ -126,34 +130,34 @@
|
|||||||
<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="26" Y="13"/>
|
<CursorPos X="22" Y="21"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="9"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
</Unit9>
|
</Unit9>
|
||||||
<Unit10>
|
<Unit10>
|
||||||
<Filename Value="..\..\metadata_repository.pas"/>
|
<Filename Value="..\..\metadata_repository.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="metadata_repository"/>
|
<UnitName Value="metadata_repository"/>
|
||||||
<CursorPos X="1" Y="334"/>
|
<CursorPos X="51" Y="18"/>
|
||||||
<TopLine Value="337"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
</Unit10>
|
</Unit10>
|
||||||
<Unit11>
|
<Unit11>
|
||||||
<Filename Value="testmetadata_unit.pas"/>
|
<Filename Value="testmetadata_unit.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="testmetadata_unit"/>
|
<UnitName Value="testmetadata_unit"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="30"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="7"/>
|
||||||
<EditorIndex Value="14"/>
|
|
||||||
<UsageCount Value="202"/>
|
<UsageCount Value="202"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit11>
|
</Unit11>
|
||||||
<Unit12>
|
<Unit12>
|
||||||
<Filename Value="..\..\ws_helper\metadata_generator.pas"/>
|
<Filename Value="..\..\ws_helper\metadata_generator.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="metadata_generator"/>
|
<UnitName Value="metadata_generator"/>
|
||||||
<CursorPos X="1" Y="19"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="67"/>
|
<TopLine Value="40"/>
|
||||||
<UsageCount Value="202"/>
|
<UsageCount Value="202"/>
|
||||||
</Unit12>
|
</Unit12>
|
||||||
<Unit13>
|
<Unit13>
|
||||||
@ -161,20 +165,19 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="parserdefs"/>
|
<UnitName Value="parserdefs"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="16"/>
|
||||||
<UsageCount Value="202"/>
|
<UsageCount Value="202"/>
|
||||||
<Bookmarks Count="2">
|
<Bookmarks Count="1">
|
||||||
<Item0 X="45" Y="1146" ID="0"/>
|
<Item0 X="18" Y="1133" ID="2"/>
|
||||||
<Item1 X="18" Y="1133" ID="2"/>
|
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
</Unit13>
|
</Unit13>
|
||||||
<Unit14>
|
<Unit14>
|
||||||
<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="44" Y="21"/>
|
<CursorPos X="1" Y="22"/>
|
||||||
<TopLine Value="209"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="13"/>
|
<EditorIndex Value="16"/>
|
||||||
<UsageCount Value="206"/>
|
<UsageCount Value="206"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit14>
|
</Unit14>
|
||||||
@ -183,61 +186,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="5"/>
|
<UsageCount Value="3"/>
|
||||||
</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="9"/>
|
<UsageCount Value="7"/>
|
||||||
</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="54" Y="19"/>
|
<CursorPos X="25" Y="14"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="3"/>
|
<EditorIndex Value="6"/>
|
||||||
<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="3" Y="38"/>
|
<CursorPos X="15" Y="15"/>
|
||||||
<TopLine Value="27"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="15"/>
|
<EditorIndex Value="13"/>
|
||||||
|
<UsageCount Value="16"/>
|
||||||
|
<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="9"/>
|
<UsageCount Value="7"/>
|
||||||
</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="9"/>
|
<UsageCount Value="7"/>
|
||||||
</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="9"/>
|
<UsageCount Value="7"/>
|
||||||
</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="9"/>
|
<UsageCount Value="7"/>
|
||||||
</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="9"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit23>
|
</Unit23>
|
||||||
<Unit24>
|
<Unit24>
|
||||||
<Filename Value="D:\Lazarus\components\fpcunit\guitestrunner.pas"/>
|
<Filename Value="D:\Lazarus\components\fpcunit\guitestrunner.pas"/>
|
||||||
@ -246,302 +251,280 @@
|
|||||||
<UnitName Value="GuiTestRunner"/>
|
<UnitName Value="GuiTestRunner"/>
|
||||||
<CursorPos X="34" Y="32"/>
|
<CursorPos X="34" Y="32"/>
|
||||||
<TopLine Value="25"/>
|
<TopLine Value="25"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="7"/>
|
||||||
</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="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit25>
|
</Unit25>
|
||||||
<Unit26>
|
<Unit26>
|
||||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\fpcunit\DUnitCompatibleInterface.inc"/>
|
|
||||||
<CursorPos X="1" Y="1"/>
|
|
||||||
<TopLine Value="4"/>
|
|
||||||
<UsageCount Value="1"/>
|
|
||||||
</Unit26>
|
|
||||||
<Unit27>
|
|
||||||
<Filename Value="..\..\imp_utils.pas"/>
|
<Filename Value="..\..\imp_utils.pas"/>
|
||||||
<UnitName Value="imp_utils"/>
|
<UnitName Value="imp_utils"/>
|
||||||
<CursorPos X="15" Y="36"/>
|
<CursorPos X="15" Y="50"/>
|
||||||
<TopLine Value="22"/>
|
<TopLine Value="8"/>
|
||||||
<UsageCount Value="1"/>
|
<EditorIndex Value="3"/>
|
||||||
</Unit27>
|
<UsageCount Value="10"/>
|
||||||
<Unit28>
|
<Loaded Value="True"/>
|
||||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\dom.pp"/>
|
</Unit26>
|
||||||
<UnitName Value="DOM"/>
|
<Unit27>
|
||||||
<CursorPos X="3" Y="51"/>
|
|
||||||
<TopLine Value="41"/>
|
|
||||||
<UsageCount Value="1"/>
|
|
||||||
</Unit28>
|
|
||||||
<Unit29>
|
|
||||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\xmlread.pp"/>
|
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\fcl\xml\xmlread.pp"/>
|
||||||
<UnitName Value="XMLRead"/>
|
<UnitName Value="XMLRead"/>
|
||||||
<CursorPos X="43" Y="13"/>
|
<CursorPos X="43" Y="13"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="3"/>
|
||||||
</Unit29>
|
</Unit27>
|
||||||
<Unit30>
|
<Unit28>
|
||||||
<Filename Value="test_parserdef.pas"/>
|
<Filename Value="test_parserdef.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<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="176"/>
|
<UsageCount Value="198"/>
|
||||||
</Unit30>
|
</Unit28>
|
||||||
<Unit31>
|
<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="6"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit31>
|
</Unit29>
|
||||||
<Unit32>
|
<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="12"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit32>
|
</Unit30>
|
||||||
<Unit33>
|
<Unit31>
|
||||||
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\objpas.pp"/>
|
|
||||||
<UnitName Value="objpas"/>
|
|
||||||
<CursorPos X="47" Y="64"/>
|
|
||||||
<TopLine Value="38"/>
|
|
||||||
<UsageCount Value="1"/>
|
|
||||||
</Unit33>
|
|
||||||
<Unit34>
|
|
||||||
<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="4"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit34>
|
</Unit31>
|
||||||
<Unit35>
|
<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="12"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit35>
|
</Unit32>
|
||||||
<Unit36>
|
<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="8" Y="1352"/>
|
<CursorPos X="32" Y="64"/>
|
||||||
<TopLine Value="1335"/>
|
<TopLine Value="49"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="5"/>
|
||||||
<UsageCount Value="114"/>
|
<UsageCount Value="136"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit36>
|
</Unit33>
|
||||||
<Unit37>
|
<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="19"/>
|
<UsageCount Value="17"/>
|
||||||
</Unit37>
|
</Unit34>
|
||||||
<Unit38>
|
<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="29"/>
|
<UsageCount Value="27"/>
|
||||||
</Unit38>
|
</Unit35>
|
||||||
<Unit39>
|
<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="19"/>
|
<UsageCount Value="17"/>
|
||||||
</Unit39>
|
</Unit36>
|
||||||
<Unit40>
|
<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="18"/>
|
<UsageCount Value="16"/>
|
||||||
</Unit40>
|
</Unit37>
|
||||||
<Unit41>
|
<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="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit41>
|
</Unit38>
|
||||||
<Unit42>
|
<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="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit42>
|
</Unit39>
|
||||||
<Unit43>
|
<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="8"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit43>
|
</Unit40>
|
||||||
<Unit44>
|
<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="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit44>
|
</Unit41>
|
||||||
<Unit45>
|
<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="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit45>
|
</Unit42>
|
||||||
<Unit46>
|
<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="9"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit46>
|
</Unit43>
|
||||||
<Unit47>
|
<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="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit47>
|
</Unit44>
|
||||||
<Unit48>
|
<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="8"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit48>
|
</Unit45>
|
||||||
<Unit49>
|
<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="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit49>
|
</Unit46>
|
||||||
<Unit50>
|
<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="12"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit50>
|
</Unit47>
|
||||||
<Unit51>
|
<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="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit51>
|
</Unit48>
|
||||||
<Unit52>
|
<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="20" Y="168"/>
|
||||||
<TopLine Value="166"/>
|
<TopLine Value="166"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit52>
|
</Unit49>
|
||||||
<Unit53>
|
<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="442"/>
|
||||||
<TopLine Value="556"/>
|
<TopLine Value="556"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit53>
|
</Unit50>
|
||||||
<Unit54>
|
<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="8" Y="38"/>
|
<CursorPos X="3" Y="53"/>
|
||||||
<TopLine Value="11"/>
|
<TopLine Value="51"/>
|
||||||
<UsageCount Value="60"/>
|
<UsageCount Value="82"/>
|
||||||
</Unit54>
|
</Unit51>
|
||||||
<Unit55>
|
<Unit52>
|
||||||
<Filename Value="..\..\wst_global.inc"/>
|
<Filename Value="..\..\wst_global.inc"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="20" Y="11"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit55>
|
</Unit52>
|
||||||
<Unit56>
|
<Unit53>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\custapp.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\custapp.pp"/>
|
||||||
<UnitName Value="CustApp"/>
|
<UnitName Value="CustApp"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit56>
|
</Unit53>
|
||||||
<Unit57>
|
<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="29" Y="43"/>
|
<CursorPos X="71" Y="3"/>
|
||||||
<TopLine Value="3"/>
|
<TopLine Value="3"/>
|
||||||
<EditorIndex Value="16"/>
|
<EditorIndex Value="17"/>
|
||||||
<UsageCount Value="51"/>
|
<UsageCount Value="73"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit57>
|
</Unit54>
|
||||||
<Unit58>
|
<Unit55>
|
||||||
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-fpcunit\src\fpcunit.pp"/>
|
||||||
<UnitName Value="fpcunit"/>
|
<UnitName Value="fpcunit"/>
|
||||||
<CursorPos X="21" Y="99"/>
|
<CursorPos X="66" Y="231"/>
|
||||||
<TopLine Value="84"/>
|
<TopLine Value="231"/>
|
||||||
<UsageCount Value="15"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit58>
|
</Unit55>
|
||||||
<Unit59>
|
<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="39" Y="27"/>
|
<CursorPos X="11" Y="32"/>
|
||||||
<TopLine Value="17"/>
|
<TopLine Value="17"/>
|
||||||
<EditorIndex Value="15"/>
|
<UsageCount Value="15"/>
|
||||||
<UsageCount Value="17"/>
|
</Unit56>
|
||||||
<Loaded Value="True"/>
|
<Unit57>
|
||||||
</Unit59>
|
|
||||||
<Unit60>
|
|
||||||
<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="9"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit60>
|
</Unit57>
|
||||||
<Unit61>
|
<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="11" Y="49"/>
|
<CursorPos X="21" Y="9"/>
|
||||||
<TopLine Value="47"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="14"/>
|
<UsageCount Value="12"/>
|
||||||
</Unit61>
|
</Unit58>
|
||||||
<Unit62>
|
<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="79" Y="218"/>
|
||||||
<TopLine Value="203"/>
|
<TopLine Value="203"/>
|
||||||
<UsageCount Value="12"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit62>
|
</Unit59>
|
||||||
<Unit63>
|
<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="11"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit63>
|
</Unit60>
|
||||||
<Unit64>
|
<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="11"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit64>
|
</Unit61>
|
||||||
<Unit65>
|
<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="16" Y="2045"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="2031"/>
|
<TopLine Value="31"/>
|
||||||
<EditorIndex Value="6"/>
|
<UsageCount Value="10"/>
|
||||||
<UsageCount Value="12"/>
|
</Unit62>
|
||||||
<Loaded Value="True"/>
|
<Unit63>
|
||||||
</Unit65>
|
|
||||||
<Unit66>
|
|
||||||
<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="10"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit66>
|
</Unit63>
|
||||||
<Unit67>
|
<Unit64>
|
||||||
<Filename Value="..\..\type_lib_edtr\umoduleedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\umoduleedit.pas"/>
|
||||||
<ComponentName Value="fModuleEdit"/>
|
<ComponentName Value="fModuleEdit"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -549,11 +532,9 @@
|
|||||||
<UnitName Value="umoduleedit"/>
|
<UnitName Value="umoduleedit"/>
|
||||||
<CursorPos X="47" Y="21"/>
|
<CursorPos X="47" Y="21"/>
|
||||||
<TopLine Value="18"/>
|
<TopLine Value="18"/>
|
||||||
<EditorIndex Value="7"/>
|
<UsageCount Value="10"/>
|
||||||
<UsageCount Value="12"/>
|
</Unit64>
|
||||||
<Loaded Value="True"/>
|
<Unit65>
|
||||||
</Unit67>
|
|
||||||
<Unit68>
|
|
||||||
<Filename Value="..\..\type_lib_edtr\ubindingedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\ubindingedit.pas"/>
|
||||||
<ComponentName Value="fBindingEdit"/>
|
<ComponentName Value="fBindingEdit"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -561,11 +542,9 @@
|
|||||||
<UnitName Value="ubindingedit"/>
|
<UnitName Value="ubindingedit"/>
|
||||||
<CursorPos X="41" Y="21"/>
|
<CursorPos X="41" Y="21"/>
|
||||||
<TopLine Value="18"/>
|
<TopLine Value="18"/>
|
||||||
<EditorIndex Value="8"/>
|
<UsageCount Value="10"/>
|
||||||
<UsageCount Value="12"/>
|
</Unit65>
|
||||||
<Loaded Value="True"/>
|
<Unit66>
|
||||||
</Unit68>
|
|
||||||
<Unit69>
|
|
||||||
<Filename Value="..\..\type_lib_edtr\ufarrayedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\ufarrayedit.pas"/>
|
||||||
<ComponentName Value="fArrayEdit"/>
|
<ComponentName Value="fArrayEdit"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -573,11 +552,9 @@
|
|||||||
<UnitName Value="ufarrayedit"/>
|
<UnitName Value="ufarrayedit"/>
|
||||||
<CursorPos X="41" Y="9"/>
|
<CursorPos X="41" Y="9"/>
|
||||||
<TopLine Value="5"/>
|
<TopLine Value="5"/>
|
||||||
<EditorIndex Value="9"/>
|
<UsageCount Value="10"/>
|
||||||
<UsageCount Value="12"/>
|
</Unit66>
|
||||||
<Loaded Value="True"/>
|
<Unit67>
|
||||||
</Unit69>
|
|
||||||
<Unit70>
|
|
||||||
<Filename Value="..\..\type_lib_edtr\uftypealiasedit.pas"/>
|
<Filename Value="..\..\type_lib_edtr\uftypealiasedit.pas"/>
|
||||||
<ComponentName Value="fTypeAliasEdit"/>
|
<ComponentName Value="fTypeAliasEdit"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -585,11 +562,9 @@
|
|||||||
<UnitName Value="uftypealiasedit"/>
|
<UnitName Value="uftypealiasedit"/>
|
||||||
<CursorPos X="22" Y="9"/>
|
<CursorPos X="22" Y="9"/>
|
||||||
<TopLine Value="7"/>
|
<TopLine Value="7"/>
|
||||||
<EditorIndex Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
<UsageCount Value="12"/>
|
</Unit67>
|
||||||
<Loaded Value="True"/>
|
<Unit68>
|
||||||
</Unit70>
|
|
||||||
<Unit71>
|
|
||||||
<Filename Value="..\..\type_lib_edtr\ufrmsaveoption.pas"/>
|
<Filename Value="..\..\type_lib_edtr\ufrmsaveoption.pas"/>
|
||||||
<ComponentName Value="frmSaveOptions"/>
|
<ComponentName Value="frmSaveOptions"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
@ -597,12 +572,76 @@
|
|||||||
<UnitName Value="ufrmsaveoption"/>
|
<UnitName Value="ufrmsaveoption"/>
|
||||||
<CursorPos X="22" Y="9"/>
|
<CursorPos X="22" Y="9"/>
|
||||||
<TopLine Value="6"/>
|
<TopLine Value="6"/>
|
||||||
<EditorIndex Value="11"/>
|
<UsageCount Value="10"/>
|
||||||
|
</Unit68>
|
||||||
|
<Unit69>
|
||||||
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||||
|
<CursorPos X="4" Y="64"/>
|
||||||
|
<TopLine Value="64"/>
|
||||||
|
<UsageCount Value="8"/>
|
||||||
|
</Unit69>
|
||||||
|
<Unit70>
|
||||||
|
<Filename Value="..\..\server_service_xmlrpc.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="server_service_xmlrpc"/>
|
||||||
|
<CursorPos X="14" Y="144"/>
|
||||||
|
<TopLine Value="136"/>
|
||||||
|
<EditorIndex Value="10"/>
|
||||||
|
<UsageCount Value="27"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit70>
|
||||||
|
<Unit71>
|
||||||
|
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\xmlread.pp"/>
|
||||||
|
<UnitName Value="XMLRead"/>
|
||||||
|
<CursorPos X="6" Y="37"/>
|
||||||
|
<TopLine Value="31"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit71>
|
||||||
|
<Unit72>
|
||||||
|
<Filename Value="..\..\xmlrpc_formatter.pas"/>
|
||||||
|
<UnitName Value="xmlrpc_formatter"/>
|
||||||
|
<CursorPos X="31" Y="131"/>
|
||||||
|
<TopLine Value="116"/>
|
||||||
|
<EditorIndex Value="12"/>
|
||||||
<UsageCount Value="12"/>
|
<UsageCount Value="12"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit71>
|
</Unit72>
|
||||||
|
<Unit73>
|
||||||
|
<Filename Value="..\..\record_rtti.pas"/>
|
||||||
|
<UnitName Value="record_rtti"/>
|
||||||
|
<CursorPos X="3" Y="248"/>
|
||||||
|
<TopLine Value="13"/>
|
||||||
|
<EditorIndex Value="2"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit73>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
<JumpHistory Count="6" HistoryIndex="5">
|
||||||
|
<Position1>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1211" Column="10" TopLine="1211"/>
|
||||||
|
</Position1>
|
||||||
|
<Position2>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="1" Column="1" TopLine="1"/>
|
||||||
|
</Position2>
|
||||||
|
<Position3>
|
||||||
|
<Filename Value="..\..\base_service_intf.pas"/>
|
||||||
|
<Caret Line="4614" Column="1" TopLine="4572"/>
|
||||||
|
</Position3>
|
||||||
|
<Position4>
|
||||||
|
<Filename Value="..\..\server_binary_formatter.pas"/>
|
||||||
|
<Caret Line="121" Column="11" TopLine="111"/>
|
||||||
|
</Position4>
|
||||||
|
<Position5>
|
||||||
|
<Filename Value="..\..\server_binary_formatter.pas"/>
|
||||||
|
<Caret Line="21" Column="22" TopLine="1"/>
|
||||||
|
</Position5>
|
||||||
|
<Position6>
|
||||||
|
<Filename Value="..\..\base_binary_formatter.pas"/>
|
||||||
|
<Caret Line="19" Column="31" TopLine="13"/>
|
||||||
|
</Position6>
|
||||||
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
<Version Value="5"/>
|
<Version Value="5"/>
|
||||||
@ -622,6 +661,10 @@
|
|||||||
</SyntaxOptions>
|
</SyntaxOptions>
|
||||||
</Parsing>
|
</Parsing>
|
||||||
<CodeGeneration>
|
<CodeGeneration>
|
||||||
|
<Checks>
|
||||||
|
<RangeChecks Value="True"/>
|
||||||
|
<OverflowChecks Value="True"/>
|
||||||
|
</Checks>
|
||||||
<Generate Value="Faster"/>
|
<Generate Value="Faster"/>
|
||||||
</CodeGeneration>
|
</CodeGeneration>
|
||||||
<Linking>
|
<Linking>
|
||||||
|
@ -15,7 +15,8 @@ uses
|
|||||||
base_service_intf, base_soap_formatter, binary_formatter, binary_streamer,
|
base_service_intf, base_soap_formatter, binary_formatter, binary_streamer,
|
||||||
server_binary_formatter, metadata_repository,
|
server_binary_formatter, metadata_repository,
|
||||||
metadata_generator, parserdefs, server_service_intf, metadata_wsdl,
|
metadata_generator, parserdefs, server_service_intf, metadata_wsdl,
|
||||||
test_parserdef, base_xmlrpc_formatter, wst_fpc_xml, test_utilities;
|
test_parserdef, base_xmlrpc_formatter, wst_fpc_xml, test_utilities,
|
||||||
|
server_service_xmlrpc;
|
||||||
|
|
||||||
Const
|
Const
|
||||||
ShortOpts = 'alh';
|
ShortOpts = 'alh';
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<IconPath Value="./"/>
|
<IconPath Value="./"/>
|
||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<ActiveEditorIndexAtStart Value="4"/>
|
<ActiveEditorIndexAtStart Value="2"/>
|
||||||
</General>
|
</General>
|
||||||
<VersionInfo>
|
<VersionInfo>
|
||||||
<ProjectVersion Value=""/>
|
<ProjectVersion Value=""/>
|
||||||
@ -32,13 +32,13 @@
|
|||||||
<PackageName Value="LCL"/>
|
<PackageName Value="LCL"/>
|
||||||
</Item2>
|
</Item2>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="81">
|
<Units Count="83">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="typ_lib_edtr.lpr"/>
|
<Filename Value="typ_lib_edtr.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<CursorPos X="1" Y="21"/>
|
<CursorPos X="1" Y="21"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="4"/>
|
<EditorIndex Value="2"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
@ -49,8 +49,8 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<ResourceFilename Value="uwsttypelibraryedit.lrs"/>
|
<ResourceFilename Value="uwsttypelibraryedit.lrs"/>
|
||||||
<UnitName Value="uwsttypelibraryedit"/>
|
<UnitName Value="uwsttypelibraryedit"/>
|
||||||
<CursorPos X="31" Y="22"/>
|
<CursorPos X="1" Y="234"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="201"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -60,15 +60,15 @@
|
|||||||
<UnitName Value="parserdefs"/>
|
<UnitName Value="parserdefs"/>
|
||||||
<CursorPos X="1" Y="35"/>
|
<CursorPos X="1" Y="35"/>
|
||||||
<TopLine Value="22"/>
|
<TopLine Value="22"/>
|
||||||
<UsageCount Value="41"/>
|
<UsageCount Value="40"/>
|
||||||
</Unit2>
|
</Unit2>
|
||||||
<Unit3>
|
<Unit3>
|
||||||
<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="1086"/>
|
<CursorPos X="39" Y="1634"/>
|
||||||
<TopLine Value="1064"/>
|
<TopLine Value="1628"/>
|
||||||
<EditorIndex Value="13"/>
|
<EditorIndex Value="9"/>
|
||||||
<UsageCount Value="91"/>
|
<UsageCount Value="99"/>
|
||||||
<Bookmarks Count="1">
|
<Bookmarks Count="1">
|
||||||
<Item0 X="65" Y="750" ID="2"/>
|
<Item0 X="65" Y="750" ID="2"/>
|
||||||
</Bookmarks>
|
</Bookmarks>
|
||||||
@ -78,13 +78,10 @@
|
|||||||
<Filename Value="wsdl_generator.pas"/>
|
<Filename Value="wsdl_generator.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="wsdl_generator"/>
|
<UnitName Value="wsdl_generator"/>
|
||||||
<CursorPos X="45" Y="707"/>
|
<CursorPos X="26" Y="13"/>
|
||||||
<TopLine Value="684"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="18"/>
|
<EditorIndex Value="7"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Bookmarks Count="1">
|
|
||||||
<Item0 X="49" Y="446" ID="1"/>
|
|
||||||
</Bookmarks>
|
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
<Unit5>
|
<Unit5>
|
||||||
@ -96,9 +93,7 @@
|
|||||||
<UnitName Value="uabout"/>
|
<UnitName Value="uabout"/>
|
||||||
<CursorPos X="46" Y="22"/>
|
<CursorPos X="46" Y="22"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="1"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit5>
|
</Unit5>
|
||||||
<Unit6>
|
<Unit6>
|
||||||
<Filename Value="ufenumedit.pas"/>
|
<Filename Value="ufenumedit.pas"/>
|
||||||
@ -109,9 +104,7 @@
|
|||||||
<UnitName Value="ufEnumedit"/>
|
<UnitName Value="ufEnumedit"/>
|
||||||
<CursorPos X="27" Y="78"/>
|
<CursorPos X="27" Y="78"/>
|
||||||
<TopLine Value="58"/>
|
<TopLine Value="58"/>
|
||||||
<EditorIndex Value="14"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit6>
|
</Unit6>
|
||||||
<Unit7>
|
<Unit7>
|
||||||
<Filename Value="view_helper.pas"/>
|
<Filename Value="view_helper.pas"/>
|
||||||
@ -119,17 +112,15 @@
|
|||||||
<UnitName Value="view_helper"/>
|
<UnitName Value="view_helper"/>
|
||||||
<CursorPos X="3" Y="207"/>
|
<CursorPos X="3" Y="207"/>
|
||||||
<TopLine Value="193"/>
|
<TopLine Value="193"/>
|
||||||
<EditorIndex Value="12"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit7>
|
</Unit7>
|
||||||
<Unit8>
|
<Unit8>
|
||||||
<Filename Value="..\ws_helper\source_utils.pas"/>
|
<Filename Value="..\ws_helper\source_utils.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="source_utils"/>
|
<UnitName Value="source_utils"/>
|
||||||
<CursorPos X="1" Y="244"/>
|
<CursorPos X="5" Y="315"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="288"/>
|
||||||
<EditorIndex Value="11"/>
|
<EditorIndex Value="8"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit8>
|
</Unit8>
|
||||||
@ -138,8 +129,8 @@
|
|||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="edit_helper"/>
|
<UnitName Value="edit_helper"/>
|
||||||
<CursorPos X="16" Y="105"/>
|
<CursorPos X="16" Y="105"/>
|
||||||
<TopLine Value="98"/>
|
<TopLine Value="25"/>
|
||||||
<EditorIndex Value="3"/>
|
<EditorIndex Value="1"/>
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit9>
|
</Unit9>
|
||||||
@ -152,9 +143,7 @@
|
|||||||
<UnitName Value="ufclassedit"/>
|
<UnitName Value="ufclassedit"/>
|
||||||
<CursorPos X="1" Y="336"/>
|
<CursorPos X="1" Y="336"/>
|
||||||
<TopLine Value="299"/>
|
<TopLine Value="299"/>
|
||||||
<EditorIndex Value="5"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit10>
|
</Unit10>
|
||||||
<Unit11>
|
<Unit11>
|
||||||
<Filename Value="ufpropedit.pas"/>
|
<Filename Value="ufpropedit.pas"/>
|
||||||
@ -164,100 +153,98 @@
|
|||||||
<UnitName Value="ufpropedit"/>
|
<UnitName Value="ufpropedit"/>
|
||||||
<CursorPos X="1" Y="129"/>
|
<CursorPos X="1" Y="129"/>
|
||||||
<TopLine Value="118"/>
|
<TopLine Value="118"/>
|
||||||
<EditorIndex Value="8"/>
|
|
||||||
<UsageCount Value="200"/>
|
<UsageCount Value="200"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit11>
|
</Unit11>
|
||||||
<Unit12>
|
<Unit12>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\lcl\comctrls.pp"/>
|
<Filename Value="..\..\..\..\lazarus23_213\lcl\comctrls.pp"/>
|
||||||
<UnitName Value="ComCtrls"/>
|
<UnitName Value="ComCtrls"/>
|
||||||
<CursorPos X="15" Y="1781"/>
|
<CursorPos X="15" Y="1781"/>
|
||||||
<TopLine Value="1768"/>
|
<TopLine Value="1768"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit12>
|
</Unit12>
|
||||||
<Unit13>
|
<Unit13>
|
||||||
<Filename Value="..\ws_helper\parserutils.pas"/>
|
<Filename Value="..\ws_helper\parserutils.pas"/>
|
||||||
<UnitName Value="parserutils"/>
|
<UnitName Value="parserutils"/>
|
||||||
<CursorPos X="17" Y="20"/>
|
<CursorPos X="17" Y="20"/>
|
||||||
<TopLine Value="19"/>
|
<TopLine Value="19"/>
|
||||||
<EditorIndex Value="7"/>
|
<EditorIndex Value="3"/>
|
||||||
<UsageCount Value="78"/>
|
<UsageCount Value="86"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit13>
|
</Unit13>
|
||||||
<Unit14>
|
<Unit14>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\i386\i386.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\i386\i386.inc"/>
|
||||||
<CursorPos X="2" Y="1284"/>
|
<CursorPos X="2" Y="1284"/>
|
||||||
<TopLine Value="1263"/>
|
<TopLine Value="1263"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit14>
|
</Unit14>
|
||||||
<Unit15>
|
<Unit15>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\except.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\except.inc"/>
|
||||||
<CursorPos X="1" Y="223"/>
|
<CursorPos X="1" Y="223"/>
|
||||||
<TopLine Value="209"/>
|
<TopLine Value="209"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit15>
|
</Unit15>
|
||||||
<Unit16>
|
<Unit16>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\objpas.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\objpas.inc"/>
|
||||||
<CursorPos X="1" Y="152"/>
|
<CursorPos X="1" Y="152"/>
|
||||||
<TopLine Value="138"/>
|
<TopLine Value="138"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit16>
|
</Unit16>
|
||||||
<Unit17>
|
<Unit17>
|
||||||
<Filename Value="ufclassedit.lrs"/>
|
<Filename Value="ufclassedit.lrs"/>
|
||||||
<CursorPos X="39" Y="2"/>
|
<CursorPos X="39" Y="2"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit17>
|
</Unit17>
|
||||||
<Unit18>
|
<Unit18>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\wstrings.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\wstrings.inc"/>
|
||||||
<CursorPos X="1" Y="317"/>
|
<CursorPos X="1" Y="317"/>
|
||||||
<TopLine Value="303"/>
|
<TopLine Value="303"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit18>
|
</Unit18>
|
||||||
<Unit19>
|
<Unit19>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\fcl-xml\src\dom.pp"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\packages\fcl-xml\src\dom.pp"/>
|
||||||
<UnitName Value="DOM"/>
|
<UnitName Value="DOM"/>
|
||||||
<CursorPos X="3" Y="2064"/>
|
<CursorPos X="3" Y="2064"/>
|
||||||
<TopLine Value="2041"/>
|
<TopLine Value="2041"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit19>
|
</Unit19>
|
||||||
<Unit20>
|
<Unit20>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\lcl\stdctrls.pp"/>
|
<Filename Value="..\..\..\..\lazarus23_213\lcl\stdctrls.pp"/>
|
||||||
<UnitName Value="StdCtrls"/>
|
<UnitName Value="StdCtrls"/>
|
||||||
<CursorPos X="24" Y="362"/>
|
<CursorPos X="24" Y="362"/>
|
||||||
<TopLine Value="348"/>
|
<TopLine Value="348"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit20>
|
</Unit20>
|
||||||
<Unit21>
|
<Unit21>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\classesh.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\classesh.inc"/>
|
||||||
<CursorPos X="12" Y="64"/>
|
<CursorPos X="12" Y="64"/>
|
||||||
<TopLine Value="49"/>
|
<TopLine Value="49"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit21>
|
</Unit21>
|
||||||
<Unit22>
|
<Unit22>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\stringl.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\stringl.inc"/>
|
||||||
<CursorPos X="15" Y="1071"/>
|
<CursorPos X="15" Y="1071"/>
|
||||||
<TopLine Value="1056"/>
|
<TopLine Value="1056"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit22>
|
</Unit22>
|
||||||
<Unit23>
|
<Unit23>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\types.pp"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\types.pp"/>
|
||||||
<UnitName Value="types"/>
|
<UnitName Value="types"/>
|
||||||
<CursorPos X="6" Y="15"/>
|
<CursorPos X="6" Y="15"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit23>
|
</Unit23>
|
||||||
<Unit24>
|
<Unit24>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysstrh.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysstrh.inc"/>
|
||||||
<CursorPos X="10" Y="104"/>
|
<CursorPos X="10" Y="104"/>
|
||||||
<TopLine Value="90"/>
|
<TopLine Value="90"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit24>
|
</Unit24>
|
||||||
<Unit25>
|
<Unit25>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysstr.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysstr.inc"/>
|
||||||
<CursorPos X="1" Y="689"/>
|
<CursorPos X="1" Y="689"/>
|
||||||
<TopLine Value="686"/>
|
<TopLine Value="686"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit25>
|
</Unit25>
|
||||||
<Unit26>
|
<Unit26>
|
||||||
<Filename Value="uinterfaceedit.pas"/>
|
<Filename Value="uinterfaceedit.pas"/>
|
||||||
@ -267,15 +254,13 @@
|
|||||||
<UnitName Value="uinterfaceedit"/>
|
<UnitName Value="uinterfaceedit"/>
|
||||||
<CursorPos X="86" Y="277"/>
|
<CursorPos X="86" Y="277"/>
|
||||||
<TopLine Value="266"/>
|
<TopLine Value="266"/>
|
||||||
<EditorIndex Value="2"/>
|
<UsageCount Value="192"/>
|
||||||
<UsageCount Value="177"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit26>
|
</Unit26>
|
||||||
<Unit27>
|
<Unit27>
|
||||||
<Filename Value="uinterfaceedit.lfm"/>
|
<Filename Value="uinterfaceedit.lfm"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
<SyntaxHighlighter Value="LFM"/>
|
<SyntaxHighlighter Value="LFM"/>
|
||||||
</Unit27>
|
</Unit27>
|
||||||
<Unit28>
|
<Unit28>
|
||||||
@ -286,82 +271,87 @@
|
|||||||
<UnitName Value="udm"/>
|
<UnitName Value="udm"/>
|
||||||
<CursorPos X="15" Y="2"/>
|
<CursorPos X="15" Y="2"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="172"/>
|
<UsageCount Value="187"/>
|
||||||
</Unit28>
|
</Unit28>
|
||||||
<Unit29>
|
<Unit29>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\lcl\include\treeview.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\lcl\include\treeview.inc"/>
|
||||||
<CursorPos X="25" Y="68"/>
|
<CursorPos X="25" Y="68"/>
|
||||||
<TopLine Value="61"/>
|
<TopLine Value="61"/>
|
||||||
<UsageCount Value="4"/>
|
<UsageCount Value="3"/>
|
||||||
</Unit29>
|
</Unit29>
|
||||||
<Unit30>
|
<Unit30>
|
||||||
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
|
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="pascal_parser_intf"/>
|
<UnitName Value="pascal_parser_intf"/>
|
||||||
<CursorPos X="70" Y="182"/>
|
<CursorPos X="7" Y="454"/>
|
||||||
<TopLine Value="175"/>
|
<TopLine Value="422"/>
|
||||||
<EditorIndex Value="16"/>
|
<EditorIndex Value="10"/>
|
||||||
<UsageCount Value="135"/>
|
<UsageCount Value="150"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit30>
|
</Unit30>
|
||||||
<Unit31>
|
<Unit31>
|
||||||
<Filename Value="..\ws_helper\pparser.pp"/>
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="PParser"/>
|
<UnitName Value="PParser"/>
|
||||||
<CursorPos X="4" Y="2133"/>
|
<CursorPos X="1" Y="205"/>
|
||||||
<TopLine Value="2127"/>
|
<TopLine Value="190"/>
|
||||||
<UsageCount Value="135"/>
|
<EditorIndex Value="5"/>
|
||||||
|
<UsageCount Value="150"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
</Unit31>
|
</Unit31>
|
||||||
<Unit32>
|
<Unit32>
|
||||||
<Filename Value="..\ws_helper\logger_intf.pas"/>
|
<Filename Value="..\ws_helper\logger_intf.pas"/>
|
||||||
<UnitName Value="logger_intf"/>
|
<UnitName Value="logger_intf"/>
|
||||||
<CursorPos X="2" Y="12"/>
|
<CursorPos X="2" Y="12"/>
|
||||||
<TopLine Value="37"/>
|
<TopLine Value="37"/>
|
||||||
<UsageCount Value="35"/>
|
<UsageCount Value="34"/>
|
||||||
</Unit32>
|
</Unit32>
|
||||||
<Unit33>
|
<Unit33>
|
||||||
<Filename Value="..\ws_helper\pastree.pp"/>
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="PasTree"/>
|
<UnitName Value="PasTree"/>
|
||||||
<CursorPos X="3" Y="108"/>
|
<CursorPos X="37" Y="658"/>
|
||||||
<TopLine Value="161"/>
|
<TopLine Value="648"/>
|
||||||
<EditorIndex Value="17"/>
|
<EditorIndex Value="11"/>
|
||||||
<UsageCount Value="135"/>
|
<UsageCount Value="150"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit33>
|
</Unit33>
|
||||||
<Unit34>
|
<Unit34>
|
||||||
<Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/>
|
<Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/>
|
||||||
<CursorPos X="35" Y="71"/>
|
<CursorPos X="35" Y="71"/>
|
||||||
<TopLine Value="58"/>
|
<TopLine Value="58"/>
|
||||||
<UsageCount Value="3"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit34>
|
</Unit34>
|
||||||
<Unit35>
|
<Unit35>
|
||||||
<Filename Value="..\..\..\..\lazarus23_213\lcl\include\customcheckbox.inc"/>
|
<Filename Value="..\..\..\..\lazarus23_213\lcl\include\customcheckbox.inc"/>
|
||||||
<CursorPos X="1" Y="120"/>
|
<CursorPos X="1" Y="120"/>
|
||||||
<TopLine Value="108"/>
|
<TopLine Value="108"/>
|
||||||
<UsageCount Value="4"/>
|
<UsageCount Value="3"/>
|
||||||
</Unit35>
|
</Unit35>
|
||||||
<Unit36>
|
<Unit36>
|
||||||
<Filename Value="umain.lrs"/>
|
<Filename Value="umain.lrs"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit36>
|
</Unit36>
|
||||||
<Unit37>
|
<Unit37>
|
||||||
<Filename Value="..\wst_rtti_filter\rtti_filters.pas"/>
|
<Filename Value="..\wst_rtti_filter\rtti_filters.pas"/>
|
||||||
<UnitName Value="rtti_filters"/>
|
<UnitName Value="rtti_filters"/>
|
||||||
<CursorPos X="1" Y="236"/>
|
<CursorPos X="1" Y="236"/>
|
||||||
<TopLine Value="219"/>
|
<TopLine Value="219"/>
|
||||||
<UsageCount Value="25"/>
|
<UsageCount Value="24"/>
|
||||||
</Unit37>
|
</Unit37>
|
||||||
<Unit38>
|
<Unit38>
|
||||||
<Filename Value="..\ws_helper\generator.pas"/>
|
<Filename Value="..\ws_helper\generator.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="generator"/>
|
<UnitName Value="generator"/>
|
||||||
<CursorPos X="44" Y="1783"/>
|
<CursorPos X="34" Y="1403"/>
|
||||||
<TopLine Value="1758"/>
|
<TopLine Value="1391"/>
|
||||||
<EditorIndex Value="10"/>
|
<EditorIndex Value="4"/>
|
||||||
<UsageCount Value="52"/>
|
<UsageCount Value="67"/>
|
||||||
|
<Bookmarks Count="1">
|
||||||
|
<Item0 X="36" Y="2042" ID="1"/>
|
||||||
|
</Bookmarks>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit38>
|
</Unit38>
|
||||||
<Unit39>
|
<Unit39>
|
||||||
@ -369,49 +359,49 @@
|
|||||||
<UnitName Value="dom_cursors"/>
|
<UnitName Value="dom_cursors"/>
|
||||||
<CursorPos X="1" Y="239"/>
|
<CursorPos X="1" Y="239"/>
|
||||||
<TopLine Value="222"/>
|
<TopLine Value="222"/>
|
||||||
<UsageCount Value="22"/>
|
<UsageCount Value="21"/>
|
||||||
</Unit39>
|
</Unit39>
|
||||||
<Unit40>
|
<Unit40>
|
||||||
<Filename Value="..\ws_helper\command_line_parser.pas"/>
|
<Filename Value="..\ws_helper\command_line_parser.pas"/>
|
||||||
<UnitName Value="command_line_parser"/>
|
<UnitName Value="command_line_parser"/>
|
||||||
<CursorPos X="20" Y="31"/>
|
<CursorPos X="20" Y="31"/>
|
||||||
<TopLine Value="17"/>
|
<TopLine Value="17"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="19"/>
|
||||||
</Unit40>
|
</Unit40>
|
||||||
<Unit41>
|
<Unit41>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215\lcl\forms.pp"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215\lcl\forms.pp"/>
|
||||||
<UnitName Value="Forms"/>
|
<UnitName Value="Forms"/>
|
||||||
<CursorPos X="44" Y="10"/>
|
<CursorPos X="44" Y="10"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit41>
|
</Unit41>
|
||||||
<Unit42>
|
<Unit42>
|
||||||
<Filename Value="..\ws_helper\pscanner.pp"/>
|
<Filename Value="..\ws_helper\pscanner.pp"/>
|
||||||
<UnitName Value="PScanner"/>
|
<UnitName Value="PScanner"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="322"/>
|
<TopLine Value="322"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit42>
|
</Unit42>
|
||||||
<Unit43>
|
<Unit43>
|
||||||
<Filename Value="..\ws_helper\metadata_generator.pas"/>
|
<Filename Value="..\ws_helper\metadata_generator.pas"/>
|
||||||
<UnitName Value="metadata_generator"/>
|
<UnitName Value="metadata_generator"/>
|
||||||
<CursorPos X="11" Y="20"/>
|
<CursorPos X="11" Y="20"/>
|
||||||
<TopLine Value="14"/>
|
<TopLine Value="14"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit43>
|
</Unit43>
|
||||||
<Unit44>
|
<Unit44>
|
||||||
<Filename Value="..\ide\lazarus\wst_register.pas"/>
|
<Filename Value="..\ide\lazarus\wst_register.pas"/>
|
||||||
<UnitName Value="wst_register"/>
|
<UnitName Value="wst_register"/>
|
||||||
<CursorPos X="42" Y="6"/>
|
<CursorPos X="42" Y="6"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit44>
|
</Unit44>
|
||||||
<Unit45>
|
<Unit45>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\menuintf.pas"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\menuintf.pas"/>
|
||||||
<UnitName Value="MenuIntf"/>
|
<UnitName Value="MenuIntf"/>
|
||||||
<CursorPos X="53" Y="417"/>
|
<CursorPos X="53" Y="417"/>
|
||||||
<TopLine Value="409"/>
|
<TopLine Value="409"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit45>
|
</Unit45>
|
||||||
<Unit46>
|
<Unit46>
|
||||||
<Filename Value="..\ide\lazarus\wstimportdlg.pas"/>
|
<Filename Value="..\ide\lazarus\wstimportdlg.pas"/>
|
||||||
@ -420,28 +410,28 @@
|
|||||||
<UnitName Value="wstimportdlg"/>
|
<UnitName Value="wstimportdlg"/>
|
||||||
<CursorPos X="29" Y="60"/>
|
<CursorPos X="29" Y="60"/>
|
||||||
<TopLine Value="154"/>
|
<TopLine Value="154"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit46>
|
</Unit46>
|
||||||
<Unit47>
|
<Unit47>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\lazideintf.pas"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\lazideintf.pas"/>
|
||||||
<UnitName Value="LazIDEIntf"/>
|
<UnitName Value="LazIDEIntf"/>
|
||||||
<CursorPos X="33" Y="174"/>
|
<CursorPos X="33" Y="174"/>
|
||||||
<TopLine Value="162"/>
|
<TopLine Value="162"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit47>
|
</Unit47>
|
||||||
<Unit48>
|
<Unit48>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\projectintf.pas"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\projectintf.pas"/>
|
||||||
<UnitName Value="ProjectIntf"/>
|
<UnitName Value="ProjectIntf"/>
|
||||||
<CursorPos X="3" Y="284"/>
|
<CursorPos X="3" Y="284"/>
|
||||||
<TopLine Value="262"/>
|
<TopLine Value="262"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit48>
|
</Unit48>
|
||||||
<Unit49>
|
<Unit49>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\idecommands.pas"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215\ideintf\idecommands.pas"/>
|
||||||
<UnitName Value="IDECommands"/>
|
<UnitName Value="IDECommands"/>
|
||||||
<CursorPos X="47" Y="291"/>
|
<CursorPos X="47" Y="291"/>
|
||||||
<TopLine Value="279"/>
|
<TopLine Value="279"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit49>
|
</Unit49>
|
||||||
<Unit50>
|
<Unit50>
|
||||||
<Filename Value="uprocedit.pas"/>
|
<Filename Value="uprocedit.pas"/>
|
||||||
@ -451,14 +441,14 @@
|
|||||||
<UnitName Value="uprocedit"/>
|
<UnitName Value="uprocedit"/>
|
||||||
<CursorPos X="2" Y="12"/>
|
<CursorPos X="2" Y="12"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="91"/>
|
<UsageCount Value="106"/>
|
||||||
</Unit50>
|
</Unit50>
|
||||||
<Unit51>
|
<Unit51>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/>
|
||||||
<UnitName Value="ComCtrls"/>
|
<UnitName Value="ComCtrls"/>
|
||||||
<CursorPos X="4" Y="1660"/>
|
<CursorPos X="4" Y="1660"/>
|
||||||
<TopLine Value="1660"/>
|
<TopLine Value="1660"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit51>
|
</Unit51>
|
||||||
<Unit52>
|
<Unit52>
|
||||||
<Filename Value="common_gui_utils.pas"/>
|
<Filename Value="common_gui_utils.pas"/>
|
||||||
@ -466,14 +456,14 @@
|
|||||||
<UnitName Value="common_gui_utils"/>
|
<UnitName Value="common_gui_utils"/>
|
||||||
<CursorPos X="2" Y="12"/>
|
<CursorPos X="2" Y="12"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="89"/>
|
<UsageCount Value="104"/>
|
||||||
</Unit52>
|
</Unit52>
|
||||||
<Unit53>
|
<Unit53>
|
||||||
<Filename Value="..\..\..\..\..\DOCUME~1\ADMINI~1\LOCALS~1\Temp\DestBug.pas"/>
|
<Filename Value="..\..\..\..\..\DOCUME~1\ADMINI~1\LOCALS~1\Temp\DestBug.pas"/>
|
||||||
<UnitName Value="DestBug"/>
|
<UnitName Value="DestBug"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit53>
|
</Unit53>
|
||||||
<Unit54>
|
<Unit54>
|
||||||
<Filename Value="uargedit.pas"/>
|
<Filename Value="uargedit.pas"/>
|
||||||
@ -483,20 +473,20 @@
|
|||||||
<UnitName Value="uargedit"/>
|
<UnitName Value="uargedit"/>
|
||||||
<CursorPos X="2" Y="12"/>
|
<CursorPos X="2" Y="12"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="82"/>
|
<UsageCount Value="97"/>
|
||||||
</Unit54>
|
</Unit54>
|
||||||
<Unit55>
|
<Unit55>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/>
|
||||||
<UnitName Value="Win32WSControls"/>
|
<UnitName Value="Win32WSControls"/>
|
||||||
<CursorPos X="1" Y="226"/>
|
<CursorPos X="1" Y="226"/>
|
||||||
<TopLine Value="212"/>
|
<TopLine Value="212"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit55>
|
</Unit55>
|
||||||
<Unit56>
|
<Unit56>
|
||||||
<Filename Value="umain.lfm"/>
|
<Filename Value="umain.lfm"/>
|
||||||
<CursorPos X="19" Y="1822"/>
|
<CursorPos X="19" Y="1822"/>
|
||||||
<TopLine Value="1858"/>
|
<TopLine Value="1858"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
<SyntaxHighlighter Value="LFM"/>
|
<SyntaxHighlighter Value="LFM"/>
|
||||||
</Unit56>
|
</Unit56>
|
||||||
<Unit57>
|
<Unit57>
|
||||||
@ -507,14 +497,14 @@
|
|||||||
<UnitName Value="umoduleedit"/>
|
<UnitName Value="umoduleedit"/>
|
||||||
<CursorPos X="2" Y="12"/>
|
<CursorPos X="2" Y="12"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="74"/>
|
<UsageCount Value="89"/>
|
||||||
</Unit57>
|
</Unit57>
|
||||||
<Unit58>
|
<Unit58>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/>
|
||||||
<UnitName Value="StdCtrls"/>
|
<UnitName Value="StdCtrls"/>
|
||||||
<CursorPos X="3" Y="1020"/>
|
<CursorPos X="3" Y="1020"/>
|
||||||
<TopLine Value="1006"/>
|
<TopLine Value="1006"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit58>
|
</Unit58>
|
||||||
<Unit59>
|
<Unit59>
|
||||||
<Filename Value="ubindingedit.pas"/>
|
<Filename Value="ubindingedit.pas"/>
|
||||||
@ -524,38 +514,38 @@
|
|||||||
<UnitName Value="ubindingedit"/>
|
<UnitName Value="ubindingedit"/>
|
||||||
<CursorPos X="2" Y="12"/>
|
<CursorPos X="2" Y="12"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="64"/>
|
<UsageCount Value="79"/>
|
||||||
</Unit59>
|
</Unit59>
|
||||||
<Unit60>
|
<Unit60>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
|
||||||
<CursorPos X="26" Y="158"/>
|
<CursorPos X="26" Y="158"/>
|
||||||
<TopLine Value="135"/>
|
<TopLine Value="135"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit60>
|
</Unit60>
|
||||||
<Unit61>
|
<Unit61>
|
||||||
<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="550"/>
|
<CursorPos X="11" Y="550"/>
|
||||||
<TopLine Value="645"/>
|
<TopLine Value="645"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit61>
|
</Unit61>
|
||||||
<Unit62>
|
<Unit62>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\classesh.inc"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\classesh.inc"/>
|
||||||
<CursorPos X="14" Y="248"/>
|
<CursorPos X="14" Y="697"/>
|
||||||
<TopLine Value="226"/>
|
<TopLine Value="675"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit62>
|
</Unit62>
|
||||||
<Unit63>
|
<Unit63>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\lists.inc"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\lists.inc"/>
|
||||||
<CursorPos X="3" Y="408"/>
|
<CursorPos X="3" Y="408"/>
|
||||||
<TopLine Value="406"/>
|
<TopLine Value="406"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit63>
|
</Unit63>
|
||||||
<Unit64>
|
<Unit64>
|
||||||
<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="701"/>
|
<CursorPos X="3" Y="701"/>
|
||||||
<TopLine Value="698"/>
|
<TopLine Value="698"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit64>
|
</Unit64>
|
||||||
<Unit65>
|
<Unit65>
|
||||||
<Filename Value="ufrmsaveoption.pas"/>
|
<Filename Value="ufrmsaveoption.pas"/>
|
||||||
@ -565,42 +555,40 @@
|
|||||||
<UnitName Value="ufrmsaveoption"/>
|
<UnitName Value="ufrmsaveoption"/>
|
||||||
<CursorPos X="42" Y="64"/>
|
<CursorPos X="42" Y="64"/>
|
||||||
<TopLine Value="42"/>
|
<TopLine Value="42"/>
|
||||||
<UsageCount Value="60"/>
|
<UsageCount Value="75"/>
|
||||||
</Unit65>
|
</Unit65>
|
||||||
<Unit66>
|
<Unit66>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/>
|
||||||
<UnitName Value="Dialogs"/>
|
<UnitName Value="Dialogs"/>
|
||||||
<CursorPos X="3" Y="44"/>
|
<CursorPos X="3" Y="44"/>
|
||||||
<TopLine Value="27"/>
|
<TopLine Value="27"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit66>
|
</Unit66>
|
||||||
<Unit67>
|
<Unit67>
|
||||||
<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="3" Y="1459"/>
|
<CursorPos X="3" Y="1459"/>
|
||||||
<TopLine Value="1455"/>
|
<TopLine Value="1455"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit67>
|
</Unit67>
|
||||||
<Unit68>
|
<Unit68>
|
||||||
<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="2" Y="90"/>
|
<CursorPos X="2" Y="90"/>
|
||||||
<TopLine Value="71"/>
|
<TopLine Value="71"/>
|
||||||
<EditorIndex Value="15"/>
|
|
||||||
<UsageCount Value="24"/>
|
<UsageCount Value="24"/>
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit68>
|
</Unit68>
|
||||||
<Unit69>
|
<Unit69>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\control.inc"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\control.inc"/>
|
||||||
<CursorPos X="1" Y="2403"/>
|
<CursorPos X="1" Y="2403"/>
|
||||||
<TopLine Value="2390"/>
|
<TopLine Value="2390"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit69>
|
</Unit69>
|
||||||
<Unit70>
|
<Unit70>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\customform.inc"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\customform.inc"/>
|
||||||
<CursorPos X="1" Y="1417"/>
|
<CursorPos X="1" Y="1417"/>
|
||||||
<TopLine Value="1398"/>
|
<TopLine Value="1398"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit70>
|
</Unit70>
|
||||||
<Unit71>
|
<Unit71>
|
||||||
<Filename Value="ufarrayedit.pas"/>
|
<Filename Value="ufarrayedit.pas"/>
|
||||||
@ -610,9 +598,7 @@
|
|||||||
<UnitName Value="ufarrayedit"/>
|
<UnitName Value="ufarrayedit"/>
|
||||||
<CursorPos X="67" Y="117"/>
|
<CursorPos X="67" Y="117"/>
|
||||||
<TopLine Value="95"/>
|
<TopLine Value="95"/>
|
||||||
<EditorIndex Value="9"/>
|
<UsageCount Value="59"/>
|
||||||
<UsageCount Value="44"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit71>
|
</Unit71>
|
||||||
<Unit72>
|
<Unit72>
|
||||||
<Filename Value="uftypealiasedit.pas"/>
|
<Filename Value="uftypealiasedit.pas"/>
|
||||||
@ -622,95 +608,195 @@
|
|||||||
<UnitName Value="uftypealiasedit"/>
|
<UnitName Value="uftypealiasedit"/>
|
||||||
<CursorPos X="21" Y="1"/>
|
<CursorPos X="21" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="6"/>
|
<UsageCount Value="50"/>
|
||||||
<UsageCount Value="35"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit72>
|
</Unit72>
|
||||||
<Unit73>
|
<Unit73>
|
||||||
<Filename Value="..\..\..\..\..\Documents and Settings\Administrateur\Bureau\ACER\n\AWSECommerceService.pas"/>
|
<Filename Value="..\..\..\..\..\Documents and Settings\Administrateur\Bureau\ACER\n\AWSECommerceService.pas"/>
|
||||||
<UnitName Value="AWSECommerceService"/>
|
<UnitName Value="AWSECommerceService"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="19"/>
|
||||||
</Unit73>
|
</Unit73>
|
||||||
<Unit74>
|
<Unit74>
|
||||||
<Filename Value="..\..\..\..\..\Documents and Settings\Administrateur\Bureau\ACER\n\AWSECommerceService_proxy.pas"/>
|
<Filename Value="..\..\..\..\..\Documents and Settings\Administrateur\Bureau\ACER\n\AWSECommerceService_proxy.pas"/>
|
||||||
<UnitName Value="AWSECommerceService_proxy"/>
|
<UnitName Value="AWSECommerceService_proxy"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="19"/>
|
||||||
</Unit74>
|
</Unit74>
|
||||||
<Unit75>
|
<Unit75>
|
||||||
<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="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="22"/>
|
<TopLine Value="22"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit75>
|
</Unit75>
|
||||||
<Unit76>
|
<Unit76>
|
||||||
<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="10" Y="84"/>
|
<CursorPos X="10" Y="84"/>
|
||||||
<TopLine Value="57"/>
|
<TopLine Value="57"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit76>
|
</Unit76>
|
||||||
<Unit77>
|
<Unit77>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysansih.inc"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysansih.inc"/>
|
||||||
<CursorPos X="10" Y="24"/>
|
<CursorPos X="10" Y="24"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit77>
|
</Unit77>
|
||||||
<Unit78>
|
<Unit78>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysansi.inc"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysansi.inc"/>
|
||||||
<CursorPos X="13" Y="51"/>
|
<CursorPos X="13" Y="51"/>
|
||||||
<TopLine Value="42"/>
|
<TopLine Value="42"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit78>
|
</Unit78>
|
||||||
<Unit79>
|
<Unit79>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
|
||||||
<CursorPos X="11" Y="577"/>
|
<CursorPos X="11" Y="577"/>
|
||||||
<TopLine Value="562"/>
|
<TopLine Value="562"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit79>
|
</Unit79>
|
||||||
<Unit80>
|
<Unit80>
|
||||||
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\astrings.inc"/>
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\astrings.inc"/>
|
||||||
<CursorPos X="3" Y="747"/>
|
<CursorPos X="3" Y="747"/>
|
||||||
<TopLine Value="742"/>
|
<TopLine Value="742"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit80>
|
</Unit80>
|
||||||
|
<Unit81>
|
||||||
|
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\streams.inc"/>
|
||||||
|
<CursorPos X="7" Y="124"/>
|
||||||
|
<TopLine Value="117"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit81>
|
||||||
|
<Unit82>
|
||||||
|
<Filename Value="..\wst_global.inc"/>
|
||||||
|
<CursorPos X="1" Y="1"/>
|
||||||
|
<TopLine Value="1"/>
|
||||||
|
<EditorIndex Value="6"/>
|
||||||
|
<UsageCount Value="11"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
|
</Unit82>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="8" HistoryIndex="7">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="..\ws_helper\generator.pas"/>
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
<Caret Line="1767" Column="30" TopLine="1750"/>
|
<Caret Line="542" Column="1" TopLine="527"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="..\ws_helper\generator.pas"/>
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
<Caret Line="1770" Column="68" TopLine="1755"/>
|
<Caret Line="664" Column="1" TopLine="649"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="typ_lib_edtr.lpr"/>
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
<Caret Line="21" Column="1" TopLine="1"/>
|
<Caret Line="538" Column="1" TopLine="523"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
<Caret Line="6" Column="71" TopLine="1"/>
|
<Caret Line="539" Column="1" TopLine="524"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="..\ws_helper\generator.pas"/>
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
<Caret Line="1767" Column="23" TopLine="1755"/>
|
<Caret Line="542" Column="1" TopLine="527"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
<Caret Line="274" Column="16" TopLine="268"/>
|
<Caret Line="664" Column="1" TopLine="649"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="..\ws_helper\generator.pas"/>
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
<Caret Line="1771" Column="29" TopLine="1755"/>
|
<Caret Line="538" Column="1" TopLine="523"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="typ_lib_edtr.lpr"/>
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
<Caret Line="11" Column="59" TopLine="1"/>
|
<Caret Line="209" Column="50" TopLine="190"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
|
<Position9>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="1" Column="1" TopLine="1"/>
|
||||||
|
</Position9>
|
||||||
|
<Position10>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="63" Column="57" TopLine="40"/>
|
||||||
|
</Position10>
|
||||||
|
<Position11>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="80" Column="65" TopLine="58"/>
|
||||||
|
</Position11>
|
||||||
|
<Position12>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="132" Column="47" TopLine="110"/>
|
||||||
|
</Position12>
|
||||||
|
<Position13>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="133" Column="47" TopLine="111"/>
|
||||||
|
</Position13>
|
||||||
|
<Position14>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="188" Column="71" TopLine="166"/>
|
||||||
|
</Position14>
|
||||||
|
<Position15>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="669" Column="54" TopLine="647"/>
|
||||||
|
</Position15>
|
||||||
|
<Position16>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="680" Column="54" TopLine="673"/>
|
||||||
|
</Position16>
|
||||||
|
<Position17>
|
||||||
|
<Filename Value="typ_lib_edtr.lpr"/>
|
||||||
|
<Caret Line="21" Column="1" TopLine="1"/>
|
||||||
|
</Position17>
|
||||||
|
<Position18>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="209" Column="48" TopLine="190"/>
|
||||||
|
</Position18>
|
||||||
|
<Position19>
|
||||||
|
<Filename Value="uwsttypelibraryedit.pas"/>
|
||||||
|
<Caret Line="234" Column="1" TopLine="219"/>
|
||||||
|
</Position19>
|
||||||
|
<Position20>
|
||||||
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
|
<Caret Line="663" Column="1" TopLine="648"/>
|
||||||
|
</Position20>
|
||||||
|
<Position21>
|
||||||
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
|
<Caret Line="664" Column="1" TopLine="649"/>
|
||||||
|
</Position21>
|
||||||
|
<Position22>
|
||||||
|
<Filename Value="..\ws_helper\pastree.pp"/>
|
||||||
|
<Caret Line="538" Column="1" TopLine="523"/>
|
||||||
|
</Position22>
|
||||||
|
<Position23>
|
||||||
|
<Filename Value="uwsttypelibraryedit.pas"/>
|
||||||
|
<Caret Line="196" Column="25" TopLine="192"/>
|
||||||
|
</Position23>
|
||||||
|
<Position24>
|
||||||
|
<Filename Value="uwsttypelibraryedit.pas"/>
|
||||||
|
<Caret Line="1" Column="1" TopLine="1"/>
|
||||||
|
</Position24>
|
||||||
|
<Position25>
|
||||||
|
<Filename Value="uwsttypelibraryedit.pas"/>
|
||||||
|
<Caret Line="196" Column="25" TopLine="181"/>
|
||||||
|
</Position25>
|
||||||
|
<Position26>
|
||||||
|
<Filename Value="uwsttypelibraryedit.pas"/>
|
||||||
|
<Caret Line="793" Column="32" TopLine="766"/>
|
||||||
|
</Position26>
|
||||||
|
<Position27>
|
||||||
|
<Filename Value="uwsttypelibraryedit.pas"/>
|
||||||
|
<Caret Line="1" Column="1" TopLine="1"/>
|
||||||
|
</Position27>
|
||||||
|
<Position28>
|
||||||
|
<Filename Value="uwsttypelibraryedit.pas"/>
|
||||||
|
<Caret Line="234" Column="1" TopLine="201"/>
|
||||||
|
</Position28>
|
||||||
|
<Position29>
|
||||||
|
<Filename Value="..\ws_helper\pparser.pp"/>
|
||||||
|
<Caret Line="205" Column="1" TopLine="190"/>
|
||||||
|
</Position29>
|
||||||
|
<Position30>
|
||||||
|
<Filename Value="typ_lib_edtr.lpr"/>
|
||||||
|
<Caret Line="21" Column="1" TopLine="1"/>
|
||||||
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
@ -230,9 +230,9 @@ begin
|
|||||||
DoNotify(mtInfo,Format('File parsed %s .',[AFileName]));
|
DoNotify(mtInfo,Format('File parsed %s .',[AFileName]));
|
||||||
except
|
except
|
||||||
on e : Exception do begin
|
on e : Exception do begin
|
||||||
FreeAndNil(Result);
|
|
||||||
DoNotify(mtError,e.Message);
|
DoNotify(mtError,e.Message);
|
||||||
raise;
|
FreeAndNil(Result);
|
||||||
|
//raise;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -10,11 +10,9 @@
|
|||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
}
|
}
|
||||||
|
{$INCLUDE wst_global.inc}
|
||||||
unit wsdl_generator;
|
unit wsdl_generator;
|
||||||
|
|
||||||
{$INCLUDE wst.inc}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
|
@ -17,11 +17,9 @@
|
|||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{$INCLUDE wst_global.inc}
|
||||||
unit generator;
|
unit generator;
|
||||||
|
|
||||||
{$mode objfpc}{$H+}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
@ -149,6 +147,7 @@ type
|
|||||||
FImpStream : ISourceStream;
|
FImpStream : ISourceStream;
|
||||||
FImpTempStream : ISourceStream;
|
FImpTempStream : ISourceStream;
|
||||||
FImpLastStream : ISourceStream;
|
FImpLastStream : ISourceStream;
|
||||||
|
FRttiFunc : ISourceStream;
|
||||||
private
|
private
|
||||||
function GenerateIntfName(AIntf : TPasElement):string;
|
function GenerateIntfName(AIntf : TPasElement):string;
|
||||||
|
|
||||||
@ -161,6 +160,7 @@ type
|
|||||||
procedure GenerateClass(ASymbol : TPasClassType);
|
procedure GenerateClass(ASymbol : TPasClassType);
|
||||||
procedure GenerateEnum(ASymbol : TPasEnumType);
|
procedure GenerateEnum(ASymbol : TPasEnumType);
|
||||||
procedure GenerateArray(ASymbol : TPasArrayType);
|
procedure GenerateArray(ASymbol : TPasArrayType);
|
||||||
|
procedure GenerateRecord(ASymbol : TPasRecordType);
|
||||||
|
|
||||||
procedure GenerateCustomMetadatas();
|
procedure GenerateCustomMetadatas();
|
||||||
function GetDestUnitName():string;
|
function GetDestUnitName():string;
|
||||||
@ -185,6 +185,7 @@ Const sPROXY_BASE_CLASS = 'TBaseProxy';
|
|||||||
RETURN_VAL_NAME = 'returnVal';
|
RETURN_VAL_NAME = 'returnVal';
|
||||||
sNAME_SPACE = 'sNAME_SPACE';
|
sNAME_SPACE = 'sNAME_SPACE';
|
||||||
sUNIT_NAME = 'sUNIT_NAME';
|
sUNIT_NAME = 'sUNIT_NAME';
|
||||||
|
sRECORD_RTTI_DEFINE = 'WST_RECORD_RTTI';
|
||||||
|
|
||||||
sPRM_NAME = 'strPrmName';
|
sPRM_NAME = 'strPrmName';
|
||||||
sLOC_SERIALIZER = 'locSerializer';
|
sLOC_SERIALIZER = 'locSerializer';
|
||||||
@ -1398,7 +1399,12 @@ begin
|
|||||||
WriteLn('}');
|
WriteLn('}');
|
||||||
|
|
||||||
WriteLn('unit %s;',[GetDestUnitName()]);
|
WriteLn('unit %s;',[GetDestUnitName()]);
|
||||||
WriteLn('{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}');
|
WriteLn('{$IFDEF FPC}');
|
||||||
|
WriteLn(' {$mode objfpc} {$H+}');
|
||||||
|
WriteLn('{$ENDIF}');
|
||||||
|
WriteLn('{$IFNDEF FPC}');
|
||||||
|
WriteLn(' {$DEFINE WST_RECORD_RTTI}');
|
||||||
|
WriteLn('{$ENDIF}');
|
||||||
WriteLn('interface');
|
WriteLn('interface');
|
||||||
WriteLn('');
|
WriteLn('');
|
||||||
WriteLn('uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;');
|
WriteLn('uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;');
|
||||||
@ -1420,7 +1426,7 @@ begin
|
|||||||
SetCurrentStream(FImpStream);
|
SetCurrentStream(FImpStream);
|
||||||
WriteLn('');
|
WriteLn('');
|
||||||
WriteLn('Implementation');
|
WriteLn('Implementation');
|
||||||
WriteLn('uses metadata_repository;');
|
WriteLn('uses metadata_repository, record_rtti, wst_types;');
|
||||||
FImpTempStream.WriteLn('initialization');
|
FImpTempStream.WriteLn('initialization');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2033,6 +2039,122 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TInftGenerator.GenerateRecord(ASymbol : TPasRecordType);
|
||||||
|
var
|
||||||
|
strFieldList : string;
|
||||||
|
|
||||||
|
procedure WriteDec();
|
||||||
|
var
|
||||||
|
itm : TPasVariable;
|
||||||
|
i : PtrInt;
|
||||||
|
begin
|
||||||
|
SetCurrentStream(FDecStream);
|
||||||
|
NewLine();
|
||||||
|
IncIndent();
|
||||||
|
Indent(); WriteLn('%s = record',[ASymbol.Name]);
|
||||||
|
IncIndent();
|
||||||
|
strFieldList := '';
|
||||||
|
for i := 0 to Pred(ASymbol.Members.Count) do begin
|
||||||
|
itm := TPasVariable(ASymbol.Members[i]);
|
||||||
|
Indent();
|
||||||
|
WriteLn('%s : %s;',[itm.Name,itm.VarType.Name]);
|
||||||
|
if ( i > 0 ) then
|
||||||
|
strFieldList := Format('%s;%s',[strFieldList,itm.Name])
|
||||||
|
else
|
||||||
|
strFieldList := itm.Name;
|
||||||
|
end;
|
||||||
|
DecIndent();
|
||||||
|
Indent(); WriteLn('end;');
|
||||||
|
DecIndent();
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure WriteRTTI();
|
||||||
|
var
|
||||||
|
itm : TPasVariable;
|
||||||
|
k, c : PtrInt;
|
||||||
|
offsetLine, typeLine : string;
|
||||||
|
begin
|
||||||
|
SetCurrentStream(FRttiFunc);
|
||||||
|
NewLine();
|
||||||
|
WriteLn('{$IFDEF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
|
WriteLn('function __%s_TYPEINFO_FUNC__() : PTypeInfo;',[ASymbol.Name]);
|
||||||
|
WriteLn('var');
|
||||||
|
IncIndent();
|
||||||
|
Indent(); WriteLn('p : ^%s;',[ASymbol.Name]);
|
||||||
|
Indent(); WriteLn('r : %s;',[ASymbol.Name]);
|
||||||
|
DecIndent();
|
||||||
|
WriteLn('begin');
|
||||||
|
IncIndent();
|
||||||
|
Indent(); WriteLn('p := @r;');
|
||||||
|
Indent(); WriteLn('Result := MakeRawTypeInfo(');
|
||||||
|
IncIndent();
|
||||||
|
Indent(); WriteLn('%s,',[QuotedStr(ASymbol.Name)]);
|
||||||
|
Indent(); WriteLn('SizeOf(%s),',[ASymbol.Name]);
|
||||||
|
offsetLine := '[ ';
|
||||||
|
typeLine := '[ ';
|
||||||
|
c := ASymbol.Members.Count;
|
||||||
|
if ( c > 0 ) then begin
|
||||||
|
k := 1;
|
||||||
|
itm := TPasVariable(ASymbol.Members[(k-1)]);
|
||||||
|
offsetLine := offsetLine + Format('PtrUInt(@(p^.%s)) - PtrUInt(p)',[itm.Name]);
|
||||||
|
typeLine := typeLine + Format('TypeInfo(%s)',[itm.VarType.Name]);
|
||||||
|
Inc(k);
|
||||||
|
for k := k to c do begin
|
||||||
|
itm := TPasVariable(ASymbol.Members[(k-1)]);
|
||||||
|
offsetLine := offsetLine + Format(', PtrUInt(@(p^.%s)) - PtrUInt(p)',[itm.Name]);
|
||||||
|
typeLine := typeLine + Format(', TypeInfo(%s)',[itm.VarType.Name]);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
offsetLine := offsetLine + ' ]';
|
||||||
|
typeLine := typeLine + ' ]';
|
||||||
|
Indent(); WriteLn('%s,',[offsetLine]);
|
||||||
|
Indent(); WriteLn('%s',[typeLine]);
|
||||||
|
DecIndent();
|
||||||
|
Indent(); WriteLn(');');
|
||||||
|
DecIndent();
|
||||||
|
WriteLn('end;');
|
||||||
|
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
s : string;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
WriteDec();
|
||||||
|
WriteRTTI();
|
||||||
|
|
||||||
|
SetCurrentStream(FImpLastStream);
|
||||||
|
NewLine();
|
||||||
|
|
||||||
|
Indent();
|
||||||
|
WriteLn(
|
||||||
|
'GetTypeRegistry().Register(%s,TypeInfo(%s),%s).RegisterExternalPropertyName(%s,%s);',
|
||||||
|
[ sNAME_SPACE,ASymbol.Name,QuotedStr(SymbolTable.GetExternalName(ASymbol)),
|
||||||
|
QuotedStr(Format('__FIELDS__',[ASymbol.Name])),QuotedStr(strFieldList)
|
||||||
|
]
|
||||||
|
);
|
||||||
|
s := 'GetTypeRegistry().ItemByTypeInfo[TypeInfo(%s)]' +
|
||||||
|
'.RegisterObject(' +
|
||||||
|
'FIELDS_STRING,' +
|
||||||
|
'TRecordRttiDataObject.Create(' +
|
||||||
|
'MakeRecordTypeInfo(%s),' +
|
||||||
|
'GetTypeRegistry().ItemByTypeInfo[TypeInfo(%s)].GetExternalPropertyName(''__FIELDS__'')' +
|
||||||
|
')' +
|
||||||
|
');';
|
||||||
|
WriteLn('{$IFNDEF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
|
Indent(); WriteLn(s,[ASymbol.Name,Format('TypeInfo(%s)',[ASymbol.Name]),ASymbol.Name]);
|
||||||
|
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
|
|
||||||
|
WriteLn('{$IFDEF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
|
Indent(); WriteLn(s,[ASymbol.Name,Format('__%s_TYPEINFO_FUNC__()',[ASymbol.Name]),ASymbol.Name]);
|
||||||
|
WriteLn('{$ENDIF %s}',[sRECORD_RTTI_DEFINE]);
|
||||||
|
SetCurrentStream(FDecStream);
|
||||||
|
except
|
||||||
|
on e : Exception do
|
||||||
|
GetLogger.Log(mtError,'TInftGenerator.GenerateRecord()=', [ASymbol.Name, ' ;; ', e.Message]);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TInftGenerator.GenerateCustomMetadatas();
|
procedure TInftGenerator.GenerateCustomMetadatas();
|
||||||
|
|
||||||
procedure WriteOperationDatas(AInftDef : TPasClassType; AOp : TPasProcedure);
|
procedure WriteOperationDatas(AInftDef : TPasClassType; AOp : TPasProcedure);
|
||||||
@ -2140,13 +2262,14 @@ begin
|
|||||||
FImpStream := SrcMngr.CreateItem(GetDestUnitName() + '.imp');
|
FImpStream := SrcMngr.CreateItem(GetDestUnitName() + '.imp');
|
||||||
FImpTempStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp');
|
FImpTempStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp');
|
||||||
FImpLastStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp_last');
|
FImpLastStream := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_imp_last');
|
||||||
|
FRttiFunc := SrcMngr.CreateItem(GetDestUnitName() + '.tmp_rtti_func');
|
||||||
FImpTempStream.IncIndent();
|
FImpTempStream.IncIndent();
|
||||||
FImpLastStream.IncIndent();
|
FImpLastStream.IncIndent();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TInftGenerator.Execute();
|
procedure TInftGenerator.Execute();
|
||||||
var
|
var
|
||||||
i,c, j, k : Integer;
|
i,c, j, k : PtrInt;
|
||||||
clssTyp : TPasClassType;
|
clssTyp : TPasClassType;
|
||||||
gnrClssLst : TObjectList;
|
gnrClssLst : TObjectList;
|
||||||
objLst : TObjectList;
|
objLst : TObjectList;
|
||||||
@ -2194,6 +2317,13 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
for i := 0 to c do begin
|
||||||
|
elt := TPasElement(typeList[i]);
|
||||||
|
if elt.InheritsFrom(TPasRecordType) then begin
|
||||||
|
GenerateRecord(TPasRecordType(elt));
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
for i := 0 to c do begin
|
for i := 0 to c do begin
|
||||||
elt := TPasElement(typeList[i]);
|
elt := TPasElement(typeList[i]);
|
||||||
if elt.InheritsFrom(TPasAliasType) then begin
|
if elt.InheritsFrom(TPasAliasType) then begin
|
||||||
@ -2258,8 +2388,9 @@ begin
|
|||||||
DecIndent();
|
DecIndent();
|
||||||
GenerateCustomMetadatas();
|
GenerateCustomMetadatas();
|
||||||
|
|
||||||
|
FImpLastStream.NewLine();
|
||||||
GenerateUnitImplementationFooter();
|
GenerateUnitImplementationFooter();
|
||||||
FSrcMngr.Merge(GetDestUnitName() + '.pas',[FDecStream,FImpStream,FImpTempStream,FImpLastStream]);
|
FSrcMngr.Merge(GetDestUnitName() + '.pas',[FDecStream,FImpStream,FRttiFunc,FImpTempStream,FImpLastStream]);
|
||||||
FDecStream := nil;
|
FDecStream := nil;
|
||||||
FImpStream := nil;
|
FImpStream := nil;
|
||||||
FImpTempStream := nil;
|
FImpTempStream := nil;
|
||||||
|
@ -451,7 +451,7 @@ begin
|
|||||||
Result.SourceLinenumber := ASourceLinenumber;
|
Result.SourceLinenumber := ASourceLinenumber;
|
||||||
if Result.InheritsFrom(TPasModule) then begin
|
if Result.InheritsFrom(TPasModule) then begin
|
||||||
FCurrentModule := Result as TPasModule;
|
FCurrentModule := Result as TPasModule;
|
||||||
Package.Modules.Add(Result);
|
//Package.Modules.Add(Result);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -31,6 +31,10 @@ Type
|
|||||||
EsourceException = class(Exception)
|
EsourceException = class(Exception)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
ISourceStream = interface;
|
||||||
|
ISourceManager = interface;
|
||||||
|
ISavableSourceStream = interface;
|
||||||
|
|
||||||
ISourceStream = interface
|
ISourceStream = interface
|
||||||
['{91EA7DA6-340C-477A-A6FD-06F2BAEA9A97}']
|
['{91EA7DA6-340C-477A-A6FD-06F2BAEA9A97}']
|
||||||
function GetFileName():string;
|
function GetFileName():string;
|
||||||
@ -45,6 +49,7 @@ Type
|
|||||||
procedure NewLine();
|
procedure NewLine();
|
||||||
procedure BeginAutoIndent();
|
procedure BeginAutoIndent();
|
||||||
procedure EndAutoIndent();
|
procedure EndAutoIndent();
|
||||||
|
procedure Append(ASource : ISavableSourceStream);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
ISourceManager = Interface
|
ISourceManager = Interface
|
||||||
@ -98,6 +103,7 @@ type
|
|||||||
procedure BeginAutoIndent();
|
procedure BeginAutoIndent();
|
||||||
procedure EndAutoIndent();
|
procedure EndAutoIndent();
|
||||||
function IsInAutoInden():Boolean;
|
function IsInAutoInden():Boolean;
|
||||||
|
procedure Append(ASource : ISavableSourceStream);
|
||||||
Public
|
Public
|
||||||
constructor Create(const AFileName:string);
|
constructor Create(const AFileName:string);
|
||||||
destructor Destroy();override;
|
destructor Destroy();override;
|
||||||
@ -303,6 +309,12 @@ begin
|
|||||||
Result := ( FAutoIndentCount > 0 );
|
Result := ( FAutoIndentCount > 0 );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSourceStream.Append(ASource : ISavableSourceStream);
|
||||||
|
begin
|
||||||
|
if ( ASource <> nil ) then
|
||||||
|
FStream.CopyFrom(ASource.GetStream(),0);
|
||||||
|
end;
|
||||||
|
|
||||||
constructor TSourceStream.Create(const AFileName: string);
|
constructor TSourceStream.Create(const AFileName: string);
|
||||||
begin
|
begin
|
||||||
FFileName := AFileName;
|
FFileName := AFileName;
|
||||||
|
@ -3,8 +3,4 @@
|
|||||||
const FPC_VERSION = 0;
|
const FPC_VERSION = 0;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF FPC}
|
|
||||||
{$IF( (FPC_VERSION = 2) and (FPC_RELEASE > 0) ) }
|
|
||||||
{$define FPC_211}
|
|
||||||
{$IFEND}
|
|
||||||
{$ENDIF}
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{$IFNDEF HAS_QWORD}
|
{$IFNDEF FPC}
|
||||||
type
|
type
|
||||||
QWord = type Int64;
|
QWord = type Int64;
|
||||||
DWORD = LongWord;
|
DWORD = LongWord;
|
||||||
|
@ -24,7 +24,7 @@ type
|
|||||||
|
|
||||||
function CreateDoc() : TXMLDocument ;
|
function CreateDoc() : TXMLDocument ;
|
||||||
procedure WriteXMLFile(ADoc : TXMLDocument; AStream : TStream);
|
procedure WriteXMLFile(ADoc : TXMLDocument; AStream : TStream);
|
||||||
procedure ReadXMLFile(ADoc : TXMLDocument; AStream : TStream);
|
procedure ReadXMLFile(out ADoc : TXMLDocument; AStream : TStream);
|
||||||
function NodeToBuffer(ANode : TDOMNode):string ;
|
function NodeToBuffer(ANode : TDOMNode):string ;
|
||||||
|
|
||||||
function FilterList(const ALIst : IDOMNodeList; const ANodeName : widestring):IDOMNodeList ;
|
function FilterList(const ALIst : IDOMNodeList; const ANodeName : widestring):IDOMNodeList ;
|
||||||
@ -55,8 +55,9 @@ begin
|
|||||||
(ADoc as IDOMPersist).saveToStream(AStream);
|
(ADoc as IDOMPersist).saveToStream(AStream);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure ReadXMLFile(ADoc : TXMLDocument; AStream : TStream);
|
procedure ReadXMLFile(out ADoc : TXMLDocument; AStream : TStream);
|
||||||
begin
|
begin
|
||||||
|
ADoc := CreateDoc();
|
||||||
(ADoc as IDOMPersist).loadFromStream(AStream);
|
(ADoc as IDOMPersist).loadFromStream(AStream);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -5,4 +5,16 @@
|
|||||||
{$ELSE}
|
{$ELSE}
|
||||||
{$UNDEF HAS_QWORD}
|
{$UNDEF HAS_QWORD}
|
||||||
{$UNDEF USE_INLINE}
|
{$UNDEF USE_INLINE}
|
||||||
|
{$DEFINE WST_RECORD_RTTI}
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF CPU86}
|
||||||
|
{$DEFINE HAS_COMP}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$IFDEF FPC}
|
||||||
|
{$IF Defined(FPC_VERSION) and (FPC_VERSION = 2) }
|
||||||
|
{$IF Defined(FPC_RELEASE) and (FPC_RELEASE > 0) }
|
||||||
|
{$define FPC_211}
|
||||||
|
{$IFEND}
|
||||||
|
{$IFEND}
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
42
wst/trunk/wst_types.pas
Normal file
42
wst/trunk/wst_types.pas
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
This file is part of the Web Service Toolkit
|
||||||
|
Copyright (c) 2006 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}
|
||||||
|
unit wst_types;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
{$INCLUDE wst.inc}
|
||||||
|
{$INCLUDE wst_delphi.inc}
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TDataObject }
|
||||||
|
|
||||||
|
TDataObject = class
|
||||||
|
private
|
||||||
|
FData : Pointer;
|
||||||
|
public
|
||||||
|
constructor Create(const AData : Pointer);
|
||||||
|
property Data : Pointer read FData write FData;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{ TDataObject }
|
||||||
|
|
||||||
|
constructor TDataObject.Create(const AData : Pointer);
|
||||||
|
begin
|
||||||
|
FData := AData;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
Reference in New Issue
Block a user