Delphi pooling is ok

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@215 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2007-07-18 11:23:56 +00:00
parent 7032cef6b7
commit 726114b2ae
27 changed files with 1338 additions and 604 deletions

View File

@ -91,7 +91,7 @@ type
IItemFactoryEx = interface(IItemFactory) IItemFactoryEx = interface(IItemFactory)
['{66B77926-7E45-4780-8FFB-FB78625EDC1D}'] ['{66B77926-7E45-4780-8FFB-FB78625EDC1D}']
procedure ReleaseInstance(var AInstance); procedure ReleaseInstance(const AInstance : IInterface);
function GetPropertyManager( function GetPropertyManager(
const APropertyGroup : string; const APropertyGroup : string;
const ACreateIfNotExists : Boolean const ACreateIfNotExists : Boolean
@ -1051,7 +1051,7 @@ type
); );
destructor Destroy();override; destructor Destroy();override;
function Get(const ATimeOut : Cardinal) : IInterface; function Get(const ATimeOut : Cardinal) : IInterface;
procedure Release(var AItem : IInterface); procedure Release(const AItem : IInterface);
property Min : PtrInt read FMin; property Min : PtrInt read FMin;
property Max : PtrInt read FMax; property Max : PtrInt read FMax;
end; end;
@ -1074,7 +1074,7 @@ type
procedure SetPoolMin(const AValue: PtrInt); procedure SetPoolMin(const AValue: PtrInt);
protected protected
function CreateInstance():IInterface;override; function CreateInstance():IInterface;override;
procedure ReleaseInstance(var AInstance);virtual; procedure ReleaseInstance(const AInstance : IInterface);virtual;
function GetPropertyManager( function GetPropertyManager(
const APropertyGroup : string; const APropertyGroup : string;
const ACreateIfNotExists : Boolean const ACreateIfNotExists : Boolean
@ -1768,8 +1768,8 @@ begin
if ( pt^.Kind = tkEnumeration ) and if ( pt^.Kind = tkEnumeration ) and
( GetTypeData(pt)^.BaseType^ = TypeInfo(Boolean) ) ( GetTypeData(pt)^.BaseType^ = TypeInfo(Boolean) )
then begin then begin
boolData := Boolean(GetOrdProp(AObject,p^.Name)); AStore.Get(pt,propName,boolData);
AStore.Put(propName,pt,boolData); SetPropValue(AObject,p^.Name,boolData);
end else begin end else begin
{$ENDIF} {$ENDIF}
FillChar(enumData,SizeOf(enumData),#0); FillChar(enumData,SizeOf(enumData),#0);
@ -1805,10 +1805,10 @@ begin
int64Data := enumData.ULongIntData; int64Data := enumData.ULongIntData;
End; End;
End; End;
SetOrdProp(AObject,p^.Name,int64Data);
{$IFNDEF FPC} {$IFNDEF FPC}
end; end;
{$ENDIF} {$ENDIF}
SetOrdProp(AObject,p^.Name,int64Data);
End; End;
tkFloat : tkFloat :
Begin Begin
@ -2146,16 +2146,10 @@ begin
end; end;
end; end;
procedure TSimpleItemFactoryEx.ReleaseInstance(var AInstance); procedure TSimpleItemFactoryEx.ReleaseInstance(const AInstance : IInterface);
var
tmpIntf : IInterface;
begin begin
tmpIntf := IInterface(AInstance);
Pointer(AInstance) := nil;
if Pooled then begin if Pooled then begin
FPool.Release(tmpIntf); FPool.Release(AInstance);
end else begin
tmpIntf := nil;
end; end;
end; end;
@ -4396,14 +4390,14 @@ begin
end; end;
end; end;
procedure TIntfPool.Release(var AItem: IInterface); procedure TIntfPool.Release(const AItem: IInterface);
var var
i : PtrInt; i : PtrInt;
begin begin
for i := 0 to Pred(FList.Count) do begin for i := 0 to Pred(FList.Count) do begin
if ( TIntfPoolItem(FList[i]).Intf = AItem ) then begin if ( TIntfPoolItem(FList[i]).Intf = AItem ) then begin
TIntfPoolItem(FList[i]).Used := False; TIntfPoolItem(FList[i]).Used := False;
AItem := nil; FLock.Release();
Break; Break;
end; end;
end; end;
@ -4440,7 +4434,6 @@ begin
buffer := AStore.ReadBuffer(AName); buffer := AStore.ReadBuffer(AName);
if ( AObject = nil ) then if ( AObject = nil ) then
AObject := Create(); AObject := Create();
writeLn;writeLn(AObject.ClassName);
locObj := AObject as TStringBufferRemotable;; locObj := AObject as TStringBufferRemotable;;
locObj.Data := buffer; locObj.Data := buffer;
end; end;

View File

@ -158,13 +158,11 @@ type
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Const AData : TEnumIntType Const AData : TEnumIntType
):TDOMNode; ):TDOMNode;
{$IFDEF FPC}
function PutBool( function PutBool(
Const AName : String; Const AName : String;
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Const AData : Boolean Const AData : Boolean
):TDOMNode; ):TDOMNode;
{$ENDIF}
function PutInt64( function PutInt64(
Const AName : String; Const AName : String;
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
@ -192,12 +190,12 @@ type
Var AName : String; Var AName : String;
Var AData : TEnumIntType Var AData : TEnumIntType
); );
{$IFDEF FPC}
procedure GetBool( procedure GetBool(
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Var AName : String; Var AName : String;
Var AData : Boolean Var AData : Boolean
); );
{$IFDEF FPC}
procedure GetInt( procedure GetInt(
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Var AName : String; Var AName : String;
@ -700,7 +698,6 @@ begin
); );
end; end;
{$IFDEF FPC}
function TSOAPBaseFormatter.PutBool( function TSOAPBaseFormatter.PutBool(
const AName : String; const AName : String;
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
@ -709,7 +706,6 @@ function TSOAPBaseFormatter.PutBool(
begin begin
Result := InternalPutData(AName,ATypeInfo,LowerCase(BoolToStr(AData))); Result := InternalPutData(AName,ATypeInfo,LowerCase(BoolToStr(AData)));
end; end;
{$ENDIF}
function TSOAPBaseFormatter.PutInt64( function TSOAPBaseFormatter.PutInt64(
const AName : String; const AName : String;
@ -808,7 +804,6 @@ begin
AData := GetEnumValue(ATypeInfo,locBuffer) AData := GetEnumValue(ATypeInfo,locBuffer)
End; End;
{$IFDEF FPC}
procedure TSOAPBaseFormatter.GetBool( procedure TSOAPBaseFormatter.GetBool(
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
var AName : String; var AName : String;
@ -824,6 +819,7 @@ begin
AData := StrToBool(locBuffer); AData := StrToBool(locBuffer);
end; end;
{$IFDEF FPC}
procedure TSOAPBaseFormatter.GetInt( procedure TSOAPBaseFormatter.GetInt(
const ATypeInfo: PTypeInfo; const ATypeInfo: PTypeInfo;
var AName: String; var AName: String;
@ -1337,7 +1333,7 @@ Var
int64Data : Int64; int64Data : Int64;
strData : string; strData : string;
objData : TObject; objData : TObject;
{$IFDEF FPC}boolData : Boolean;{$ENDIF} boolData : Boolean;
enumData : TEnumIntType; enumData : TEnumIntType;
floatDt : Extended; floatDt : Extended;
begin begin
@ -1365,21 +1361,32 @@ begin
End; End;
{$ENDIF} {$ENDIF}
tkInteger, tkEnumeration : tkInteger, tkEnumeration :
Begin begin
enumData := 0; {$IFNDEF FPC}
Case GetTypeData(ATypeInfo)^.OrdType Of if ( ATypeInfo^.Kind = tkEnumeration ) and
otSByte : enumData := ShortInt(AData); ( GetTypeData(ATypeInfo)^.BaseType^ = TypeInfo(Boolean) )
otUByte : enumData := Byte(AData); then begin
otSWord : enumData := SmallInt(AData); boolData := Boolean(AData);
otUWord : enumData := Word(AData); PutBool(AName,ATypeInfo,boolData);
otSLong, end else begin
otULong : enumData := LongInt(AData); {$ENDIF}
End; enumData := 0;
If ( ATypeInfo^.Kind = tkInteger ) Then Case GetTypeData(ATypeInfo)^.OrdType Of
PutInt64(AName,ATypeInfo,enumData) otSByte : enumData := ShortInt(AData);
Else otUByte : enumData := Byte(AData);
PutEnum(AName,ATypeInfo,enumData); otSWord : enumData := SmallInt(AData);
End; otUWord : enumData := Word(AData);
otSLong,
otULong : enumData := LongInt(AData);
End;
If ( ATypeInfo^.Kind = tkInteger ) Then
PutInt64(AName,ATypeInfo,enumData)
Else
PutEnum(AName,ATypeInfo,enumData);
{$IFNDEF FPC}
end;
{$ENDIF}
end;
tkFloat : tkFloat :
Begin Begin
floatDt := 0; floatDt := 0;
@ -1516,7 +1523,7 @@ Var
int64Data : Int64; int64Data : Int64;
strData : string; strData : string;
objData : TObject; objData : TObject;
{$IFDEF FPC}boolData : Boolean;{$ENDIF} boolData : Boolean;
enumData : TEnumIntType; enumData : TEnumIntType;
floatDt : Extended; floatDt : Extended;
begin begin
@ -1548,21 +1555,33 @@ begin
End; End;
{$ENDIF} {$ENDIF}
tkInteger, tkEnumeration : tkInteger, tkEnumeration :
Begin begin
enumData := 0; {$IFNDEF FPC}
If ( ATypeInfo^.Kind = tkInteger ) Then if ( ATypeInfo^.Kind = tkEnumeration ) and
GetInt64(ATypeInfo,AName,enumData) ( GetTypeData(ATypeInfo)^.BaseType^ = TypeInfo(Boolean) )
Else then begin
GetEnum(ATypeInfo,AName,enumData); boolData := False;
Case GetTypeData(ATypeInfo)^.OrdType Of GetBool(ATypeInfo,AName,boolData);
otSByte : ShortInt(AData) := enumData; Boolean(AData) := boolData;
otUByte : Byte(AData) := enumData; end else begin
otSWord : SmallInt(AData) := enumData; {$ENDIF}
otUWord : Word(AData) := enumData; enumData := 0;
otSLong, If ( ATypeInfo^.Kind = tkInteger ) Then
otULong : LongInt(AData) := enumData; GetInt64(ATypeInfo,AName,enumData)
End; Else
End; GetEnum(ATypeInfo,AName,enumData);
Case GetTypeData(ATypeInfo)^.OrdType Of
otSByte : ShortInt(AData) := enumData;
otUByte : Byte(AData) := enumData;
otSWord : SmallInt(AData) := enumData;
otUWord : Word(AData) := enumData;
otSLong,
otULong : LongInt(AData) := enumData;
End;
{$IFNDEF FPC}
end;
{$ENDIF}
end;
tkFloat : tkFloat :
Begin Begin
floatDt := 0; floatDt := 0;

View File

@ -0,0 +1,272 @@
{
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 config_objects;
interface
uses SysUtils, Classes, base_service_intf;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type
TwstConfigItem = class(TBaseComplexRemotable);
TwstConfigService = class(TwstConfigItem)
private
FPooled: Boolean;
FPoolMax: PtrInt;
FPoolMin: PtrInt;
FTimeOut: PtrUInt;
FName: string;
public
function GetConfigText() : string;
published
property Name : string read FName write FName;
property PoolMax : PtrInt read FPoolMax write FPoolMax;
property PoolMin : PtrInt read FPoolMin write FPoolMin;
property Pooled : Boolean read FPooled write FPooled;
property TimeOut : PtrUInt read FTimeOut write FTimeOut;
end;
TwstConfigServiceArray = class(TBaseObjectArrayRemotable)
private
function GetItem(AIndex: Integer): TwstConfigService;
public
class function GetItemClass():TBaseRemotableClass;override;
property Item[AIndex:Integer] : TwstConfigService Read GetItem;Default;
end;
TWstConfigurationObject = class(TBaseComplexRemotable)
private
FServices: TwstConfigServiceArray;
public
constructor Create();override;
destructor Destroy();override;
published
property Services : TwstConfigServiceArray read FServices write FServices;
end;
{$IFNDEF FPC}
function GetAppConfigDir(const AGlobal : Boolean) : string;
{$ENDIF}
function wst_GetConfigFileName():string;
function wst_GetConfigObject() : TWstConfigurationObject;
function wst_GetServiceConfig(const AName : string) : TwstConfigService ;
function wst_GetServiceConfigText(const AName : string) : string ;
procedure wst_CreateDefaultFile(ADest : TStream; AConfigObj : TWstConfigurationObject);overload;
procedure wst_CreateDefaultFile(const AFileName : string; AConfigObj : TWstConfigurationObject);overload;
implementation
uses
base_soap_formatter, server_service_intf,
{$IFNDEF FPC}
xmldom, wst_delphi_xml
{$ELSE}
DOM, XmlRead, XmlWrite
{$ENDIF};
const
sCONFIG_FILE_NAME = 'wst_config.xml';
sAPPLICATION = 'Application';
sWST_CONFIG_PATH = 'WST_Configuration';
var
ConfigurationObjectInstance : TWstConfigurationObject = nil;
{$IFNDEF FPC}
function GetAppConfigDir(const AGlobal : Boolean) : string;
begin
Result := ExtractFilePath(ParamStr(0));
end;
{$ENDIF}
function wst_GetConfigFileName():string;
begin
Result := IncludeTrailingPathDelimiter(GetAppConfigDir(True)) + sCONFIG_FILE_NAME;
end;
procedure wst_LoadConfigObject(AConfig: TWstConfigurationObject; AStream : TStream);overload;
var
frmt : IFormatterBase;
locPrmName : string;
begin
frmt := TSOAPBaseFormatter.Create();
frmt.LoadFromStream(AStream);
frmt.SetSerializationStyle(ssNodeSerialization);
locPrmName := sWST_CONFIG_PATH;
frmt.Get(TypeInfo(TWstConfigurationObject),locPrmName,AConfig);
end;
procedure wst_LoadConfigObject(AConfig : TWstConfigurationObject; const AFileName : string);overload;
var
locStream : TMemoryStream;
begin
if not FileExists(AFileName) then
raise Exception.CreateFmt('File not found : "%s".',[AFileName]);
locStream := TMemoryStream.Create();
try
locStream.LoadFromFile(AFileName);
locStream.Position := 0;
wst_LoadConfigObject(AConfig,locStream);
finally
FreeAndNil(locStream);
end;
end;
procedure wst_CreateDefaultFile(ADest : TStream; AConfigObj : TWstConfigurationObject);overload;
var
locObj : TWstConfigurationObject;
c, i : Integer;
servReg : IServerServiceRegistry;
frmt : IFormatterBase;
createdHere : Boolean;
begin
if ( AConfigObj <> nil ) then
locObj := AConfigObj
else
locObj := TWstConfigurationObject.Create();
try
createdHere := ( AConfigObj = nil );
servReg := GetServerServiceRegistry();
c := servReg.GetCount();
locObj.Services.SetLength(0);
if ( c > 0 ) then begin
locObj.Services.SetLength(c);
for i := 0 to Pred(c) do begin
locObj.Services[i].Name := servReg.GetName(i);
end;
end;
frmt := TSOAPBaseFormatter.Create();
frmt.SetSerializationStyle(ssNodeSerialization);
frmt.BeginObject(sAPPLICATION,TypeInfo(TWstConfigurationObject));
frmt.Put(sWST_CONFIG_PATH,TypeInfo(TWstConfigurationObject),locObj);
frmt.EndScope();
frmt.SaveToStream(ADest);
finally
if createdHere then
FreeAndNil(locObj);
end;
end;
procedure wst_CreateDefaultFile(const AFileName : string; AConfigObj : TWstConfigurationObject);overload;
var
locStream : TMemoryStream;
begin
locStream := TMemoryStream.Create();
try
wst_CreateDefaultFile(locStream,AConfigObj);
locStream.SaveToFile(AFileName);
finally
FreeAndNil(locStream);
end;
end;
function wst_GetConfigObject() : TWstConfigurationObject;
var
locFileName : string;
begin
if ( ConfigurationObjectInstance = nil ) then begin
ConfigurationObjectInstance := TWstConfigurationObject.Create();
locFileName := wst_GetConfigFileName();
if FileExists(locFileName) then
wst_LoadConfigObject(ConfigurationObjectInstance,locFileName)
else
wst_CreateDefaultFile(locFileName,ConfigurationObjectInstance);
end;
Result := ConfigurationObjectInstance;
end;
function wst_GetServiceConfig(const AName : string) : TwstConfigService ;
var
i, c : Integer;
servs : TwstConfigServiceArray;
begin
Result := nil;
servs := wst_GetConfigObject().Services;
c := servs.Length;
for i := 0 to Pred(c) do begin
if AnsiSameText(AName,servs[i].Name) then begin
Result := servs[i];
Break;
end;
end;
end;
function wst_GetServiceConfigText(const AName : string) : string ;
var
s : TwstConfigService;
begin
s := wst_GetServiceConfig(AName);
if ( s <> nil ) then
Result := s.GetConfigText()
else
Result := '';
end;
{ TwstConfigServiceArray }
function TwstConfigServiceArray.GetItem(AIndex: Integer): TwstConfigService;
begin
Result := Inherited GetItem(AIndex) As TwstConfigService;
end;
class function TwstConfigServiceArray.GetItemClass() : TBaseRemotableClass;
begin
Result := TwstConfigService;
end;
{ TWstConfigurationObject }
constructor TWstConfigurationObject.Create;
begin
inherited;
FServices := TwstConfigServiceArray.Create();
end;
destructor TWstConfigurationObject.Destroy;
begin
FreeAndNil(FServices);
inherited;
end;
{ TwstConfigService }
function TwstConfigService.GetConfigText() : string;
begin
Result := Format('PoolMin=%d;PoolMax=%d;Pooled=',[PoolMin,PoolMax]);
if Pooled then
Result := Result + 'True'
else
Result := Result + 'False';
end;
initialization
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TwstConfigService),'Service');
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TwstConfigServiceArray),'Services');
GetTypeRegistry().Register(sWST_BASE_NS,TypeInfo(TWstConfigurationObject),'WST_Configuration');
TwstConfigService.RegisterAttributeProperty('Name');
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TwstConfigServiceArray)].RegisterExternalPropertyName('Item','service');
finalization
if ( ConfigurationObjectInstance <> nil ) and
( GetServerServiceRegistry.GetCount() <> ConfigurationObjectInstance.Services.Length )
then begin
wst_CreateDefaultFile(wst_GetConfigFileName(),nil);
end;
FreeAndNil(ConfigurationObjectInstance);
end.

View File

@ -0,0 +1,13 @@
unit delphi_init_com;
interface
uses ActiveX;
implementation
initialization
CoInitialize(nil);
finalization
CoUninitialize();
end.

View File

@ -49,8 +49,6 @@ type
FHTTPServerObject: TIdHTTPServer; FHTTPServerObject: TIdHTTPServer;
FRootAddress : string; FRootAddress : string;
private private
function GenerateWSDLTable():string;
procedure ProcessWSDLRequest( procedure ProcessWSDLRequest(
{$IFDEF INDY_10} {$IFDEF INDY_10}
AContext : TIdContext; AContext : TIdContext;
@ -93,18 +91,14 @@ type
implementation implementation
uses base_service_intf, uses
server_service_intf, server_service_imputils,
server_service_soap, server_binary_formatter, server_service_xmlrpc,
metadata_repository, metadata_wsdl,
{$IFNDEF FPC} {$IFNDEF FPC}
ActiveX, XMLDoc,XMLIntf,xmldom, wst_delphi_xml, ActiveX,
{$ELSE}
DOM, XMLWrite, wst_fpc_xml,
{$ENDIF} {$ENDIF}
metadata_service, metadata_service_binder, metadata_service_imp, base_service_intf,
server_service_intf, server_service_imputils,
metadata_wsdl;
user_service_intf, user_service_intf_binder, user_service_intf_imp;
{$IFNDEF FPC} {$IFNDEF FPC}
type type
@ -129,11 +123,6 @@ begin
end; end;
{$ENDIF} {$ENDIF}
const
sSEPARATOR = '/';
sSERVICES_PREFIXE = 'services';
sWSDL = 'WSDL';
function ExtractNextPathElement(var AFullPath : string):string; function ExtractNextPathElement(var AFullPath : string):string;
var var
i : SizeInt; i : SizeInt;
@ -154,78 +143,8 @@ begin
end; end;
end; end;
function GetWSDL(const ARepName, ARootAddress: shortstring):string;
var
strm : TMemoryStream;
rep : PServiceRepository;
doc :TXMLDocument;
i : SizeInt;
s : string;
begin
Result := '';
rep := nil;
doc := Nil;
i := GetModuleMetadataMngr().IndexOfName(ARepName);
if ( i < 0 ) then
Exit;
strm := TMemoryStream.Create();
try
s := GetModuleMetadataMngr().GetRepositoryName(i);
GetModuleMetadataMngr().LoadRepositoryName(s,ARootAddress,rep);
//if ( GetModuleMetadataMngr().LoadRepositoryName(s,rep) > 0 ) then
//rep^.namespace := 'urn:wst';
strm.Clear();
doc := CreateDoc();
GenerateWSDL(rep,doc);
WriteXMLFile(doc,strm);
i := strm.Size;
if ( i > 0 ) then begin
SetLength(Result,i);
Move(strm.memory^,Result[1],i);
end;
finally
ReleaseDomNode(doc);
strm.Free();
GetModuleMetadataMngr().ClearRepository(rep);
end;
end;
{ TwstIndyHttpListener } { TwstIndyHttpListener }
function TwstIndyHttpListener.GenerateWSDLTable(): string;
var
r : IModuleMetadataMngr;
i : Integer;
begin
r := GetModuleMetadataMngr();
Result := '<html>' +
'<head>'+
'<title>'+
'The Web Services Toolkit generated Metadata table'+
'</title>'+
'<body>' +
'<p BGCOLOR="#DDEEFF"><FONT FACE="Arial" COLOR="#0000A0" SIZE="+2">The following repositories has available. Click on the link to view the corresponding WSDL.</FONT></p>'+
'<table width="100%">';
for i := 0 to Pred(r.GetCount()) do begin
Result := Result +
'<tr>' +
'<td align="left">' +
Format('<a href="%s">',[sSEPARATOR+sSERVICES_PREFIXE+sSEPARATOR+sWSDL+sSEPARATOR+r.GetRepositoryName(i)])+
r.GetRepositoryName(i) +
'</a>'+
'</td>' +
'</tr>';
end;
Result := Result +
'</table>'+
'</body>'+
'</head>'+
'</html>';
end;
procedure TwstIndyHttpListener.ProcessWSDLRequest( procedure TwstIndyHttpListener.ProcessWSDLRequest(
{$IFDEF INDY_10} {$IFDEF INDY_10}
AContext : TIdContext; AContext : TIdContext;
@ -241,7 +160,7 @@ begin
locRepName := ExtractNextPathElement(APath); locRepName := ExtractNextPathElement(APath);
if AnsiSameText(sWSDL,locRepName) then if AnsiSameText(sWSDL,locRepName) then
locRepName := ExtractNextPathElement(APath); locRepName := ExtractNextPathElement(APath);
strBuff := GetWSDL(locRepName,FRootAddress); strBuff := GenerateWSDL(locRepName,FRootAddress);
i := Length(strBuff); i := Length(strBuff);
if ( i > 0 ) then begin if ( i > 0 ) then begin
AResponseInfo.ContentType := 'text/xml'; AResponseInfo.ContentType := 'text/xml';
@ -250,7 +169,7 @@ begin
AResponseInfo.ContentStream.Write(strBuff[1],i); AResponseInfo.ContentStream.Write(strBuff[1],i);
Exit; Exit;
end; end;
AResponseInfo.ContentText := GenerateWSDLTable(); AResponseInfo.ContentText := GenerateWSDLHtmlTable();
AResponseInfo.ContentType := 'text/html'; AResponseInfo.ContentType := 'text/html';
end; end;
@ -395,17 +314,6 @@ begin
end; end;
initialization initialization
RegisterStdTypes();
Server_service_RegisterBinaryFormat();
Server_service_RegisterSoapFormat();
Server_service_RegisterXmlRpcFormat();
RegisterUserServiceImplementationFactory();
Server_service_RegisterUserServiceService();
Register_user_service_intf_ServiceMetadata();
RegisterWSTMetadataServiceImplementationFactory();
Server_service_RegisterWSTMetadataServiceService();
end. end.

View File

@ -76,12 +76,18 @@ type
); );
end; end;
procedure GenerateWSDL(AMdtdRep : PServiceRepository; ADoc : TXMLDocument); procedure GenerateWSDL(AMdtdRep : PServiceRepository; ADoc : TXMLDocument);overload;
function GenerateWSDL(const ARepName, ARootAddress : string):string;overload;
function GetWsdlTypeHandlerRegistry():IWsdlTypeHandlerRegistry; function GetWsdlTypeHandlerRegistry():IWsdlTypeHandlerRegistry;
implementation implementation
uses {$IFNDEF FPC}wst_delphi_rtti_utils{$ELSE}wst_fpc_xml{$ENDIF}; uses
{$IFNDEF FPC}
wst_delphi_rtti_utils
{$ELSE}
wst_fpc_xml, XmlWrite
{$ENDIF};
const const
sWSDL_NS = 'http://schemas.xmlsoap.org/wsdl/'; sWSDL_NS = 'http://schemas.xmlsoap.org/wsdl/';
@ -569,6 +575,40 @@ begin
end; end;
function GenerateWSDL(const ARepName, ARootAddress : string):string;overload;
var
strm : TMemoryStream;
rep : PServiceRepository;
doc :TXMLDocument;
i : SizeInt;
s : string;
begin
Result := '';
rep := nil;
doc := Nil;
i := GetModuleMetadataMngr().IndexOfName(ARepName);
if ( i < 0 ) then
Exit;
strm := TMemoryStream.Create();
try
s := GetModuleMetadataMngr().GetRepositoryName(i);
GetModuleMetadataMngr().LoadRepositoryName(s,ARootAddress,rep);
strm.Clear();
doc := CreateDoc();
GenerateWSDL(rep,doc);
WriteXMLFile(doc,strm);
i := strm.Size;
if ( i > 0 ) then begin
SetLength(Result,i);
Move(strm.memory^,Result[1],i);
end;
finally
ReleaseDomNode(doc);
strm.Free();
GetModuleMetadataMngr().ClearRepository(rep);
end;
end;
function GetWsdlTypeHandlerRegistry():IWsdlTypeHandlerRegistry; function GetWsdlTypeHandlerRegistry():IWsdlTypeHandlerRegistry;
begin begin
Result := WsdlTypeHandlerRegistryInst; Result := WsdlTypeHandlerRegistryInst;

View File

@ -6,35 +6,44 @@ uses
SysUtils, SysUtils,
Classes, Classes,
ActiveX, ActiveX,
delphi_init_com in '..\..\..\delphi_init_com.pas',
server_service_soap,
server_binary_formatter,
server_service_xmlrpc,
indy_http_server, indy_http_server,
metadata_service, metadata_service,
logger_extension, logger_extension,
wst_delphi_rtti_utils in '..\..\..\wst_delphi_rtti_utils.pas', wst_delphi_rtti_utils in '..\..\..\wst_delphi_rtti_utils.pas',
server_listener in '..\..\..\server_listener.pas'; server_listener in '..\..\..\server_listener.pas',
config_objects in '..\..\..\config_objects.pas',
user_service_intf in '..\..\user_service_intf.pas',
user_service_intf_binder in '..\..\user_service_intf_binder.pas',
user_service_intf_imp in '..\..\user_service_intf_imp.pas',
server_service_intf in '..\..\..\server_service_intf.pas';
var var
AppObject : TwstIndyHttpListener; AppObject : TwstIndyHttpListener;
begin begin
{$IFNDEF FPC} Server_service_RegisterBinaryFormat();
CoInitialize(nil); Server_service_RegisterSoapFormat();
Server_service_RegisterXmlRpcFormat();
RegisterUserServiceImplementationFactory();
Server_service_RegisterUserServiceService();
//wst_CreateDefaultFile(wst_GetConfigFileName(),nil);
AppObject := TwstIndyHttpListener.Create();
try try
{$ENDIF} WriteLn('"Web Service Toolkit" HTTP Server sample listening at:');
AppObject := TwstIndyHttpListener.Create(); WriteLn('');
try WriteLn('http://127.0.0.1:8000/');
WriteLn('"Web Service Toolkit" HTTP Server sample listening at:'); WriteLn('');
WriteLn(''); WriteLn('Press enter to quit.');
WriteLn('http://127.0.0.1:8000/'); AppObject.Start();
WriteLn(''); ReadLn;
WriteLn('Press enter to quit.');
AppObject.Start();
ReadLn;
finally
FreeAndNil(AppObject);
end;
{$IFNDEF FPC}
finally finally
CoUninitialize(); FreeAndNil(AppObject);
end; end;
{$ENDIF}
end. end.

View File

@ -0,0 +1,43 @@
-$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"..\..\;..\..\..\;..\..\..\wst_rtti_filter"
-O"..\..\;..\..\..\;..\..\..\wst_rtti_filter"
-I"..\..\;..\..\..\;..\..\..\wst_rtti_filter"
-R"..\..\;..\..\..\;..\..\..\wst_rtti_filter"
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

View File

@ -0,0 +1,161 @@
[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=..\..\;..\..\..\;..\..\..\wst_rtti_filter
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=
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=6
Item0=..\..\;..\..\..\;..\..\..\wst_rtti_filter
Item1=..\..\;..\..\..\
Item2=..\..\..\;..\..\;..\..\..\wst_rtti_filter
Item3=..\..\..\;..\..\
Item4=..\..\..\
Item5=..\
[HistoryLists\hlUnitOutputDirectory]
Count=1
Item0=obj

View File

@ -0,0 +1,36 @@
library lib_server;
uses
SysUtils, Classes,
base_service_intf,
server_service_intf,
server_service_soap,
server_binary_formatter,
server_service_xmlrpc,
metadata_repository,
metadata_wsdl,
metadata_service,
metadata_service_binder,
metadata_service_imp,
library_base_intf,
library_server_intf,
user_service_intf_binder,
user_service_intf_imp;
{$R *.res}
exports
wstHandleRequest name WST_LIB_HANDLER;
begin
RegisterStdTypes();
Server_service_RegisterBinaryFormat();
Server_service_RegisterSoapFormat();
Server_service_RegisterXmlRpcFormat();
RegisterUserServiceImplementationFactory();
Server_service_RegisterUserServiceService();
RegisterWSTMetadataServiceImplementationFactory();
Server_service_RegisterWSTMetadataServiceService();
end.

View File

@ -0,0 +1,43 @@
-$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"..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\wst_rtti_filter"
-O"..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\wst_rtti_filter"
-I"..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\wst_rtti_filter"
-R"..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\wst_rtti_filter"
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

View File

@ -0,0 +1,160 @@
[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=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\wst_rtti_filter
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=
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\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=8
Item0=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\wst_rtti_filter
Item1=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\wst_rtti_filter
Item2=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse
Item3=..\..\;..\..\..\
Item4=$(DELPHI)\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\
Item5=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\
Item6=..\..\
Item7=..\
[HistoryLists\hlUnitOutputDirectory]
Count=1
Item0=obj

View File

@ -0,0 +1,50 @@
program tcp_server;
{$APPTYPE CONSOLE}
uses
Classes,
SysUtils, ActiveX,
base_service_intf,
server_service_soap,
base_binary_formatter,
server_binary_formatter,
metadata_service,
metadata_service_imp,
metadata_service_binder,
synapse_tcp_server,
user_service_intf,
user_service_intf_binder,
user_service_intf_imp,
imp_helper,
server_service_xmlrpc;
{$INCLUDE wst.inc}
var
listnerThread : TServerListnerThread;
begin
CoInitialize(nil);
try
SetLogger(TConsoleLogger.Create());
Server_service_RegisterBinaryFormat();
Server_service_RegisterSoapFormat();
Server_service_RegisterXmlRpcFormat();
RegisterWSTMetadataServiceImplementationFactory();
//Server_service_RegisterWSTMetadataServiceService();
RegisterWSTMetadataServiceImplementationFactory();
RegisterUserServiceImplementationFactory();
Server_service_RegisterUserServiceService();
Logger().Log('WST sample TCP Server listning on "%s"',[sSERVER_PORT]);
Logger().Log('Hit <enter> to stop.');
listnerThread := TServerListnerThread.Create();
ReadLn;
finally
CoUninitialize();
end;
end.

View File

@ -12,7 +12,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="1"/> <ActiveEditorIndexAtStart Value="8"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -34,15 +34,15 @@
<PackageName Value="indylaz"/> <PackageName Value="indylaz"/>
</Item1> </Item1>
</RequiredPackages> </RequiredPackages>
<Units Count="49"> <Units Count="54">
<Unit0> <Unit0>
<Filename Value="http_server.pas"/> <Filename Value="http_server.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="http_server"/> <UnitName Value="http_server"/>
<CursorPos X="33" Y="16"/> <CursorPos X="14" Y="30"/>
<TopLine Value="1"/> <TopLine Value="13"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="81"/> <UsageCount Value="103"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
@ -50,24 +50,24 @@
<UnitName Value="app_object"/> <UnitName Value="app_object"/>
<CursorPos X="42" Y="214"/> <CursorPos X="42" Y="214"/>
<TopLine Value="200"/> <TopLine Value="200"/>
<UsageCount Value="35"/> <UsageCount Value="33"/>
</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="4398"/>
<TopLine Value="1"/> <TopLine Value="4387"/>
<EditorIndex Value="21"/> <EditorIndex Value="8"/>
<UsageCount Value="39"/> <UsageCount Value="49"/>
<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="1" Y="1"/> <CursorPos X="80" Y="80"/>
<TopLine Value="1"/> <TopLine Value="66"/>
<EditorIndex Value="23"/> <EditorIndex Value="9"/>
<UsageCount Value="40"/> <UsageCount Value="50"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
@ -75,44 +75,43 @@
<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"/>
<EditorIndex Value="9"/> <UsageCount Value="34"/>
<UsageCount Value="24"/>
<Loaded Value="True"/>
</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="22" Y="161"/> <CursorPos X="1" Y="1"/>
<TopLine Value="160"/> <TopLine Value="1"/>
<EditorIndex Value="17"/> <EditorIndex Value="6"/>
<UsageCount Value="37"/> <UsageCount Value="47"/>
<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="1" Y="1"/> <CursorPos X="55" Y="16"/>
<TopLine Value="1"/> <TopLine Value="14"/>
<EditorIndex Value="5"/> <EditorIndex Value="3"/>
<UsageCount Value="23"/> <UsageCount Value="33"/>
<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"/>
<UnitName Value="user_service_intf"/> <UnitName Value="user_service_intf"/>
<CursorPos X="1" Y="1"/> <CursorPos X="3" Y="119"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="18"/> <EditorIndex Value="7"/>
<UsageCount Value="37"/> <UsageCount Value="54"/>
<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="1"/> <TopLine Value="7"/>
<EditorIndex Value="26"/> <EditorIndex Value="12"/>
<UsageCount Value="40"/> <UsageCount Value="50"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
@ -120,207 +119,187 @@
<UnitName Value="semaphore"/> <UnitName Value="semaphore"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="22"/> <UsageCount Value="27"/>
<UsageCount Value="24"/>
<Loaded Value="True"/>
</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="67" Y="105"/>
<TopLine Value="1"/> <TopLine Value="102"/>
<EditorIndex Value="16"/> <EditorIndex Value="5"/>
<UsageCount Value="39"/> <UsageCount Value="49"/>
<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="1" Y="1"/> <CursorPos X="17" Y="22"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="13"/> <UsageCount Value="42"/>
<UsageCount Value="39"/>
<Loaded Value="True"/>
</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="17" Y="28"/> <CursorPos X="36" Y="1576"/>
<TopLine Value="13"/> <TopLine Value="1586"/>
<EditorIndex Value="15"/> <UsageCount Value="43"/>
<UsageCount Value="39"/>
<Loaded Value="True"/>
</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"/>
<EditorIndex Value="20"/> <UsageCount Value="37"/>
<UsageCount Value="38"/>
<Loaded Value="True"/>
</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="6"/> <UsageCount Value="4"/>
</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="6"/> <UsageCount Value="4"/>
</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="5"/> <UsageCount Value="3"/>
</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="6"/> <UsageCount Value="4"/>
</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="1" Y="1"/> <CursorPos X="21" Y="22"/>
<TopLine Value="1"/> <TopLine Value="7"/>
<EditorIndex Value="8"/> <UsageCount Value="40"/>
<UsageCount Value="37"/>
<Loaded Value="True"/>
</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"/>
<EditorIndex Value="14"/> <UsageCount Value="38"/>
<UsageCount Value="35"/>
<Loaded Value="True"/>
</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="18" Y="21"/> <CursorPos X="3" Y="985"/>
<TopLine Value="1"/> <TopLine Value="974"/>
<EditorIndex Value="12"/> <UsageCount Value="38"/>
<UsageCount Value="35"/>
<Loaded Value="True"/>
</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="6"/> <UsageCount Value="4"/>
</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="7"/> <UsageCount Value="5"/>
</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="59" Y="982"/> <CursorPos X="59" Y="982"/>
<TopLine Value="981"/> <TopLine Value="981"/>
<UsageCount Value="7"/> <UsageCount Value="5"/>
</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"/>
<EditorIndex Value="25"/> <EditorIndex Value="11"/>
<UsageCount Value="21"/> <UsageCount Value="31"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</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="7"/> <UsageCount Value="5"/>
</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="8"/> <UsageCount Value="6"/>
</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"/>
<EditorIndex Value="6"/> <UsageCount Value="39"/>
<UsageCount Value="29"/>
<Loaded Value="True"/>
</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="14"/> <UsageCount Value="12"/>
</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="7"/> <UsageCount Value="5"/>
</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"/>
<EditorIndex Value="4"/> <UsageCount Value="38"/>
<UsageCount Value="28"/>
<Loaded Value="True"/>
</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"/>
<EditorIndex Value="3"/> <UsageCount Value="38"/>
<UsageCount Value="28"/>
<Loaded Value="True"/>
</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="7"/> <UsageCount Value="5"/>
</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="7"/> <UsageCount Value="5"/>
</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="1" Y="1"/> <CursorPos X="8" Y="216"/>
<TopLine Value="322"/> <TopLine Value="203"/>
<UsageCount Value="7"/> <UsageCount Value="10"/>
</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="7"/> <UsageCount Value="5"/>
</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="21" Y="77"/> <CursorPos X="36" Y="64"/>
<TopLine Value="5"/> <TopLine Value="101"/>
<EditorIndex Value="7"/> <EditorIndex Value="4"/>
<UsageCount Value="28"/> <UsageCount Value="38"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit36> </Unit36>
<Unit37> <Unit37>
@ -328,24 +307,20 @@
<UnitName Value="metadata_service"/> <UnitName Value="metadata_service"/>
<CursorPos X="26" Y="13"/> <CursorPos X="26" Y="13"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="10"/> <UsageCount Value="34"/>
<UsageCount Value="24"/>
<Loaded Value="True"/>
</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"/>
<EditorIndex Value="11"/> <UsageCount Value="23"/>
<UsageCount Value="24"/>
<Loaded Value="True"/>
</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="8"/> <UsageCount Value="6"/>
<SyntaxHighlighter Value="None"/> <SyntaxHighlighter Value="None"/>
</Unit39> </Unit39>
<Unit40> <Unit40>
@ -353,15 +328,15 @@
<UnitName Value="DOM"/> <UnitName Value="DOM"/>
<CursorPos X="42" Y="228"/> <CursorPos X="42" Y="228"/>
<TopLine Value="215"/> <TopLine Value="215"/>
<UsageCount Value="16"/> <UsageCount Value="14"/>
</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="46" Y="371"/> <CursorPos X="1" Y="1"/>
<TopLine Value="366"/> <TopLine Value="115"/>
<EditorIndex Value="24"/> <EditorIndex Value="10"/>
<UsageCount Value="22"/> <UsageCount Value="32"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit41> </Unit41>
<Unit42> <Unit42>
@ -369,16 +344,14 @@
<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="19"/> <UsageCount Value="31"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
</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="10"/> <UsageCount Value="8"/>
</Unit43> </Unit43>
<Unit44> <Unit44>
<Filename Value="..\..\type_lib_edtr\uabout.pas"/> <Filename Value="..\..\type_lib_edtr\uabout.pas"/>
@ -388,7 +361,7 @@
<UnitName Value="uabout"/> <UnitName Value="uabout"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="10"/> <UsageCount Value="8"/>
</Unit44> </Unit44>
<Unit45> <Unit45>
<Filename Value="..\..\type_lib_edtr\uwsttypelibraryedit.pas"/> <Filename Value="..\..\type_lib_edtr\uwsttypelibraryedit.pas"/>
@ -397,7 +370,7 @@
<UnitName Value="uwsttypelibraryedit"/> <UnitName Value="uwsttypelibraryedit"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="9"/> <UsageCount Value="7"/>
</Unit45> </Unit45>
<Unit46> <Unit46>
<Filename Value="..\..\ide\lazarus\wstimportdlg.pas"/> <Filename Value="..\..\ide\lazarus\wstimportdlg.pas"/>
@ -407,77 +380,60 @@
<UnitName Value="wstimportdlg"/> <UnitName Value="wstimportdlg"/>
<CursorPos X="27" Y="7"/> <CursorPos X="27" Y="7"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="10"/> <UsageCount Value="8"/>
</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="36" Y="205"/> <CursorPos X="1" Y="317"/>
<TopLine Value="197"/> <TopLine Value="293"/>
<EditorIndex Value="1"/> <EditorIndex Value="2"/>
<UsageCount Value="14"/> <UsageCount Value="24"/>
<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="21" Y="15"/> <CursorPos X="28" Y="33"/>
<TopLine Value="12"/> <TopLine Value="26"/>
<EditorIndex Value="2"/> <UsageCount Value="23"/>
</Unit48>
<Unit49>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\aliases.inc"/>
<CursorPos X="84" Y="14"/>
<TopLine Value="1"/>
<UsageCount Value="13"/>
</Unit49>
<Unit50>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\variant.inc"/>
<CursorPos X="11" Y="24"/>
<TopLine Value="29"/>
<UsageCount Value="13"/>
</Unit50>
<Unit51>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\osutilsh.inc"/>
<CursorPos X="53" Y="37"/>
<TopLine Value="30"/>
<UsageCount Value="16"/>
</Unit51>
<Unit52>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win\sysutils.pp"/>
<UnitName Value="sysutils"/>
<CursorPos X="45" Y="1084"/>
<TopLine Value="1076"/>
<UsageCount Value="16"/>
</Unit52>
<Unit53>
<Filename Value="..\..\config_objects.pas"/>
<UnitName Value="config_objects"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="22"/>
<EditorIndex Value="1"/>
<UsageCount Value="13"/> <UsageCount Value="13"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit48> </Unit53>
</Units> </Units>
<JumpHistory Count="12" HistoryIndex="11"> <JumpHistory Count="0" HistoryIndex="-1"/>
<Position1>
<Filename Value="http_server.pas"/>
<Caret Line="16" Column="28" TopLine="1"/>
</Position1>
<Position2>
<Filename Value="http_server.pas"/>
<Caret Line="14" Column="19" TopLine="1"/>
</Position2>
<Position3>
<Filename Value="http_server.pas"/>
<Caret Line="23" Column="15" TopLine="1"/>
</Position3>
<Position4>
<Filename Value="..\..\indy_http_server.pas"/>
<Caret Line="47" Column="37" TopLine="28"/>
</Position4>
<Position5>
<Filename Value="http_server.pas"/>
<Caret Line="10" Column="72" TopLine="1"/>
</Position5>
<Position6>
<Filename Value="http_server.pas"/>
<Caret Line="23" Column="23" TopLine="2"/>
</Position6>
<Position7>
<Filename Value="http_server.pas"/>
<Caret Line="16" Column="33" TopLine="2"/>
</Position7>
<Position8>
<Filename Value="..\..\indy_http_server.pas"/>
<Caret Line="213" Column="17" TopLine="200"/>
</Position8>
<Position9>
<Filename Value="..\..\indy_http_server.pas"/>
<Caret Line="219" Column="25" TopLine="207"/>
</Position9>
<Position10>
<Filename Value="..\..\indy_http_server.pas"/>
<Caret Line="220" Column="29" TopLine="206"/>
</Position10>
<Position11>
<Filename Value="..\..\indy_http_server.pas"/>
<Caret Line="181" Column="19" TopLine="168"/>
</Position11>
<Position12>
<Filename Value="..\..\indy_http_server.pas"/>
<Caret Line="221" Column="31" TopLine="206"/>
</Position12>
</JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
@ -489,7 +445,7 @@
<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\"/> <OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\"/>
<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\"/> <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>

View File

@ -7,12 +7,23 @@ uses
cthreads, cthreads,
{$ENDIF}{$ENDIF} {$ENDIF}{$ENDIF}
Classes, SysUtils, Classes, SysUtils,
indy_http_server, metadata_service, logger_extension, server_listener; indy_http_server, metadata_service, logger_extension, server_listener,
server_service_soap, server_binary_formatter, server_service_xmlrpc, config_objects,
user_service_intf, user_service_intf_binder, user_service_intf_imp;
var var
AppObject : TwstListener; AppObject : TwstListener;
begin begin
Server_service_RegisterBinaryFormat();
Server_service_RegisterSoapFormat();
Server_service_RegisterXmlRpcFormat();
RegisterUserServiceImplementationFactory();
Server_service_RegisterUserServiceService();
//wst_CreateDefaultFile(wst_GetConfigFileName(),nil);
AppObject := TwstIndyHttpListener.Create(); AppObject := TwstIndyHttpListener.Create();
try try
WriteLn('"Web Service Toolkit" HTTP Server sample listening at:'); WriteLn('"Web Service Toolkit" HTTP Server sample listening at:');

View File

@ -12,7 +12,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value=".\"/> <IconPath Value=".\"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="12"/> <ActiveEditorIndexAtStart Value="0"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -30,15 +30,15 @@
<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="50"> <Units Count="51">
<Unit0> <Unit0>
<Filename Value="tcp_server.pas"/> <Filename Value="tcp_server.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="tcp_server"/> <UnitName Value="tcp_server"/>
<CursorPos X="1" Y="53"/> <CursorPos X="33" Y="40"/>
<TopLine Value="29"/> <TopLine Value="29"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="83"/> <UsageCount Value="84"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
@ -77,8 +77,8 @@
<Unit6> <Unit6>
<Filename Value="..\..\server_service_soap.pas"/> <Filename Value="..\..\server_service_soap.pas"/>
<UnitName Value="server_service_soap"/> <UnitName Value="server_service_soap"/>
<CursorPos X="53" Y="177"/> <CursorPos X="42" Y="32"/>
<TopLine Value="157"/> <TopLine Value="16"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<UsageCount Value="29"/> <UsageCount Value="29"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -117,8 +117,8 @@
<UnitName Value="user_service_intf"/> <UnitName Value="user_service_intf"/>
<CursorPos X="3" Y="27"/> <CursorPos X="3" Y="27"/>
<TopLine Value="5"/> <TopLine Value="5"/>
<EditorIndex Value="10"/> <EditorIndex Value="11"/>
<UsageCount Value="83"/> <UsageCount Value="84"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
@ -126,7 +126,7 @@
<UnitName Value="base_service_intf"/> <UnitName Value="base_service_intf"/>
<CursorPos X="15" Y="307"/> <CursorPos X="15" Y="307"/>
<TopLine Value="293"/> <TopLine Value="293"/>
<EditorIndex Value="5"/> <EditorIndex Value="6"/>
<UsageCount Value="31"/> <UsageCount Value="31"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="19" Y="545" ID="0"/> <Item0 X="19" Y="545" ID="0"/>
@ -138,9 +138,7 @@
<UnitName Value="std_cursors"/> <UnitName Value="std_cursors"/>
<CursorPos X="14" Y="21"/> <CursorPos X="14" Y="21"/>
<TopLine Value="7"/> <TopLine Value="7"/>
<EditorIndex Value="14"/>
<UsageCount Value="36"/> <UsageCount Value="36"/>
<Loaded Value="True"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
<Filename Value="..\..\wst_rtti_filter\cursor_intf.pas"/> <Filename Value="..\..\wst_rtti_filter\cursor_intf.pas"/>
@ -154,7 +152,7 @@
<UnitName Value="user_service_intf_binder"/> <UnitName Value="user_service_intf_binder"/>
<CursorPos X="48" Y="34"/> <CursorPos X="48" Y="34"/>
<TopLine Value="11"/> <TopLine Value="11"/>
<EditorIndex Value="9"/> <EditorIndex Value="10"/>
<UsageCount Value="39"/> <UsageCount Value="39"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit15> </Unit15>
@ -220,7 +218,7 @@
<UnitName Value="server_service_intf"/> <UnitName Value="server_service_intf"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="46"/> <TopLine Value="46"/>
<EditorIndex Value="8"/> <EditorIndex Value="9"/>
<UsageCount Value="17"/> <UsageCount Value="17"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit25> </Unit25>
@ -235,7 +233,7 @@
<UnitName Value="user_service_intf_imp"/> <UnitName Value="user_service_intf_imp"/>
<CursorPos X="1" Y="56"/> <CursorPos X="1" Y="56"/>
<TopLine Value="40"/> <TopLine Value="40"/>
<EditorIndex Value="11"/> <EditorIndex Value="12"/>
<UsageCount Value="41"/> <UsageCount Value="41"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit27> </Unit27>
@ -249,9 +247,11 @@
<Unit29> <Unit29>
<Filename Value="..\..\base_soap_formatter.pas"/> <Filename Value="..\..\base_soap_formatter.pas"/>
<UnitName Value="base_soap_formatter"/> <UnitName Value="base_soap_formatter"/>
<CursorPos X="65" Y="313"/> <CursorPos X="24" Y="967"/>
<TopLine Value="304"/> <TopLine Value="941"/>
<UsageCount Value="8"/> <EditorIndex Value="3"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit29> </Unit29>
<Unit30> <Unit30>
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\typinfo.pp"/> <Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\typinfo.pp"/>
@ -273,7 +273,7 @@
<UnitName Value="imp_helper"/> <UnitName Value="imp_helper"/>
<CursorPos X="1" Y="44"/> <CursorPos X="1" Y="44"/>
<TopLine Value="32"/> <TopLine Value="32"/>
<UsageCount Value="52"/> <UsageCount Value="53"/>
</Unit32> </Unit32>
<Unit33> <Unit33>
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\persist.inc"/> <Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\classes\persist.inc"/>
@ -297,9 +297,9 @@
<Unit36> <Unit36>
<Filename Value="..\..\synapse_tcp_server.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<UnitName Value="synapse_tcp_server"/> <UnitName Value="synapse_tcp_server"/>
<CursorPos X="3" Y="325"/> <CursorPos X="40" Y="92"/>
<TopLine Value="309"/> <TopLine Value="67"/>
<EditorIndex Value="6"/> <EditorIndex Value="7"/>
<UsageCount Value="19"/> <UsageCount Value="19"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit36> </Unit36>
@ -335,9 +335,7 @@
<UnitName Value="blcksock"/> <UnitName Value="blcksock"/>
<CursorPos X="1" Y="2407"/> <CursorPos X="1" Y="2407"/>
<TopLine Value="2393"/> <TopLine Value="2393"/>
<EditorIndex Value="13"/>
<UsageCount Value="13"/> <UsageCount Value="13"/>
<Loaded Value="True"/>
</Unit41> </Unit41>
<Unit42> <Unit42>
<Filename Value="..\..\server_service_xmlrpc.pas"/> <Filename Value="..\..\server_service_xmlrpc.pas"/>
@ -345,8 +343,8 @@
<UnitName Value="server_service_xmlrpc"/> <UnitName Value="server_service_xmlrpc"/>
<CursorPos X="1" Y="83"/> <CursorPos X="1" Y="83"/>
<TopLine Value="69"/> <TopLine Value="69"/>
<EditorIndex Value="3"/> <EditorIndex Value="4"/>
<UsageCount Value="34"/> <UsageCount Value="35"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit42> </Unit42>
<Unit43> <Unit43>
@ -354,7 +352,7 @@
<UnitName Value="base_xmlrpc_formatter"/> <UnitName Value="base_xmlrpc_formatter"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="4"/> <EditorIndex Value="5"/>
<UsageCount Value="16"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit43> </Unit43>
@ -381,8 +379,8 @@
<Filename Value="..\..\server_listener.pas"/> <Filename Value="..\..\server_listener.pas"/>
<UnitName Value="server_listener"/> <UnitName Value="server_listener"/>
<CursorPos X="3" Y="28"/> <CursorPos X="3" Y="28"/>
<TopLine Value="14"/> <TopLine Value="21"/>
<EditorIndex Value="7"/> <EditorIndex Value="8"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit47> </Unit47>
@ -397,132 +395,29 @@
<UnitName Value="blcksock"/> <UnitName Value="blcksock"/>
<CursorPos X="1" Y="2407"/> <CursorPos X="1" Y="2407"/>
<TopLine Value="2393"/> <TopLine Value="2393"/>
<EditorIndex Value="12"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit49> </Unit49>
<Unit50>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\base\winunits\comobj.pp"/>
<UnitName Value="comobj"/>
<CursorPos X="14" Y="97"/>
<TopLine Value="114"/>
<UsageCount Value="10"/>
</Unit50>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="3" HistoryIndex="2">
<Position1> <Position1>
<Filename Value="..\..\synapse_tcp_server.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="302" Column="5" TopLine="270"/> <Caret Line="92" Column="40" TopLine="81"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="..\..\synapse_tcp_server.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="308" Column="5" TopLine="276"/> <Caret Line="40" Column="33" TopLine="29"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="..\..\synapse_tcp_server.pas"/> <Filename Value="..\..\server_service_soap.pas"/>
<Caret Line="287" Column="54" TopLine="267"/> <Caret Line="32" Column="42" TopLine="16"/>
</Position3> </Position3>
<Position4>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="75" Column="1" TopLine="62"/>
</Position4>
<Position5>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="79" Column="1" TopLine="76"/>
</Position5>
<Position6>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="46" Column="17" TopLine="32"/>
</Position6>
<Position7>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="205" Column="104" TopLine="191"/>
</Position7>
<Position8>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="254" Column="35" TopLine="240"/>
</Position8>
<Position9>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="61" Column="24" TopLine="47"/>
</Position9>
<Position10>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="226" Column="19" TopLine="221"/>
</Position10>
<Position11>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="256" Column="56" TopLine="242"/>
</Position11>
<Position12>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="263" Column="1" TopLine="247"/>
</Position12>
<Position13>
<Filename Value="tcp_server.pas"/>
<Caret Line="30" Column="17" TopLine="15"/>
</Position13>
<Position14>
<Filename Value="tcp_server.pas"/>
<Caret Line="39" Column="1" TopLine="25"/>
</Position14>
<Position15>
<Filename Value="tcp_server.pas"/>
<Caret Line="51" Column="11" TopLine="28"/>
</Position15>
<Position16>
<Filename Value="tcp_server.pas"/>
<Caret Line="30" Column="26" TopLine="28"/>
</Position16>
<Position17>
<Filename Value="tcp_server.pas"/>
<Caret Line="52" Column="31" TopLine="28"/>
</Position17>
<Position18>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="300" Column="1" TopLine="266"/>
</Position18>
<Position19>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="81" Column="41" TopLine="63"/>
</Position19>
<Position20>
<Filename Value="tcp_server.pas"/>
<Caret Line="52" Column="40" TopLine="28"/>
</Position20>
<Position21>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="81" Column="50" TopLine="65"/>
</Position21>
<Position22>
<Filename Value="tcp_server.pas"/>
<Caret Line="52" Column="40" TopLine="28"/>
</Position22>
<Position23>
<Filename Value="tcp_server.pas"/>
<Caret Line="53" Column="16" TopLine="29"/>
</Position23>
<Position24>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="315" Column="5" TopLine="283"/>
</Position24>
<Position25>
<Filename Value="tcp_server.pas"/>
<Caret Line="37" Column="19" TopLine="29"/>
</Position25>
<Position26>
<Filename Value="tcp_server.pas"/>
<Caret Line="52" Column="21" TopLine="29"/>
</Position26>
<Position27>
<Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="267" Column="24" TopLine="247"/>
</Position27>
<Position28>
<Filename Value="tcp_server.pas"/>
<Caret Line="52" Column="27" TopLine="29"/>
</Position28>
<Position29>
<Filename Value="tcp_server.pas"/>
<Caret Line="53" Column="1" TopLine="29"/>
</Position29>
<Position30>
<Filename Value="..\user_service_intf_imp.pas"/>
<Caret Line="56" Column="1" TopLine="40"/>
</Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -2,7 +2,7 @@
This unit has been produced by ws_helper. This unit has been produced by ws_helper.
Input unit name : "user_service_intf". Input unit name : "user_service_intf".
This unit name : "user_service_intf_binder". This unit name : "user_service_intf_binder".
Date : "13/07/2007 21:34:10". Date : "16/07/2007 19:01:46".
} }
unit user_service_intf_binder; unit user_service_intf_binder;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF} {$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
@ -284,10 +284,10 @@ End;
initialization initialization
{$IF DECLARED(Register_user_service_intf_NameSpace)}
Register_user_service_intf_NameSpace();
{$IFEND}
{$i user_service_intf.wst} {$i user_service_intf.wst}
{$IF DECLARED(Register_user_service_intf_ServiceMetadata)}
Register_user_service_intf_ServiceMetadata();
{$IFEND}
End. End.

View File

@ -15,10 +15,14 @@ Uses SysUtils, Classes,
Type Type
TUser = TUser_Type; TUser = TUser_Type;
{ TUserService_ServiceImp } { TUserService_ServiceImp }
TUserService_ServiceImp=class(TBaseServiceImplementation,UserService) TUserService_ServiceImp=class(TActivableServiceImplementation,UserService)
protected
procedure Activate();override;
procedure Deactivate();override;
function CanBePooled() : Boolean;override;
Protected Protected
function GetList():TUserArray; function GetList():TUserArray;
procedure Add( procedure Add(
@ -33,6 +37,9 @@ Type
function Delete( function Delete(
Const AName : string Const AName : string
):boolean; ):boolean;
public
constructor Create();override;
destructor Destroy();override;
End; End;
const sDATA_FILE_NAME = 'sample.data'; const sDATA_FILE_NAME = 'sample.data';
@ -41,7 +48,7 @@ Type
procedure SaveDataToFile(const AFileName : string); procedure SaveDataToFile(const AFileName : string);
Implementation Implementation
uses Contnrs, std_cursors, rtti_filters, imp_helper; uses Contnrs, std_cursors, rtti_filters, imp_helper, config_objects;
var var
FUserList : TObjectList = nil; FUserList : TObjectList = nil;
@ -67,9 +74,6 @@ end;
{ TUserService_ServiceImp implementation } { TUserService_ServiceImp implementation }
function TUserService_ServiceImp.GetList():TUserArray; function TUserService_ServiceImp.GetList():TUserArray;
var
locCrs : IObjectCursor;
srcUsr, locUsr : TUser;
Begin Begin
Result := TUserArray.Create(); Result := TUserArray.Create();
try try
@ -135,7 +139,7 @@ End;
procedure RegisterUserServiceImplementationFactory(); procedure RegisterUserServiceImplementationFactory();
Begin Begin
GetServiceImplementationRegistry().Register('UserService',TImplementationFactory.Create(TUserService_ServiceImp) as IServiceImplementationFactory); GetServiceImplementationRegistry().Register('UserService',TImplementationFactory.Create(TUserService_ServiceImp,wst_GetServiceConfigText('UserService')) as IServiceImplementationFactory);
End; End;
procedure FillSampleData(); procedure FillSampleData();
@ -186,6 +190,35 @@ begin
end; end;
end; end;
constructor TUserService_ServiceImp.Create;
begin
inherited;
WriteLn('TUserService_ServiceImp.Create();');
end;
procedure TUserService_ServiceImp.Activate;
begin
inherited;
WriteLn(Format('TUserService_ServiceImp.Activate(), Self = %p',[Pointer(Self)]));
end;
function TUserService_ServiceImp.CanBePooled: Boolean;
begin
Result := True;
end;
procedure TUserService_ServiceImp.Deactivate;
begin
WriteLn(Format('TUserService_ServiceImp.Deactivate(), Self = %p',[Pointer(Self)]));
inherited;
end;
destructor TUserService_ServiceImp.Destroy;
begin
WriteLn('TUserService_ServiceImp.Destroy();');
inherited;
end;
initialization initialization
FUserList := TObjectList.Create(True); FUserList := TObjectList.Create(True);
FUserCursor := TObjectListCursor.Create(FUserList); FUserCursor := TObjectListCursor.Create(FUserList);

View File

@ -21,6 +21,11 @@ uses
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc} {$INCLUDE wst_delphi.inc}
const
sSEPARATOR = '/';
sSERVICES_PREFIXE = 'services';
sWSDL = 'WSDL';
type type
TListnerNotifyMessage = procedure(Sender : TObject; const AMsg : string) of object; TListnerNotifyMessage = procedure(Sender : TObject; const AMsg : string) of object;
@ -36,8 +41,45 @@ type
property OnNotifyMessage : TListnerNotifyMessage read FOnNotifyMessage write FOnNotifyMessage; property OnNotifyMessage : TListnerNotifyMessage read FOnNotifyMessage write FOnNotifyMessage;
end; end;
function GenerateWSDLHtmlTable(): string;
implementation implementation
uses base_service_intf, metadata_repository,
metadata_service, metadata_service_binder, metadata_service_imp ;
function GenerateWSDLHtmlTable(): string;
var
r : IModuleMetadataMngr;
i : Integer;
begin
r := GetModuleMetadataMngr();
Result := '<html>' +
'<head>'+
'<title>'+
'The Web Services Toolkit generated Metadata table'+
'</title>'+
'<body>' +
'<p BGCOLOR="#DDEEFF"><FONT FACE="Arial" COLOR="#0000A0" SIZE="+2">The following repositories has available. Click on the link to view the corresponding WSDL.</FONT></p>'+
'<table width="100%">';
for i := 0 to Pred(r.GetCount()) do begin
Result := Result +
'<tr>' +
'<td align="left">' +
Format('<a href="%s">',[sSEPARATOR+sSERVICES_PREFIXE+sSEPARATOR+sWSDL+sSEPARATOR+r.GetRepositoryName(i)])+
r.GetRepositoryName(i) +
'</a>'+
'</td>' +
'</tr>';
end;
Result := Result +
'</table>'+
'</body>'+
'</head>'+
'</html>';
end;
{ TwstListener } { TwstListener }
@ -52,4 +94,9 @@ begin
FOnNotifyMessage(Self,AMsg); FOnNotifyMessage(Self,AMsg);
end; end;
initialization
RegisterStdTypes();
RegisterWSTMetadataServiceImplementationFactory();
Server_service_RegisterWSTMetadataServiceService();
end. end.

View File

@ -82,14 +82,16 @@ Type
); );
end; end;
IServerServiceRegistry = Interface IServerServiceRegistry = interface
['{83E7BBEB-A33D-4A3E-896D-D351C2819009}'] ['{83E7BBEB-A33D-4A3E-896D-D351C2819009}']
function Find(const AServiceName : string):IServerService; function Find(const AServiceName : string):IServerService;
procedure Register( procedure Register(
const AServiceName : string; const AServiceName : string;
AFactory : IItemFactory AFactory : IItemFactory
); );
End; function GetCount() : Integer;
function GetName(const AIndex : Integer) : string;
end;
IServiceImplementationFactory = interface(IItemFactoryEx) IServiceImplementationFactory = interface(IItemFactoryEx)
['{23A745BC-5F63-404D-BF53-55A6E64DE5BE}'] ['{23A745BC-5F63-404D-BF53-55A6E64DE5BE}']
@ -277,7 +279,9 @@ type
TServerServiceRegistry = class(TBaseFactoryRegistry,IServerServiceRegistry) TServerServiceRegistry = class(TBaseFactoryRegistry,IServerServiceRegistry)
protected protected
function Find(const AServiceName : string):IServerService; function Find(const AServiceName : string):IServerService;
End; function GetCount() : Integer;
function GetName(const AIndex : Integer) : string;
end;
{ TBaseFormatterRegistryItem } { TBaseFormatterRegistryItem }
@ -390,6 +394,16 @@ Type
property VerbHandler : TServiceVerbMethod Read FVerbHandler; property VerbHandler : TServiceVerbMethod Read FVerbHandler;
End; End;
function TServerServiceRegistry.GetCount: Integer;
begin
Result := Count;
end;
function TServerServiceRegistry.GetName(const AIndex: Integer): string;
begin
Result := Item[AIndex].Name;
end;
{ TServiceVerbItem } { TServiceVerbItem }
constructor TServiceVerbItem.Create( constructor TServiceVerbItem.Create(

View File

@ -177,7 +177,7 @@ begin
AssertNotNull('params pointer',po^.Params); AssertNotNull('params pointer',po^.Params);
pop := po^.Params; pop := po^.Params;
AssertEquals('param name','result',pop^.Name); AssertEquals('param name','result',pop^.Name);
AssertEquals('param type name','int',pop^.TypeName); AssertEquals('param type name','integer',pop^.TypeName);
AssertEquals('param modifier',ord(argOut),ord(pop^.Modifier)); AssertEquals('param modifier',ord(argOut),ord(pop^.Modifier));
rp^.NameSpace := 'http://test_name_space/'; rp^.NameSpace := 'http://test_name_space/';

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="13"/> <ActiveEditorIndexAtStart Value="14"/>
</General> </General>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
@ -141,16 +141,18 @@
<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="44" Y="180"/> <CursorPos X="48" Y="180"/>
<TopLine Value="153"/> <TopLine Value="158"/>
<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="19"/>
<TopLine Value="1"/> <TopLine Value="67"/>
<EditorIndex Value="10"/> <EditorIndex Value="10"/>
<UsageCount Value="202"/> <UsageCount Value="202"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -285,7 +287,7 @@
<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="144"/> <UsageCount Value="145"/>
</Unit30> </Unit30>
<Unit31> <Unit31>
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/> <Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
@ -328,7 +330,7 @@
<CursorPos X="26" Y="13"/> <CursorPos X="26" Y="13"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="7"/> <EditorIndex Value="7"/>
<UsageCount Value="82"/> <UsageCount Value="83"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit36> </Unit36>
<Unit37> <Unit37>
@ -454,7 +456,7 @@
<CursorPos X="8" Y="38"/> <CursorPos X="8" Y="38"/>
<TopLine Value="11"/> <TopLine Value="11"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<UsageCount Value="28"/> <UsageCount Value="29"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit54> </Unit54>
<Unit55> <Unit55>

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/> <ActiveEditorIndexAtStart Value="2"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -36,10 +36,10 @@
<Unit0> <Unit0>
<Filename Value="typ_lib_edtr.lpr"/> <Filename Value="typ_lib_edtr.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<CursorPos X="20" Y="5"/> <CursorPos X="1" Y="20"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
@ -49,10 +49,10 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="uwsttypelibraryedit.lrs"/> <ResourceFilename Value="uwsttypelibraryedit.lrs"/>
<UnitName Value="uwsttypelibraryedit"/> <UnitName Value="uwsttypelibraryedit"/>
<CursorPos X="19" Y="552"/> <CursorPos X="40" Y="546"/>
<TopLine Value="535"/> <TopLine Value="535"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
@ -60,7 +60,7 @@
<UnitName Value="parserdefs"/> <UnitName Value="parserdefs"/>
<CursorPos X="1" Y="35"/> <CursorPos X="1" Y="35"/>
<TopLine Value="22"/> <TopLine Value="22"/>
<UsageCount Value="43"/> <UsageCount Value="42"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/> <Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
@ -68,7 +68,7 @@
<CursorPos X="38" Y="805"/> <CursorPos X="38" Y="805"/>
<TopLine Value="792"/> <TopLine Value="792"/>
<EditorIndex Value="9"/> <EditorIndex Value="9"/>
<UsageCount Value="80"/> <UsageCount Value="83"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="65" Y="750" ID="2"/> <Item0 X="65" Y="750" ID="2"/>
</Bookmarks> </Bookmarks>
@ -81,7 +81,7 @@
<CursorPos X="45" Y="707"/> <CursorPos X="45" Y="707"/>
<TopLine Value="684"/> <TopLine Value="684"/>
<EditorIndex Value="13"/> <EditorIndex Value="13"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="49" Y="446" ID="1"/> <Item0 X="49" Y="446" ID="1"/>
</Bookmarks> </Bookmarks>
@ -96,7 +96,7 @@
<UnitName Value="uabout"/> <UnitName Value="uabout"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="ufenumedit.pas"/> <Filename Value="ufenumedit.pas"/>
@ -108,7 +108,7 @@
<CursorPos X="27" Y="78"/> <CursorPos X="27" Y="78"/>
<TopLine Value="58"/> <TopLine Value="58"/>
<EditorIndex Value="10"/> <EditorIndex Value="10"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
@ -118,7 +118,7 @@
<CursorPos X="1" Y="241"/> <CursorPos X="1" Y="241"/>
<TopLine Value="234"/> <TopLine Value="234"/>
<EditorIndex Value="8"/> <EditorIndex Value="8"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
@ -127,7 +127,7 @@
<UnitName Value="source_utils"/> <UnitName Value="source_utils"/>
<CursorPos X="18" Y="20"/> <CursorPos X="18" Y="20"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
<Filename Value="edit_helper.pas"/> <Filename Value="edit_helper.pas"/>
@ -136,7 +136,7 @@
<CursorPos X="15" Y="491"/> <CursorPos X="15" Y="491"/>
<TopLine Value="484"/> <TopLine Value="484"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit9> </Unit9>
<Unit10> <Unit10>
@ -149,7 +149,7 @@
<CursorPos X="1" Y="307"/> <CursorPos X="1" Y="307"/>
<TopLine Value="294"/> <TopLine Value="294"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit10> </Unit10>
<Unit11> <Unit11>
@ -161,7 +161,7 @@
<CursorPos X="33" Y="106"/> <CursorPos X="33" Y="106"/>
<TopLine Value="92"/> <TopLine Value="92"/>
<EditorIndex Value="5"/> <EditorIndex Value="5"/>
<UsageCount Value="191"/> <UsageCount Value="198"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
@ -169,7 +169,7 @@
<UnitName Value="ComCtrls"/> <UnitName Value="ComCtrls"/>
<CursorPos X="15" Y="1781"/> <CursorPos X="15" Y="1781"/>
<TopLine Value="1768"/> <TopLine Value="1768"/>
<UsageCount Value="2"/> <UsageCount Value="1"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
<Filename Value="..\ws_helper\parserutils.pas"/> <Filename Value="..\ws_helper\parserutils.pas"/>
@ -177,83 +177,83 @@
<CursorPos X="17" Y="20"/> <CursorPos X="17" Y="20"/>
<TopLine Value="19"/> <TopLine Value="19"/>
<EditorIndex Value="4"/> <EditorIndex Value="4"/>
<UsageCount Value="67"/> <UsageCount Value="70"/>
<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="9"/> <UsageCount Value="8"/>
</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="9"/> <UsageCount Value="8"/>
</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="11"/> <UsageCount Value="10"/>
</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="2"/> <UsageCount Value="1"/>
</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="2"/> <UsageCount Value="1"/>
</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="2"/> <UsageCount Value="1"/>
</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="1"/> <UsageCount Value="0"/>
</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="1"/> <UsageCount Value="0"/>
</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="1"/> <UsageCount Value="0"/>
</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="1"/> <UsageCount Value="0"/>
</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="1"/> <UsageCount Value="0"/>
</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="1"/> <UsageCount Value="0"/>
</Unit25> </Unit25>
<Unit26> <Unit26>
<Filename Value="uinterfaceedit.pas"/> <Filename Value="uinterfaceedit.pas"/>
@ -263,13 +263,13 @@
<UnitName Value="uinterfaceedit"/> <UnitName Value="uinterfaceedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="155"/> <UsageCount Value="162"/>
</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="1"/> <UsageCount Value="0"/>
<SyntaxHighlighter Value="LFM"/> <SyntaxHighlighter Value="LFM"/>
</Unit27> </Unit27>
<Unit28> <Unit28>
@ -280,13 +280,13 @@
<UnitName Value="udm"/> <UnitName Value="udm"/>
<CursorPos X="15" Y="2"/> <CursorPos X="15" Y="2"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="150"/> <UsageCount Value="157"/>
</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="6"/> <UsageCount Value="5"/>
</Unit29> </Unit29>
<Unit30> <Unit30>
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/> <Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
@ -295,7 +295,7 @@
<CursorPos X="24" Y="13"/> <CursorPos X="24" Y="13"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="12"/> <EditorIndex Value="12"/>
<UsageCount Value="113"/> <UsageCount Value="120"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit30> </Unit30>
<Unit31> <Unit31>
@ -304,14 +304,14 @@
<UnitName Value="PParser"/> <UnitName Value="PParser"/>
<CursorPos X="4" Y="2133"/> <CursorPos X="4" Y="2133"/>
<TopLine Value="2127"/> <TopLine Value="2127"/>
<UsageCount Value="113"/> <UsageCount Value="120"/>
</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="37"/> <UsageCount Value="36"/>
</Unit32> </Unit32>
<Unit33> <Unit33>
<Filename Value="..\ws_helper\pastree.pp"/> <Filename Value="..\ws_helper\pastree.pp"/>
@ -319,40 +319,41 @@
<UnitName Value="PasTree"/> <UnitName Value="PasTree"/>
<CursorPos X="33" Y="332"/> <CursorPos X="33" Y="332"/>
<TopLine Value="315"/> <TopLine Value="315"/>
<UsageCount Value="113"/> <UsageCount Value="120"/>
</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="5"/> <UsageCount Value="4"/>
</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="6"/> <UsageCount Value="5"/>
</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="8"/> <UsageCount Value="7"/>
</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="27"/> <UsageCount Value="26"/>
</Unit37> </Unit37>
<Unit38> <Unit38>
<Filename Value="..\ws_helper\generator.pas"/> <Filename Value="..\ws_helper\generator.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="generator"/> <UnitName Value="generator"/>
<CursorPos X="2" Y="16"/> <CursorPos X="223" Y="1327"/>
<TopLine Value="1"/> <TopLine Value="1318"/>
<EditorIndex Value="7"/> <EditorIndex Value="7"/>
<UsageCount Value="30"/> <UsageCount Value="37"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit38> </Unit38>
<Unit39> <Unit39>
@ -360,49 +361,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="24"/> <UsageCount Value="23"/>
</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="22"/> <UsageCount Value="21"/>
</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="8"/> <UsageCount Value="7"/>
</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="11"/> <UsageCount Value="10"/>
</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="8"/> <UsageCount Value="7"/>
</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="12"/> <UsageCount Value="11"/>
</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="9"/> <UsageCount Value="8"/>
</Unit45> </Unit45>
<Unit46> <Unit46>
<Filename Value="..\ide\lazarus\wstimportdlg.pas"/> <Filename Value="..\ide\lazarus\wstimportdlg.pas"/>
@ -411,28 +412,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="12"/> <UsageCount Value="11"/>
</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="8"/> <UsageCount Value="7"/>
</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="8"/> <UsageCount Value="7"/>
</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="8"/> <UsageCount Value="7"/>
</Unit49> </Unit49>
<Unit50> <Unit50>
<Filename Value="uprocedit.pas"/> <Filename Value="uprocedit.pas"/>
@ -442,14 +443,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="69"/> <UsageCount Value="76"/>
</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="8"/> <UsageCount Value="7"/>
</Unit51> </Unit51>
<Unit52> <Unit52>
<Filename Value="common_gui_utils.pas"/> <Filename Value="common_gui_utils.pas"/>
@ -457,14 +458,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="67"/> <UsageCount Value="74"/>
</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="8"/> <UsageCount Value="7"/>
</Unit53> </Unit53>
<Unit54> <Unit54>
<Filename Value="uargedit.pas"/> <Filename Value="uargedit.pas"/>
@ -474,20 +475,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="60"/> <UsageCount Value="67"/>
</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="9"/> <UsageCount Value="8"/>
</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="9"/> <UsageCount Value="8"/>
<SyntaxHighlighter Value="LFM"/> <SyntaxHighlighter Value="LFM"/>
</Unit56> </Unit56>
<Unit57> <Unit57>
@ -498,14 +499,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="52"/> <UsageCount Value="59"/>
</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="9"/> <UsageCount Value="8"/>
</Unit58> </Unit58>
<Unit59> <Unit59>
<Filename Value="ubindingedit.pas"/> <Filename Value="ubindingedit.pas"/>
@ -515,38 +516,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="42"/> <UsageCount Value="49"/>
</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="10"/> <UsageCount Value="9"/>
</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="10"/> <UsageCount Value="9"/>
</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="248"/>
<TopLine Value="226"/> <TopLine Value="226"/>
<UsageCount Value="10"/> <UsageCount Value="9"/>
</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="10"/> <UsageCount Value="9"/>
</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="10"/> <UsageCount Value="9"/>
</Unit64> </Unit64>
<Unit65> <Unit65>
<Filename Value="ufrmsaveoption.pas"/> <Filename Value="ufrmsaveoption.pas"/>
@ -556,21 +557,21 @@
<UnitName Value="ufrmsaveoption"/> <UnitName Value="ufrmsaveoption"/>
<CursorPos X="42" Y="64"/> <CursorPos X="42" Y="64"/>
<TopLine Value="42"/> <TopLine Value="42"/>
<UsageCount Value="38"/> <UsageCount Value="45"/>
</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="10"/> <UsageCount Value="9"/>
</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="10"/> <UsageCount Value="9"/>
</Unit67> </Unit67>
<Unit68> <Unit68>
<Filename Value="..\wst_rtti_filter\cursor_intf.pas"/> <Filename Value="..\wst_rtti_filter\cursor_intf.pas"/>
@ -578,20 +579,20 @@
<CursorPos X="2" Y="90"/> <CursorPos X="2" Y="90"/>
<TopLine Value="71"/> <TopLine Value="71"/>
<EditorIndex Value="11"/> <EditorIndex Value="11"/>
<UsageCount Value="13"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <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="10"/> <UsageCount Value="9"/>
</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="10"/> <UsageCount Value="9"/>
</Unit70> </Unit70>
<Unit71> <Unit71>
<Filename Value="ufarrayedit.pas"/> <Filename Value="ufarrayedit.pas"/>
@ -602,15 +603,43 @@
<CursorPos X="67" Y="117"/> <CursorPos X="67" Y="117"/>
<TopLine Value="95"/> <TopLine Value="95"/>
<EditorIndex Value="6"/> <EditorIndex Value="6"/>
<UsageCount Value="22"/> <UsageCount Value="29"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit71> </Unit71>
</Units> </Units>
<JumpHistory Count="1" HistoryIndex="0"> <JumpHistory Count="8" HistoryIndex="7">
<Position1> <Position1>
<Filename Value="typ_lib_edtr.lpr"/> <Filename Value="..\ws_helper\generator.pas"/>
<Caret Line="17" Column="43" TopLine="1"/> <Caret Line="699" Column="64" TopLine="684"/>
</Position1> </Position1>
<Position2>
<Filename Value="..\ws_helper\generator.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position2>
<Position3>
<Filename Value="..\ws_helper\generator.pas"/>
<Caret Line="692" Column="27" TopLine="684"/>
</Position3>
<Position4>
<Filename Value="..\ws_helper\generator.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position4>
<Position5>
<Filename Value="typ_lib_edtr.lpr"/>
<Caret Line="5" Column="20" TopLine="1"/>
</Position5>
<Position6>
<Filename Value="typ_lib_edtr.lpr"/>
<Caret Line="15" Column="14" TopLine="1"/>
</Position6>
<Position7>
<Filename Value="typ_lib_edtr.lpr"/>
<Caret Line="14" Column="68" TopLine="1"/>
</Position7>
<Position8>
<Filename Value="typ_lib_edtr.lpr"/>
<Caret Line="20" Column="1" TopLine="1"/>
</Position8>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -11,7 +11,7 @@ uses
, uwsttypelibraryedit, view_helper, source_utils, uabout, ufEnumedit, , uwsttypelibraryedit, view_helper, source_utils, uabout, ufEnumedit,
edit_helper, ufclassedit, wsdl_generator, ufpropedit, uinterfaceedit, udm, edit_helper, ufclassedit, wsdl_generator, ufpropedit, uinterfaceedit, udm,
pascal_parser_intf, PasTree, PParser, uprocedit, common_gui_utils, uargedit, pascal_parser_intf, PasTree, PParser, uprocedit, common_gui_utils, uargedit,
umoduleedit, ubindingedit, ufrmsaveoption, ufarrayedit; umoduleedit, ubindingedit, ufrmsaveoption, ufarrayedit, generator;
begin begin
Application.Initialize; Application.Initialize;

View File

@ -688,13 +688,13 @@ begin
NewLine(); NewLine();
WriteLn('initialization'); WriteLn('initialization');
NewLine(); NewLine();
s := Format('Register_%s_NameSpace',[SymbolTable.CurrentModule.Name]); WriteLn(' {$i %s.%s}',[SymbolTable.CurrentModule.Name,sWST_EXTENSION]);
NewLine();
s := Format('Register_%s_ServiceMetadata',[SymbolTable.CurrentModule.Name]);
WriteLn(' {$IF DECLARED(%s)}',[s]); WriteLn(' {$IF DECLARED(%s)}',[s]);
WriteLn(' %s();',[s]); WriteLn(' %s();',[s]);
WriteLn(' {$IFEND}'); WriteLn(' {$IFEND}');
NewLine(); NewLine();
WriteLn(' {$i %s.%s}',[SymbolTable.CurrentModule.Name,sWST_EXTENSION]);
NewLine();
WriteLn('End.'); WriteLn('End.');
end; end;
@ -1142,6 +1142,7 @@ begin
SetCurrentStream(FImpStream); SetCurrentStream(FImpStream);
WriteLn(''); WriteLn('');
WriteLn('Implementation'); WriteLn('Implementation');
WriteLn('uses config_objects;');
end; end;
procedure TImplementationGenerator.GenerateUnitImplementationFooter(); procedure TImplementationGenerator.GenerateUnitImplementationFooter();
@ -1323,7 +1324,7 @@ var
WriteLn('procedure Register%sImplementationFactory();',[strBuff]); WriteLn('procedure Register%sImplementationFactory();',[strBuff]);
WriteLn('Begin'); WriteLn('Begin');
IncIndent(); IncIndent();
WriteLn('GetServiceImplementationRegistry().Register(%s,TImplementationFactory.Create(%s) as IServiceImplementationFactory);',[QuotedStr(AIntf.Name),strClassName]); WriteLn('GetServiceImplementationRegistry().Register(%s,TImplementationFactory.Create(%s,wst_GetServiceConfigText(%s)) as IServiceImplementationFactory);',[QuotedStr(AIntf.Name),strClassName,QuotedStr(AIntf.Name)]);
DecIndent(); DecIndent();
WriteLn('End;'); WriteLn('End;');
EndAutoIndent(); EndAutoIndent();

View File

@ -2,7 +2,7 @@
type type
QWord = type Int64; QWord = type Int64;
DWORD = LongWord; DWORD = LongWord;
PtrInt = Cardinal; PtrInt = Integer;
PByteArray = ^ByteArray; PByteArray = ^ByteArray;
ByteArray = array[0..$effffff] of Byte; ByteArray = array[0..$effffff] of Byte;
PtrUInt = Cardinal; PtrUInt = Cardinal;

View File

@ -97,7 +97,6 @@ end;
function NodeToBuffer(ANode : TDOMNode):string ; function NodeToBuffer(ANode : TDOMNode):string ;
var var
locStream : TStringStream;
locNodeEx : IDOMNodeEx; locNodeEx : IDOMNodeEx;
begin begin
if Supports(ANode,IDOMNodeEx,locNodeEx) then begin if Supports(ANode,IDOMNodeEx,locNodeEx) then begin