- Type Library Editor : array support

- better Delphi support
- server listeners refactored to ease service creation

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@214 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2007-07-14 23:17:03 +00:00
parent 5ce9841611
commit 7032cef6b7
39 changed files with 1136 additions and 615 deletions

View File

@ -24,6 +24,7 @@ uses
const const
sROOT = 'ROOT'; sROOT = 'ROOT';
sSCOPE_INNER_NAME = 'INNER_VAL'; sSCOPE_INNER_NAME = 'INNER_VAL';
sFORMAT = 'format';
{$IFDEF wst_binary_header} {$IFDEF wst_binary_header}
sHEADER = 'HEADER'; sHEADER = 'HEADER';
{$ENDIF} {$ENDIF}

View File

@ -37,6 +37,7 @@ const
sARRAY_TYPE = 'arrayType'; sARRAY_TYPE = 'arrayType';
sCONTENT_TYPE = 'contenttype'; sCONTENT_TYPE = 'contenttype';
sFORMAT = 'format';
sSOAP_CONTENT_TYPE = 'text/xml'; sSOAP_CONTENT_TYPE = 'text/xml';
sHEADER = 'Header'; sHEADER = 'Header';

View File

@ -28,6 +28,7 @@ const
sCONTENT_TYPE = 'contenttype'; sCONTENT_TYPE = 'contenttype';
sFORMAT = 'format';
sXMLRPC_CONTENT_TYPE = 'text/xml'; sXMLRPC_CONTENT_TYPE = 'text/xml';
sDATA = 'data'; sDATA = 'data';

View File

@ -167,13 +167,19 @@ procedure TBinaryCallMaker.MakeCall(
); );
Var Var
rqt, rsps : TMemoryStream; rqt, rsps : TMemoryStream;
propMngr : IPropertyManager;
begin begin
Assert(Assigned(ASerializer)); Assert(Assigned(ASerializer));
Assert(Assigned(ATransport)); Assert(Assigned(ATransport));
ATransport.GetPropertyManager().SetProperty( propMngr := ATransport.GetPropertyManager();
propMngr.SetProperty(
sCONTENT_TYPE, sCONTENT_TYPE,
sBINARY_CONTENT sBINARY_CONTENT
); );
propMngr.SetProperty(
sFORMAT,
sPROTOCOL_NAME
);
rsps := Nil; rsps := Nil;
rqt := TMemoryStream.Create(); rqt := TMemoryStream.Create();
Try Try

View File

@ -13,7 +13,7 @@
{$INCLUDE wst_global.inc} {$INCLUDE wst_global.inc}
unit ics_http_protocol; unit ics_http_protocol;
{$DEFINE WST_DBG} //{$DEFINE WST_DBG}
interface interface
@ -50,6 +50,7 @@ Type
procedure SetProxyServer(const AValue: string); procedure SetProxyServer(const AValue: string);
procedure SetProxyUsername(const AValue: string); procedure SetProxyUsername(const AValue: string);
private private
FFormat : string;
procedure HttpBeforeHeaderSendHandler( procedure HttpBeforeHeaderSendHandler(
Sender : TObject; Sender : TObject;
const Method : String; const Method : String;
@ -68,6 +69,7 @@ Type
property ProxyUsername : string read GetProxyUsername write SetProxyUsername; property ProxyUsername : string read GetProxyUsername write SetProxyUsername;
property ProxyPassword : string read GetProxyPassword write SetProxyPassword; property ProxyPassword : string read GetProxyPassword write SetProxyPassword;
property SoapAction : string read FSoapAction write FSoapAction; property SoapAction : string read FSoapAction write FSoapAction;
property Format : string read FFormat write FFormat;
End; End;
{$M+} {$M+}

View File

@ -48,6 +48,7 @@ Type
FDataBuffer : string; FDataBuffer : string;
FAllDataRead : Boolean; FAllDataRead : Boolean;
FBeginRead : Boolean; FBeginRead : Boolean;
FFormat : string;
FHasException : Boolean; FHasException : Boolean;
FExceptionMessage : string; FExceptionMessage : string;
procedure DataAvailable(Sender: TObject; Error: Word); procedure DataAvailable(Sender: TObject; Error: Word);
@ -62,6 +63,7 @@ Type
property ContentType : string Read FContentType Write FContentType; property ContentType : string Read FContentType Write FContentType;
property Address : string Read GetAddress Write SetAddress; property Address : string Read GetAddress Write SetAddress;
property Port : string Read GetPort Write SetPort; property Port : string Read GetPort Write SetPort;
property Format : string read FFormat write FFormat;
End; End;
{$M+} {$M+}
@ -173,6 +175,7 @@ begin
wrtr.WriteInt32S(0); wrtr.WriteInt32S(0);
wrtr.WriteStr(Target); wrtr.WriteStr(Target);
wrtr.WriteStr(ContentType); wrtr.WriteStr(ContentType);
wrtr.WriteStr(Self.Format);
SetLength(strBuff,ARequest.Size); SetLength(strBuff,ARequest.Size);
ARequest.Position := 0; ARequest.Position := 0;
ARequest.Read(strBuff[1],Length(strBuff)); ARequest.Read(strBuff[1],Length(strBuff));

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="3"/> <ActiveEditorIndexAtStart Value="2"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -29,7 +29,7 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item1> </Item1>
</RequiredPackages> </RequiredPackages>
<Units Count="39"> <Units Count="40">
<Unit0> <Unit0>
<Filename Value="test_import.lpr"/> <Filename Value="test_import.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
@ -44,8 +44,8 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="..\wstimportdlg.lrs"/> <ResourceFilename Value="..\wstimportdlg.lrs"/>
<UnitName Value="wstimportdlg"/> <UnitName Value="wstimportdlg"/>
<CursorPos X="22" Y="256"/> <CursorPos X="1" Y="5"/>
<TopLine Value="233"/> <TopLine Value="1"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="73"/> <UsageCount Value="73"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -76,7 +76,7 @@
<UnitName Value="pascal_parser_intf"/> <UnitName Value="pascal_parser_intf"/>
<CursorPos X="1" Y="390"/> <CursorPos X="1" Y="390"/>
<TopLine Value="375"/> <TopLine Value="375"/>
<EditorIndex Value="7"/> <EditorIndex Value="8"/>
<UsageCount Value="35"/> <UsageCount Value="35"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit5> </Unit5>
@ -92,7 +92,7 @@
<UnitName Value="wsdl2pas_imp"/> <UnitName Value="wsdl2pas_imp"/>
<CursorPos X="18" Y="747"/> <CursorPos X="18" Y="747"/>
<TopLine Value="736"/> <TopLine Value="736"/>
<EditorIndex Value="6"/> <EditorIndex Value="7"/>
<UsageCount Value="36"/> <UsageCount Value="36"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit7> </Unit7>
@ -108,7 +108,7 @@
<UnitName Value="source_utils"/> <UnitName Value="source_utils"/>
<CursorPos X="14" Y="311"/> <CursorPos X="14" Y="311"/>
<TopLine Value="291"/> <TopLine Value="291"/>
<EditorIndex Value="8"/> <EditorIndex Value="9"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit9> </Unit9>
@ -117,7 +117,7 @@
<UnitName Value="generator"/> <UnitName Value="generator"/>
<CursorPos X="31" Y="1645"/> <CursorPos X="31" Y="1645"/>
<TopLine Value="1633"/> <TopLine Value="1633"/>
<EditorIndex Value="5"/> <EditorIndex Value="6"/>
<UsageCount Value="36"/> <UsageCount Value="36"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit10> </Unit10>
@ -126,7 +126,7 @@
<UnitName Value="metadata_generator"/> <UnitName Value="metadata_generator"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="4"/> <EditorIndex Value="5"/>
<UsageCount Value="36"/> <UsageCount Value="36"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit11> </Unit11>
@ -149,9 +149,11 @@
<Unit14> <Unit14>
<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="99"/> <CursorPos X="2" Y="13"/>
<TopLine Value="77"/> <TopLine Value="1"/>
<EditorIndex Value="4"/>
<UsageCount Value="16"/> <UsageCount Value="16"/>
<Loaded Value="True"/>
</Unit14> </Unit14>
<Unit15> <Unit15>
<Filename Value="..\..\..\wst_rtti_filter\dom_cursors.pas"/> <Filename Value="..\..\..\wst_rtti_filter\dom_cursors.pas"/>
@ -199,7 +201,7 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="uform2.lrs"/> <ResourceFilename Value="uform2.lrs"/>
<UnitName Value="uform2"/> <UnitName Value="uform2"/>
<CursorPos X="5" Y="44"/> <CursorPos X="45" Y="28"/>
<TopLine Value="19"/> <TopLine Value="19"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<UsageCount Value="73"/> <UsageCount Value="73"/>
@ -271,7 +273,7 @@
<Unit32> <Unit32>
<Filename Value="..\wst_register.pas"/> <Filename Value="..\wst_register.pas"/>
<UnitName Value="wst_register"/> <UnitName Value="wst_register"/>
<CursorPos X="12" Y="8"/> <CursorPos X="14" Y="6"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="30"/> <UsageCount Value="30"/>
@ -315,13 +317,42 @@
<TopLine Value="465"/> <TopLine Value="465"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit38> </Unit38>
<Unit39>
<Filename Value="..\..\..\service_intf.pas"/>
<UnitName Value="service_intf"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit39>
</Units> </Units>
<JumpHistory Count="0" HistoryIndex="-1"/> <JumpHistory Count="5" HistoryIndex="4">
<Position1>
<Filename Value="..\..\..\wst_rtti_filter\cursor_intf.pas"/>
<Caret Line="99" Column="1" TopLine="77"/>
</Position1>
<Position2>
<Filename Value="..\..\..\ws_helper\wst_resources_utils.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position2>
<Position3>
<Filename Value="..\wstimportdlg.pas"/>
<Caret Line="256" Column="22" TopLine="233"/>
</Position3>
<Position4>
<Filename Value="..\wstimportdlg.pas"/>
<Caret Line="12" Column="31" TopLine="54"/>
</Position4>
<Position5>
<Filename Value="..\..\..\ws_helper\wst_resources_utils.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position5>
</JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="..\..\..\"/>
<OtherUnitFiles Value="..\;..\..\..\;..\..\..\ws_helper\;..\..\..\wst_rtti_filter\"/> <OtherUnitFiles Value="..\;..\..\..\;..\..\..\ws_helper\;..\..\..\wst_rtti_filter\"/>
<UnitOutputDirectory Value="obj"/> <UnitOutputDirectory Value="obj"/>
</SearchPaths> </SearchPaths>

View File

@ -46,12 +46,12 @@ object formImport: TformImport
Left = 9 Left = 9
Height = 23 Height = 23
Top = 31 Top = 31
Width = 408 Width = 404
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
TabOrder = 0 TabOrder = 0
end end
object Button2: TButton object Button2: TButton
Left = 435 Left = 431
Height = 25 Height = 25
Top = 31 Top = 31
Width = 40 Width = 40
@ -64,12 +64,12 @@ object formImport: TformImport
Left = 9 Left = 9
Height = 23 Height = 23
Top = 88 Top = 88
Width = 408 Width = 404
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
TabOrder = 2 TabOrder = 2
end end
object Button3: TButton object Button3: TButton
Left = 435 Left = 431
Height = 25 Height = 25
Top = 88 Top = 88
Width = 40 Width = 40

View File

@ -14,13 +14,13 @@ LazarusResources.Add('TformImport','FORMDATA',[
+'on File ( WSDL )'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#9#6'H' +'on File ( WSDL )'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#9#6'H'
+'eight'#2#14#3'Top'#2'E'#5'Width'#2'Q'#7'Caption'#6#16'Output directory'#11 +'eight'#2#14#3'Top'#2'E'#5'Width'#2'Q'#7'Caption'#6#16'Output directory'#11
+'ParentColor'#8#0#0#5'TEdit'#12'edtInputFile'#4'Left'#2#9#6'Height'#2#23#3'T' +'ParentColor'#8#0#0#5'TEdit'#12'edtInputFile'#4'Left'#2#9#6'Height'#2#23#3'T'
+'op'#2#31#5'Width'#3#152#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'T' +'op'#2#31#5'Width'#3#148#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'T'
+'abOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#179#1#6'Height'#2#25#3'Top' +'abOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#175#1#6'Height'#2#25#3'Top'
+#2#31#5'Width'#2'('#6'Action'#7#11'actOpenFile'#7'Anchors'#11#5'akTop'#7'akR' +#2#31#5'Width'#2'('#6'Action'#7#11'actOpenFile'#7'Anchors'#11#5'akTop'#7'akR'
+'ight'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#1#0#0#5'TEdit'#12'e' +'ight'#0#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2#1#0#0#5'TEdit'#12'e'
+'dtOutputDir'#4'Left'#2#9#6'Height'#2#23#3'Top'#2'X'#5'Width'#3#152#1#7'Anch' +'dtOutputDir'#4'Left'#2#9#6'Height'#2#23#3'Top'#2'X'#5'Width'#3#148#1#7'Anch'
+'ors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#2#0#0#7'TButton'#7'Bu' +'ors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#2#0#0#7'TButton'#7'Bu'
+'tton3'#4'Left'#3#179#1#6'Height'#2#25#3'Top'#2'X'#5'Width'#2'('#6'Action'#7 +'tton3'#4'Left'#3#175#1#6'Height'#2#25#3'Top'#2'X'#5'Width'#2'('#6'Action'#7
+#10'actOpenDir'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBo' +#10'actOpenDir'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBo'
+'rder'#2#4#8'TabOrder'#2#3#0#0#9'TCheckBox'#15'edtAddToProject'#4'Left'#2#9#6 +'rder'#2#4#8'TabOrder'#2#3#0#0#9'TCheckBox'#15'edtAddToProject'#4'Left'#2#9#6
+'Height'#2#13#3'Top'#3#128#0#5'Width'#3#176#0#7'Caption'#6'"Add the generate' +'Height'#2#13#3'Top'#3#128#0#5'Width'#3#176#0#7'Caption'#6'"Add the generate'

View File

@ -13,8 +13,6 @@
{$INCLUDE wst_global.inc} {$INCLUDE wst_global.inc}
unit indy_http_protocol; unit indy_http_protocol;
{$mode objfpc}{$H+}
//{$DEFINE WST_DBG} //{$DEFINE WST_DBG}
interface interface
@ -36,6 +34,7 @@ Type
{ THTTPTransport } { THTTPTransport }
THTTPTransport = class(TSimpleFactoryItem,ITransport) THTTPTransport = class(TSimpleFactoryItem,ITransport)
Private Private
FFormat : string;
FPropMngr : IPropertyManager; FPropMngr : IPropertyManager;
FConnection : TidHttp; FConnection : TidHttp;
FSoapAction: string; FSoapAction: string;
@ -63,6 +62,7 @@ Type
property ProxyUsername : string read GetProxyUsername write SetProxyUsername; property ProxyUsername : string read GetProxyUsername write SetProxyUsername;
property ProxyPassword : string read GetProxyPassword write SetProxyPassword; property ProxyPassword : string read GetProxyPassword write SetProxyPassword;
property SoapAction : string read FSoapAction write FSoapAction; property SoapAction : string read FSoapAction write FSoapAction;
property Format : string read FFormat write FFormat;
End; End;
{$M+} {$M+}

View File

@ -34,16 +34,17 @@ uses
{$IFDEF INDY_9} {$IFDEF INDY_9}
IdTCPServer, IdTCPServer,
{$ENDIF} {$ENDIF}
IdSocketHandle; IdSocketHandle,
server_listener;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc} {$INCLUDE wst_delphi.inc}
type type
{ TwstWebApplication } { TwstIndyHttpListener }
TwstWebApplication = class(TObject) TwstIndyHttpListener = class(TwstListener)
private private
FHTTPServerObject: TIdHTTPServer; FHTTPServerObject: TIdHTTPServer;
FRootAddress : string; FRootAddress : string;
@ -85,9 +86,9 @@ type
const AServerSoftware : string = 'Web Service Toolkit Application' const AServerSoftware : string = 'Web Service Toolkit Application'
); );
destructor Destroy(); override; destructor Destroy(); override;
procedure Display(const AMsg : string); class function GetDescription() : string;override;
procedure Start(); procedure Start();override;
procedure Stop(); procedure Stop();override;
end; end;
@ -190,9 +191,9 @@ begin
end; end;
{ TwstWebApplication } { TwstIndyHttpListener }
function TwstWebApplication.GenerateWSDLTable(): string; function TwstIndyHttpListener.GenerateWSDLTable(): string;
var var
r : IModuleMetadataMngr; r : IModuleMetadataMngr;
i : Integer; i : Integer;
@ -201,29 +202,31 @@ begin
Result := '<html>' + Result := '<html>' +
'<head>'+ '<head>'+
'<title>'+ '<title>'+
'The Web Service Toolkit generated Metadata table'+ 'The Web Services Toolkit generated Metadata table'+
'</title>'+ '</title>'+
'<body>' + '<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>'+ '<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%">' + '<table width="100%">';
'<tr>';
for i := 0 to Pred(r.GetCount()) do for i := 0 to Pred(r.GetCount()) do begin
Result := Result + '<td align="center">' + Result := Result +
'<tr>' +
'<td align="left">' +
Format('<a href="%s">',[sSEPARATOR+sSERVICES_PREFIXE+sSEPARATOR+sWSDL+sSEPARATOR+r.GetRepositoryName(i)])+ Format('<a href="%s">',[sSEPARATOR+sSERVICES_PREFIXE+sSEPARATOR+sWSDL+sSEPARATOR+r.GetRepositoryName(i)])+
r.GetRepositoryName(i) + r.GetRepositoryName(i) +
'</a>'+ '</a>'+
'</td>'; '</td>' +
'</tr>';
end;
Result := Result + Result := Result +
'</tr>'+
'</table>'+ '</table>'+
'</body>'+ '</body>'+
'</head>'+ '</head>'+
'</html>'; '</html>';
end; end;
procedure TwstWebApplication.ProcessWSDLRequest( procedure TwstIndyHttpListener.ProcessWSDLRequest(
{$IFDEF INDY_10} {$IFDEF INDY_10}
AContext : TIdContext; AContext : TIdContext;
{$ENDIF} {$ENDIF}
@ -251,7 +254,7 @@ begin
AResponseInfo.ContentType := 'text/html'; AResponseInfo.ContentType := 'text/html';
end; end;
procedure TwstWebApplication.ProcessServiceRequest( procedure TwstIndyHttpListener.ProcessServiceRequest(
{$IFDEF INDY_10} {$IFDEF INDY_10}
AContext : TIdContext; AContext : TIdContext;
{$ENDIF} {$ENDIF}
@ -289,13 +292,13 @@ begin
end; end;
except except
on e : Exception do begin on e : Exception do begin
Display('ProcessData()>> Exception = '+e.Message); NotifyMessage('ProcessData()>> Exception = '+e.Message);
raise; raise;
end; end;
end; end;
end; end;
procedure TwstWebApplication.Handler_CommandGet( procedure TwstIndyHttpListener.Handler_CommandGet(
{$IFDEF INDY_10} {$IFDEF INDY_10}
AContext : TIdContext; AContext : TIdContext;
{$ENDIF} {$ENDIF}
@ -306,20 +309,26 @@ procedure TwstWebApplication.Handler_CommandGet(
AResponseInfo : TIdHTTPResponseInfo AResponseInfo : TIdHTTPResponseInfo
); );
var var
locPath, locPathPart, s : string; {$IFDEF WST_DBG}
s : string;
{$ENDIF}
locPath, locPathPart : string;
j : SizeInt; j : SizeInt;
begin begin
{$IFDEF WST_DBG}
if Assigned(ARequestInfo.PostStream) and ( ARequestInfo.PostStream.Size > 0 ) then begin if Assigned(ARequestInfo.PostStream) and ( ARequestInfo.PostStream.Size > 0 ) then begin
j := ARequestInfo.PostStream.Size; j := ARequestInfo.PostStream.Size;
SetLength(s,j); SetLength(s,j);
ARequestInfo.PostStream.Read(s[1],j); ARequestInfo.PostStream.Read(s[1],j);
Display('----------- QUERY ----------------------'); NotifyMessage('----------- QUERY ----------------------');
Display(s); Display(s);
end; end;
{$ENDIF}
locPath := ARequestInfo.Document; locPath := ARequestInfo.Document;
locPathPart := ExtractNextPathElement(locPath); locPathPart := ExtractNextPathElement(locPath);
if AnsiSameText(sSERVICES_PREFIXE,locPathPart) then begin if AnsiSameText(sSERVICES_PREFIXE,locPathPart) then begin
ProcessServiceRequest({$IFDEF INDY_10}AContext,{$ENDIF}ARequestInfo,AResponseInfo,locPath); ProcessServiceRequest({$IFDEF INDY_10}AContext,{$ENDIF}ARequestInfo,AResponseInfo,locPath);
{$IFDEF WST_DBG}
if Assigned(AResponseInfo.ContentStream) and ( AResponseInfo.ContentStream.Size > 0 ) then begin if Assigned(AResponseInfo.ContentStream) and ( AResponseInfo.ContentStream.Size > 0 ) then begin
j := AResponseInfo.ContentStream.Size; j := AResponseInfo.ContentStream.Size;
SetLength(s,j); SetLength(s,j);
@ -328,13 +337,14 @@ begin
Display('--------- RESPONSE ------------------------'); Display('--------- RESPONSE ------------------------');
Display(s); Display(s);
end; end;
{$ENDIF}
Exit; Exit;
end; end;
ProcessWSDLRequest({$IFDEF INDY_10}AContext,{$ENDIF}ARequestInfo,AResponseInfo,locPath); ProcessWSDLRequest({$IFDEF INDY_10}AContext,{$ENDIF}ARequestInfo,AResponseInfo,locPath);
end; end;
constructor TwstWebApplication.Create( constructor TwstIndyHttpListener.Create(
const AServerIpAddress : string; const AServerIpAddress : string;
const AListningPort : Integer; const AListningPort : Integer;
const ADefaultClientPort : Integer; const ADefaultClientPort : Integer;
@ -355,34 +365,35 @@ begin
FHTTPServerObject.DefaultPort := ADefaultClientPort; FHTTPServerObject.DefaultPort := ADefaultClientPort;
FHTTPServerObject.ServerSoftware := AServerSoftware; FHTTPServerObject.ServerSoftware := AServerSoftware;
FHTTPServerObject.Active := True; //FHTTPServerObject.Active := True;
FHTTPServerObject.OnCommandGet := {$IFDEF FPC}@{$ENDIF}Handler_CommandGet; FHTTPServerObject.OnCommandGet := {$IFDEF FPC}@{$ENDIF}Handler_CommandGet;
end; end;
destructor TwstWebApplication.Destroy(); destructor TwstIndyHttpListener.Destroy();
begin begin
if ( FHTTPServerObject <> nil ) then
Stop();
FreeAndNil(FHTTPServerObject); FreeAndNil(FHTTPServerObject);
inherited Destroy(); inherited Destroy();
end; end;
procedure TwstWebApplication.Display(const AMsg: string); procedure TwstIndyHttpListener.Start();
begin
//WriteLn(AMsg);
end;
procedure TwstWebApplication.Start();
begin begin
if not FHTTPServerObject.Active then if not FHTTPServerObject.Active then
FHTTPServerObject.Active := True; FHTTPServerObject.Active := True;
end; end;
procedure TwstWebApplication.Stop(); procedure TwstIndyHttpListener.Stop();
begin begin
if FHTTPServerObject.Active then if FHTTPServerObject.Active then
FHTTPServerObject.Active := False; FHTTPServerObject.Active := False;
end; end;
class function TwstIndyHttpListener.GetDescription: string;
begin
Result := 'Indy HTTP Listener';
end;
initialization initialization
RegisterStdTypes(); RegisterStdTypes();
Server_service_RegisterBinaryFormat(); Server_service_RegisterBinaryFormat();

View File

@ -42,6 +42,7 @@ Type
FFileName: string; FFileName: string;
FTarget: string; FTarget: string;
private private
FFormat : string;
procedure SetFileName(const AValue: string); procedure SetFileName(const AValue: string);
procedure LoadModule(); procedure LoadModule();
public public
@ -53,6 +54,7 @@ Type
property ContentType : string read FContentType write FContentType; property ContentType : string read FContentType write FContentType;
property Target : string read FTarget write FTarget; property Target : string read FTarget write FTarget;
property FileName : string read FFileName write SetFileName; property FileName : string read FFileName write SetFileName;
property Format : string read FFormat write FFormat;
end; end;
{$M+} {$M+}
@ -207,6 +209,7 @@ begin
wrtr.WriteInt32S(0); wrtr.WriteInt32S(0);
wrtr.WriteStr(Target); wrtr.WriteStr(Target);
wrtr.WriteStr(ContentType); wrtr.WriteStr(ContentType);
wrtr.WriteStr(Self.Format);
SetLength(strBuff,ARequest.Size); SetLength(strBuff,ARequest.Size);
ARequest.Position := 0; ARequest.Position := 0;
ARequest.Read(strBuff[1],Length(strBuff)); ARequest.Read(strBuff[1],Length(strBuff));

View File

@ -54,7 +54,7 @@ function wstHandleRequest(
end; end;
Var Var
buff, trgt,ctntyp : string; buff, trgt,ctntyp, frmt : string;
rqst : IRequestBuffer; rqst : IRequestBuffer;
rdr : IDataStoreReader; rdr : IDataStoreReader;
inStream, bufStream : TMemoryStream; inStream, bufStream : TMemoryStream;
@ -84,6 +84,7 @@ begin
wstCheck(RET_FALSE,'Invalid buffer.'); wstCheck(RET_FALSE,'Invalid buffer.');
trgt := rdr.ReadStr(); trgt := rdr.ReadStr();
ctntyp := rdr.ReadStr(); ctntyp := rdr.ReadStr();
frmt := rdr.ReadStr();
buff := rdr.ReadStr(); buff := rdr.ReadStr();
rdr := nil; rdr := nil;
bufStream.Size := 0; bufStream.Size := 0;
@ -91,7 +92,7 @@ begin
inStream.Write(buff[1],Length(buff)); inStream.Write(buff[1],Length(buff));
SetLength(buff,0); SetLength(buff,0);
inStream.Position := 0; inStream.Position := 0;
rqst := TRequestBuffer.Create(trgt,ctntyp,inStream,bufStream,''); rqst := TRequestBuffer.Create(trgt,ctntyp,inStream,bufStream,frmt);
HandleServiceRequest(rqst); HandleServiceRequest(rqst);
bs := bufStream.Size; bs := bufStream.Size;
wstCheck(ARequestBuffer.SetSize(bs)); wstCheck(ARequestBuffer.SetSize(bs));

View File

@ -36,6 +36,7 @@ Type
Private Private
FAdress: string; FAdress: string;
FContentType: string; FContentType: string;
FFormat : string;
FPropMngr : IPropertyManager; FPropMngr : IPropertyManager;
Public Public
constructor Create();override; constructor Create();override;
@ -45,6 +46,7 @@ Type
Published Published
property ContentType : string Read FContentType Write FContentType; property ContentType : string Read FContentType Write FContentType;
property Adress : string Read FAdress Write FAdress; property Adress : string Read FAdress Write FAdress;
property Format : string read FFormat write FFormat;
End; End;
{$M+} {$M+}
@ -78,7 +80,7 @@ Var
i : Int64; i : Int64;
{$ENDIF WST_DBG} {$ENDIF WST_DBG}
begin begin
bffr := TRequestBuffer.Create(Adress,ContentType,ARequest,AResponse); bffr := TRequestBuffer.Create(Adress,ContentType,ARequest,AResponse,Format);
HandleServiceRequest(bffr); HandleServiceRequest(bffr);
{$IFDEF WST_DBG} {$IFDEF WST_DBG}
i := AResponse.Position; i := AResponse.Position;

View File

@ -5,28 +5,28 @@ program http_server;
uses uses
SysUtils, SysUtils,
Classes, Classes,
{$IFNDEF FPC}
ActiveX, ActiveX,
{$ENDIF}
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';
var var
AppObject : TwstWebApplication; AppObject : TwstIndyHttpListener;
begin begin
{$IFNDEF FPC} {$IFNDEF FPC}
CoInitialize(nil); CoInitialize(nil);
try try
{$ENDIF} {$ENDIF}
AppObject := TwstWebApplication.Create(); AppObject := TwstIndyHttpListener.Create();
try try
WriteLn('"Web Service Toolkit" HTTP Server sample listening at:'); WriteLn('"Web Service Toolkit" HTTP Server sample listening at:');
WriteLn(''); WriteLn('');
WriteLn('http://127.0.0.1:8000/'); WriteLn('http://127.0.0.1:8000/');
WriteLn(''); WriteLn('');
WriteLn('Press enter to quit.'); WriteLn('Press enter to quit.');
AppObject.Start();
ReadLn; ReadLn;
finally finally
FreeAndNil(AppObject); FreeAndNil(AppObject);

View File

@ -34,15 +34,15 @@
<PackageName Value="indylaz"/> <PackageName Value="indylaz"/>
</Item1> </Item1>
</RequiredPackages> </RequiredPackages>
<Units Count="48"> <Units Count="49">
<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="19" Y="10"/> <CursorPos X="33" Y="16"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="73"/> <UsageCount Value="81"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
@ -50,15 +50,15 @@
<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="36"/> <UsageCount Value="35"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="..\..\base_service_intf.pas"/> <Filename Value="..\..\base_service_intf.pas"/>
<UnitName Value="base_service_intf"/> <UnitName Value="base_service_intf"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="20"/> <EditorIndex Value="21"/>
<UsageCount Value="35"/> <UsageCount Value="39"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
@ -66,8 +66,8 @@
<UnitName Value="metadata_wsdl"/> <UnitName Value="metadata_wsdl"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="22"/> <EditorIndex Value="23"/>
<UsageCount Value="36"/> <UsageCount Value="40"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
@ -75,8 +75,8 @@
<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="8"/> <EditorIndex Value="9"/>
<UsageCount Value="20"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
@ -84,8 +84,8 @@
<UnitName Value="user_service_intf_imp"/> <UnitName Value="user_service_intf_imp"/>
<CursorPos X="22" Y="161"/> <CursorPos X="22" Y="161"/>
<TopLine Value="160"/> <TopLine Value="160"/>
<EditorIndex Value="16"/> <EditorIndex Value="17"/>
<UsageCount Value="33"/> <UsageCount Value="37"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
@ -93,8 +93,8 @@
<UnitName Value="user_service_intf_binder"/> <UnitName Value="user_service_intf_binder"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="4"/> <EditorIndex Value="5"/>
<UsageCount Value="19"/> <UsageCount Value="23"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
@ -102,8 +102,8 @@
<UnitName Value="user_service_intf"/> <UnitName Value="user_service_intf"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="17"/> <EditorIndex Value="18"/>
<UsageCount Value="33"/> <UsageCount Value="37"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
@ -111,8 +111,8 @@
<UnitName Value="metadata_repository"/> <UnitName Value="metadata_repository"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="25"/> <EditorIndex Value="26"/>
<UsageCount Value="36"/> <UsageCount Value="40"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
@ -120,8 +120,8 @@
<UnitName Value="semaphore"/> <UnitName Value="semaphore"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="21"/> <EditorIndex Value="22"/>
<UsageCount Value="20"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit9> </Unit9>
<Unit10> <Unit10>
@ -129,8 +129,8 @@
<UnitName Value="server_service_intf"/> <UnitName Value="server_service_intf"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="15"/> <EditorIndex Value="16"/>
<UsageCount Value="35"/> <UsageCount Value="39"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit10> </Unit10>
<Unit11> <Unit11>
@ -138,8 +138,8 @@
<UnitName Value="server_service_soap"/> <UnitName Value="server_service_soap"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="12"/> <EditorIndex Value="13"/>
<UsageCount Value="35"/> <UsageCount Value="39"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
@ -147,8 +147,8 @@
<UnitName Value="base_soap_formatter"/> <UnitName Value="base_soap_formatter"/>
<CursorPos X="17" Y="28"/> <CursorPos X="17" Y="28"/>
<TopLine Value="13"/> <TopLine Value="13"/>
<EditorIndex Value="14"/> <EditorIndex Value="15"/>
<UsageCount Value="35"/> <UsageCount Value="39"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
@ -156,8 +156,8 @@
<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="19"/> <EditorIndex Value="20"/>
<UsageCount Value="34"/> <UsageCount Value="38"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
@ -165,34 +165,34 @@
<UnitName Value="IdCustomHTTPServer"/> <UnitName Value="IdCustomHTTPServer"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="7"/> <UsageCount Value="6"/>
</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="7"/> <UsageCount Value="6"/>
</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="6"/> <UsageCount Value="5"/>
</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="7"/> <UsageCount Value="6"/>
</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="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="7"/> <EditorIndex Value="8"/>
<UsageCount Value="33"/> <UsageCount Value="37"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit18> </Unit18>
<Unit19> <Unit19>
@ -200,8 +200,8 @@
<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="13"/> <EditorIndex Value="14"/>
<UsageCount Value="31"/> <UsageCount Value="35"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit19> </Unit19>
<Unit20> <Unit20>
@ -209,8 +209,8 @@
<UnitName Value="base_xmlrpc_formatter"/> <UnitName Value="base_xmlrpc_formatter"/>
<CursorPos X="18" Y="21"/> <CursorPos X="18" Y="21"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="11"/> <EditorIndex Value="12"/>
<UsageCount Value="31"/> <UsageCount Value="35"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit20> </Unit20>
<Unit21> <Unit21>
@ -218,109 +218,109 @@
<UnitName Value="IdSocketHandle"/> <UnitName Value="IdSocketHandle"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="7"/> <UsageCount Value="6"/>
</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="8"/> <UsageCount Value="7"/>
</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="8"/> <UsageCount Value="7"/>
</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="24"/> <EditorIndex Value="25"/>
<UsageCount Value="17"/> <UsageCount Value="21"/>
<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="8"/> <UsageCount Value="7"/>
</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="9"/> <UsageCount Value="8"/>
</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="5"/> <EditorIndex Value="6"/>
<UsageCount Value="25"/> <UsageCount Value="29"/>
<Loaded Value="True"/> <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="15"/> <UsageCount Value="14"/>
</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="8"/> <UsageCount Value="7"/>
</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="3"/> <EditorIndex Value="4"/>
<UsageCount Value="24"/> <UsageCount Value="28"/>
<Loaded Value="True"/> <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="2"/> <EditorIndex Value="3"/>
<UsageCount Value="24"/> <UsageCount Value="28"/>
<Loaded Value="True"/> <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="8"/> <UsageCount Value="7"/>
</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="8"/> <UsageCount Value="7"/>
</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="1" Y="1"/>
<TopLine Value="322"/> <TopLine Value="322"/>
<UsageCount Value="8"/> <UsageCount Value="7"/>
</Unit34> </Unit34>
<Unit35> <Unit35>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\varianth.inc"/> <Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\varianth.inc"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="8"/> <UsageCount Value="7"/>
</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="21" Y="77"/>
<TopLine Value="5"/> <TopLine Value="5"/>
<EditorIndex Value="6"/> <EditorIndex Value="7"/>
<UsageCount Value="24"/> <UsageCount Value="28"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit36> </Unit36>
<Unit37> <Unit37>
@ -328,8 +328,8 @@
<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="9"/> <EditorIndex Value="10"/>
<UsageCount Value="20"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit37> </Unit37>
<Unit38> <Unit38>
@ -337,15 +337,15 @@
<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="10"/> <EditorIndex Value="11"/>
<UsageCount Value="20"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <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="9"/> <UsageCount Value="8"/>
<SyntaxHighlighter Value="None"/> <SyntaxHighlighter Value="None"/>
</Unit39> </Unit39>
<Unit40> <Unit40>
@ -353,15 +353,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="17"/> <UsageCount Value="16"/>
</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="46" Y="371"/>
<TopLine Value="366"/> <TopLine Value="366"/>
<EditorIndex Value="23"/> <EditorIndex Value="24"/>
<UsageCount Value="18"/> <UsageCount Value="22"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit41> </Unit41>
<Unit42> <Unit42>
@ -369,8 +369,8 @@
<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="18"/> <EditorIndex Value="19"/>
<UsageCount Value="17"/> <UsageCount Value="21"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit42> </Unit42>
<Unit43> <Unit43>
@ -378,7 +378,7 @@
<UnitName Value="IdCustomHTTPServer"/> <UnitName Value="IdCustomHTTPServer"/>
<CursorPos X="14" Y="252"/> <CursorPos X="14" Y="252"/>
<TopLine Value="239"/> <TopLine Value="239"/>
<UsageCount Value="11"/> <UsageCount Value="10"/>
</Unit43> </Unit43>
<Unit44> <Unit44>
<Filename Value="..\..\type_lib_edtr\uabout.pas"/> <Filename Value="..\..\type_lib_edtr\uabout.pas"/>
@ -388,7 +388,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="11"/> <UsageCount Value="10"/>
</Unit44> </Unit44>
<Unit45> <Unit45>
<Filename Value="..\..\type_lib_edtr\uwsttypelibraryedit.pas"/> <Filename Value="..\..\type_lib_edtr\uwsttypelibraryedit.pas"/>
@ -397,7 +397,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="10"/> <UsageCount Value="9"/>
</Unit45> </Unit45>
<Unit46> <Unit46>
<Filename Value="..\..\ide\lazarus\wstimportdlg.pas"/> <Filename Value="..\..\ide\lazarus\wstimportdlg.pas"/>
@ -407,43 +407,76 @@
<UnitName Value="wstimportdlg"/> <UnitName Value="wstimportdlg"/>
<CursorPos X="27" Y="7"/> <CursorPos X="27" Y="7"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="11"/> <UsageCount Value="10"/>
</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="20" Y="20"/> <CursorPos X="36" Y="205"/>
<TopLine Value="8"/> <TopLine Value="197"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="10"/> <UsageCount Value="14"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit47> </Unit47>
<Unit48>
<Filename Value="..\..\server_listener.pas"/>
<UnitName Value="server_listener"/>
<CursorPos X="21" Y="15"/>
<TopLine Value="12"/>
<EditorIndex Value="2"/>
<UsageCount Value="13"/>
<Loaded Value="True"/>
</Unit48>
</Units> </Units>
<JumpHistory Count="6" HistoryIndex="5"> <JumpHistory Count="12" HistoryIndex="11">
<Position1> <Position1>
<Filename Value="..\..\indy_http_server.pas"/> <Filename Value="http_server.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="16" Column="28" TopLine="1"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="..\..\indy_http_server.pas"/> <Filename Value="http_server.pas"/>
<Caret Line="160" Column="20" TopLine="147"/> <Caret Line="14" Column="19" TopLine="1"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="..\..\indy_http_server.pas"/> <Filename Value="http_server.pas"/>
<Caret Line="1" Column="1" TopLine="28"/> <Caret Line="23" Column="15" TopLine="1"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="..\..\indy_http_server.pas"/> <Filename Value="..\..\indy_http_server.pas"/>
<Caret Line="102" Column="11" TopLine="84"/> <Caret Line="47" Column="37" TopLine="28"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="..\..\indy_http_server.pas"/> <Filename Value="http_server.pas"/>
<Caret Line="359" Column="76" TopLine="346"/> <Caret Line="10" Column="72" TopLine="1"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="..\..\indy_http_server.pas"/> <Filename Value="http_server.pas"/>
<Caret Line="20" Column="5" TopLine="1"/> <Caret Line="23" Column="23" TopLine="2"/>
</Position6> </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> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
@ -466,8 +499,15 @@
<CodeGeneration> <CodeGeneration>
<Generate Value="Faster"/> <Generate Value="Faster"/>
</CodeGeneration> </CodeGeneration>
<Linking>
<Debugging>
<UseLineInfoUnit Value="False"/>
</Debugging>
<LinkSmart Value="True"/>
</Linking>
<Other> <Other>
<CustomOptions Value="-dINDY_10"/> <CustomOptions Value="-dINDY_10
"/>
<CompilerPath Value="$(CompPath)"/> <CompilerPath Value="$(CompPath)"/>
</Other> </Other>
</CompilerOptions> </CompilerOptions>

View File

@ -7,19 +7,20 @@ uses
cthreads, cthreads,
{$ENDIF}{$ENDIF} {$ENDIF}{$ENDIF}
Classes, SysUtils, Classes, SysUtils,
indy_http_server, metadata_service, logger_extension; indy_http_server, metadata_service, logger_extension, server_listener;
var var
AppObject : TwstWebApplication; AppObject : TwstListener;
begin begin
AppObject := TwstWebApplication.Create(); AppObject := TwstIndyHttpListener.Create();
try try
WriteLn('"Web Service Toolkit" HTTP Server sample listening at:'); WriteLn('"Web Service Toolkit" HTTP Server sample listening at:');
WriteLn(''); WriteLn('');
WriteLn('http://127.0.0.1:8000/'); WriteLn('http://127.0.0.1:8000/');
WriteLn(''); WriteLn('');
WriteLn('Press enter to quit.'); WriteLn('Press enter to quit.');
AppObject.Start();
ReadLn(); ReadLn();
finally finally
FreeAndNil(AppObject); FreeAndNil(AppObject);

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value=".\"/> <IconPath Value=".\"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="2"/> <ActiveEditorIndexAtStart Value="0"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -25,24 +25,24 @@
<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="7"> <Units Count="8">
<Unit0> <Unit0>
<Filename Value="lib_server.lpr"/> <Filename Value="lib_server.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="lib_server"/> <UnitName Value="lib_server"/>
<CursorPos X="17" Y="32"/> <CursorPos X="49" Y="35"/>
<TopLine Value="17"/> <TopLine Value="7"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="23"/> <UsageCount Value="27"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="..\..\library_server_intf.pas"/> <Filename Value="..\..\library_server_intf.pas"/>
<UnitName Value="library_server_intf"/> <UnitName Value="library_server_intf"/>
<CursorPos X="74" Y="92"/> <CursorPos X="32" Y="91"/>
<TopLine Value="78"/> <TopLine Value="1"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<UsageCount Value="12"/> <UsageCount Value="13"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
@ -50,8 +50,8 @@
<UnitName Value="user_service_intf_imp"/> <UnitName Value="user_service_intf_imp"/>
<CursorPos X="43" Y="179"/> <CursorPos X="43" Y="179"/>
<TopLine Value="157"/> <TopLine Value="157"/>
<EditorIndex Value="4"/> <EditorIndex Value="5"/>
<UsageCount Value="12"/> <UsageCount Value="13"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
@ -59,17 +59,17 @@
<UnitName Value="rtti_filters"/> <UnitName Value="rtti_filters"/>
<CursorPos X="53" Y="43"/> <CursorPos X="53" Y="43"/>
<TopLine Value="184"/> <TopLine Value="184"/>
<EditorIndex Value="6"/> <EditorIndex Value="7"/>
<UsageCount Value="12"/> <UsageCount Value="13"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="..\user_service_intf_binder.pas"/> <Filename Value="..\user_service_intf_binder.pas"/>
<UnitName Value="user_service_intf_binder"/> <UnitName Value="user_service_intf_binder"/>
<CursorPos X="54" Y="32"/> <CursorPos X="1" Y="1"/>
<TopLine Value="22"/> <TopLine Value="64"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="12"/> <UsageCount Value="13"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
@ -77,8 +77,8 @@
<UnitName Value="base_service_intf"/> <UnitName Value="base_service_intf"/>
<CursorPos X="52" Y="4125"/> <CursorPos X="52" Y="4125"/>
<TopLine Value="4118"/> <TopLine Value="4118"/>
<EditorIndex Value="5"/> <EditorIndex Value="6"/>
<UsageCount Value="12"/> <UsageCount Value="13"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
@ -86,29 +86,21 @@
<UnitName Value="semaphore"/> <UnitName Value="semaphore"/>
<CursorPos X="1" Y="96"/> <CursorPos X="1" Y="96"/>
<TopLine Value="72"/> <TopLine Value="72"/>
<EditorIndex Value="3"/> <EditorIndex Value="4"/>
<UsageCount Value="12"/> <UsageCount Value="13"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit6> </Unit6>
<Unit7>
<Filename Value="..\..\wst_rtti_filter\cursor_intf.pas"/>
<UnitName Value="cursor_intf"/>
<CursorPos X="2" Y="13"/>
<TopLine Value="34"/>
<EditorIndex Value="3"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit7>
</Units> </Units>
<JumpHistory Count="4" HistoryIndex="3"> <JumpHistory Count="0" HistoryIndex="-1"/>
<Position1>
<Filename Value="lib_server.lpr"/>
<Caret Line="32" Column="17" TopLine="17"/>
</Position1>
<Position2>
<Filename Value="..\..\semaphore.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position2>
<Position3>
<Filename Value="..\..\library_server_intf.pas"/>
<Caret Line="61" Column="3" TopLine="47"/>
</Position3>
<Position4>
<Filename Value="..\..\library_server_intf.pas"/>
<Caret Line="92" Column="71" TopLine="27"/>
</Position4>
</JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
@ -117,6 +109,7 @@
<Filename Value="lib_server.dll"/> <Filename Value="lib_server.dll"/>
</Target> </Target>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="..\..\"/>
<OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\"/> <OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\"/>
<UnitOutputDirectory Value="obj"/> <UnitOutputDirectory Value="obj"/>
</SearchPaths> </SearchPaths>
@ -124,6 +117,10 @@
<Generate Value="Faster"/> <Generate Value="Faster"/>
</CodeGeneration> </CodeGeneration>
<Linking> <Linking>
<Debugging>
<UseLineInfoUnit Value="False"/>
</Debugging>
<LinkSmart Value="True"/>
<Options> <Options>
<ExecutableType Value="Library"/> <ExecutableType Value="Library"/>
</Options> </Options>

View File

@ -19,7 +19,7 @@ uses
base_service_intf, base_service_intf,
server_service_intf, server_service_intf,
server_service_soap, server_binary_formatter, server_service_soap, server_binary_formatter, server_service_xmlrpc,
metadata_repository, metadata_wsdl, metadata_repository, metadata_wsdl,
metadata_service, metadata_service_binder, metadata_service_imp, metadata_service, metadata_service_binder, metadata_service_imp,
library_base_intf, library_server_intf, library_base_intf, library_server_intf,
@ -35,10 +35,12 @@ begin
RegisterStdTypes(); RegisterStdTypes();
Server_service_RegisterBinaryFormat(); Server_service_RegisterBinaryFormat();
Server_service_RegisterSoapFormat(); Server_service_RegisterSoapFormat();
Server_service_RegisterXmlRpcFormat();
RegisterUserServiceImplementationFactory(); RegisterUserServiceImplementationFactory();
Server_service_RegisterUserServiceService(); Server_service_RegisterUserServiceService();
Server_service_RegisterWSTMetadataServiceService();
RegisterWSTMetadataServiceImplementationFactory(); RegisterWSTMetadataServiceImplementationFactory();
Server_service_RegisterWSTMetadataServiceService();
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="10"/> <ActiveEditorIndexAtStart Value="12"/>
</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="47"> <Units Count="50">
<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="56"/> <CursorPos X="1" Y="53"/>
<TopLine Value="30"/> <TopLine Value="29"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="79"/> <UsageCount Value="83"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
@ -80,7 +80,7 @@
<CursorPos X="53" Y="177"/> <CursorPos X="53" Y="177"/>
<TopLine Value="157"/> <TopLine Value="157"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<UsageCount Value="27"/> <UsageCount Value="29"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
@ -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="9"/> <EditorIndex Value="10"/>
<UsageCount Value="79"/> <UsageCount Value="83"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
@ -127,7 +127,7 @@
<CursorPos X="15" Y="307"/> <CursorPos X="15" Y="307"/>
<TopLine Value="293"/> <TopLine Value="293"/>
<EditorIndex Value="5"/> <EditorIndex Value="5"/>
<UsageCount Value="29"/> <UsageCount Value="31"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="19" Y="545" ID="0"/> <Item0 X="19" Y="545" ID="0"/>
</Bookmarks> </Bookmarks>
@ -138,8 +138,8 @@
<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="12"/> <EditorIndex Value="14"/>
<UsageCount Value="34"/> <UsageCount Value="36"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
@ -154,8 +154,8 @@
<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="8"/> <EditorIndex Value="9"/>
<UsageCount Value="37"/> <UsageCount Value="39"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit15> </Unit15>
<Unit16> <Unit16>
@ -218,10 +218,10 @@
<Unit25> <Unit25>
<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="356"/> <CursorPos X="1" Y="1"/>
<TopLine Value="342"/> <TopLine Value="46"/>
<EditorIndex Value="7"/> <EditorIndex Value="8"/>
<UsageCount Value="15"/> <UsageCount Value="17"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit25> </Unit25>
<Unit26> <Unit26>
@ -233,10 +233,10 @@
<Unit27> <Unit27>
<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="1" Y="63"/> <CursorPos X="1" Y="56"/>
<TopLine Value="107"/> <TopLine Value="40"/>
<EditorIndex Value="10"/> <EditorIndex Value="11"/>
<UsageCount Value="39"/> <UsageCount Value="41"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit27> </Unit27>
<Unit28> <Unit28>
@ -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="48"/> <UsageCount Value="52"/>
</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,10 +297,10 @@
<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="1" Y="209"/> <CursorPos X="3" Y="325"/>
<TopLine Value="26"/> <TopLine Value="309"/>
<EditorIndex Value="6"/> <EditorIndex Value="6"/>
<UsageCount Value="17"/> <UsageCount Value="19"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit36> </Unit36>
<Unit37> <Unit37>
@ -315,7 +315,7 @@
<CursorPos X="4" Y="6"/> <CursorPos X="4" Y="6"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="14"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit38> </Unit38>
<Unit39> <Unit39>
@ -335,8 +335,8 @@
<UnitName Value="blcksock"/> <UnitName Value="blcksock"/>
<CursorPos X="1" Y="2407"/> <CursorPos X="1" Y="2407"/>
<TopLine Value="2393"/> <TopLine Value="2393"/>
<EditorIndex Value="11"/> <EditorIndex Value="13"/>
<UsageCount Value="11"/> <UsageCount Value="13"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit41> </Unit41>
<Unit42> <Unit42>
@ -346,7 +346,7 @@
<CursorPos X="1" Y="83"/> <CursorPos X="1" Y="83"/>
<TopLine Value="69"/> <TopLine Value="69"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<UsageCount Value="30"/> <UsageCount Value="34"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit42> </Unit42>
<Unit43> <Unit43>
@ -355,7 +355,7 @@
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="4"/> <EditorIndex Value="4"/>
<UsageCount Value="14"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit43> </Unit43>
<Unit44> <Unit44>
@ -377,127 +377,151 @@
<TopLine Value="469"/> <TopLine Value="469"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit46> </Unit46>
<Unit47>
<Filename Value="..\..\server_listener.pas"/>
<UnitName Value="server_listener"/>
<CursorPos X="3" Y="28"/>
<TopLine Value="14"/>
<EditorIndex Value="7"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit47>
<Unit48>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
<CursorPos X="23" Y="147"/>
<TopLine Value="133"/>
<UsageCount Value="10"/>
</Unit48>
<Unit49>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\synapse\blcksock.pas"/>
<UnitName Value="blcksock"/>
<CursorPos X="1" Y="2407"/>
<TopLine Value="2393"/>
<EditorIndex Value="12"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit49>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="182" Column="36" TopLine="168"/> <Caret Line="302" Column="5" TopLine="270"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="191" Column="32" TopLine="176"/> <Caret Line="308" Column="5" TopLine="276"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="tcp_server.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="42" Column="5" TopLine="14"/> <Caret Line="287" Column="54" TopLine="267"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="88" Column="1" TopLine="74"/> <Caret Line="75" Column="1" TopLine="62"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="1198" Column="1" TopLine="1184"/> <Caret Line="79" Column="1" TopLine="76"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="88" Column="1" TopLine="74"/> <Caret Line="46" Column="17" TopLine="32"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="89" Column="1" TopLine="75"/> <Caret Line="205" Column="104" TopLine="191"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="93" Column="62" TopLine="76"/> <Caret Line="254" Column="35" TopLine="240"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="92" Column="26" TopLine="74"/> <Caret Line="61" Column="24" TopLine="47"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="111" Column="1" TopLine="97"/> <Caret Line="226" Column="19" TopLine="221"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="112" Column="1" TopLine="98"/> <Caret Line="256" Column="56" TopLine="242"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="113" Column="1" TopLine="99"/> <Caret Line="263" Column="1" TopLine="247"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="89" Column="1" TopLine="75"/> <Caret Line="30" Column="17" TopLine="15"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="91" Column="1" TopLine="77"/> <Caret Line="39" Column="1" TopLine="25"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="92" Column="1" TopLine="78"/> <Caret Line="51" Column="11" TopLine="28"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="93" Column="1" TopLine="79"/> <Caret Line="30" Column="26" TopLine="28"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="76" Column="19" TopLine="62"/> <Caret Line="52" Column="31" TopLine="28"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="54" Column="1" TopLine="42"/> <Caret Line="300" Column="1" TopLine="266"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="83" Column="47" TopLine="62"/> <Caret Line="81" Column="41" TopLine="63"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="56" Column="1" TopLine="40"/> <Caret Line="52" Column="40" TopLine="28"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="76" Column="1" TopLine="62"/> <Caret Line="81" Column="50" TopLine="65"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="54" Column="1" TopLine="40"/> <Caret Line="52" Column="40" TopLine="28"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="56" Column="1" TopLine="42"/> <Caret Line="53" Column="16" TopLine="29"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="54" Column="1" TopLine="40"/> <Caret Line="315" Column="5" TopLine="283"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="63" Column="1" TopLine="49"/> <Caret Line="37" Column="19" TopLine="29"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="..\..\..\..\..\..\lazarus_23_215\others_package\synapse\blcksock.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="2407" Column="1" TopLine="2393"/> <Caret Line="52" Column="21" TopLine="29"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\..\synapse_tcp_server.pas"/>
<Caret Line="64" Column="52" TopLine="40"/> <Caret Line="267" Column="24" TopLine="247"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="56" Column="1" TopLine="42"/> <Caret Line="52" Column="27" TopLine="29"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="tcp_server.pas"/>
<Caret Line="63" Column="1" TopLine="49"/> <Caret Line="53" Column="1" TopLine="29"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="..\..\..\..\..\..\lazarus_23_215\others_package\synapse\blcksock.pas"/> <Filename Value="..\user_service_intf_imp.pas"/>
<Caret Line="2407" Column="1" TopLine="2393"/> <Caret Line="56" Column="1" TopLine="40"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
@ -526,7 +550,7 @@
</Other> </Other>
</CompilerOptions> </CompilerOptions>
<Debugging> <Debugging>
<BreakPoints Count="8"> <BreakPoints Count="6">
<Item1> <Item1>
<Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/> <Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
<Line Value="230"/> <Line Value="230"/>
@ -551,14 +575,6 @@
<Source Value="..\user_service_intf_imp.pas"/> <Source Value="..\user_service_intf_imp.pas"/>
<Line Value="88"/> <Line Value="88"/>
</Item6> </Item6>
<Item7>
<Source Value="..\user_service_intf_imp.pas"/>
<Line Value="54"/>
</Item7>
<Item8>
<Source Value="..\user_service_intf_imp.pas"/>
<Line Value="56"/>
</Item8>
</BreakPoints> </BreakPoints>
<Watches Count="2"> <Watches Count="2">
<Item1> <Item1>

View File

@ -27,19 +27,17 @@ uses
base_service_intf, server_service_soap, base_service_intf, server_service_soap,
base_binary_formatter, server_binary_formatter, base_binary_formatter, server_binary_formatter,
metadata_service, metadata_service_imp, metadata_service_binder, metadata_service, metadata_service_imp, metadata_service_binder,
synapse_tcp_server, server_listener ,synapse_tcp_server,
user_service_intf, user_service_intf_binder, user_service_intf_imp , imp_helper, user_service_intf, user_service_intf_binder, user_service_intf_imp , imp_helper,
server_service_xmlrpc; server_service_xmlrpc;
var var
listnerThread : TServerListnerThread; listener : TwstListener;
begin begin
SetLogger(TConsoleLogger.Create());
Server_service_RegisterBinaryFormat(); Server_service_RegisterBinaryFormat();
//Server_service_RegisterSoapFormat(); Server_service_RegisterSoapFormat();
Server_service_RegisterXmlRpcFormat(); Server_service_RegisterXmlRpcFormat();
RegisterWSTMetadataServiceImplementationFactory(); RegisterWSTMetadataServiceImplementationFactory();
@ -49,9 +47,10 @@ begin
RegisterUserServiceImplementationFactory(); RegisterUserServiceImplementationFactory();
Server_service_RegisterUserServiceService(); Server_service_RegisterUserServiceService();
Logger().Log('WST sample TCP Server listning on "%s"',[sSERVER_PORT]); WriteLn(Format('WST sample TCP Server listning on "%d"',[sSERVER_PORT]));
Logger().Log('Hit <enter> to stop.'); WriteLn('Hit <enter> to stop.');
listnerThread := TServerListnerThread.Create(); listener := TwstSynapseTcpListener.Create();
listener.Start();
ReadLn; ReadLn;
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="2"/> <ActiveEditorIndexAtStart Value="0"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -30,120 +30,116 @@
<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="35"> <Units Count="42">
<Unit0> <Unit0>
<Filename Value="user_client_console.pas"/> <Filename Value="user_client_console.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="user_client_console"/> <UnitName Value="user_client_console"/>
<CursorPos X="15" Y="9"/> <CursorPos X="26" Y="148"/>
<TopLine Value="1"/> <TopLine Value="133"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="64"/> <UsageCount Value="75"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="..\user_service_intf_proxy.pas"/> <Filename Value="..\user_service_intf_proxy.pas"/>
<UnitName Value="user_service_intf_proxy"/> <UnitName Value="user_service_intf_proxy"/>
<CursorPos X="74" Y="12"/> <CursorPos X="57" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="9"/>
<UsageCount Value="30"/> <UsageCount Value="30"/>
<Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="..\..\synapse_tcp_protocol.pas"/> <Filename Value="..\..\synapse_tcp_protocol.pas"/>
<UnitName Value="synapse_tcp_protocol"/> <UnitName Value="synapse_tcp_protocol"/>
<CursorPos X="29" Y="132"/> <CursorPos X="32" Y="104"/>
<TopLine Value="5"/> <TopLine Value="90"/>
<EditorIndex Value="15"/> <EditorIndex Value="11"/>
<UsageCount Value="32"/> <UsageCount Value="37"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="..\..\service_intf.pas"/> <Filename Value="..\..\service_intf.pas"/>
<UnitName Value="service_intf"/> <UnitName Value="service_intf"/>
<CursorPos X="38" Y="2"/> <CursorPos X="51" Y="34"/>
<TopLine Value="1"/> <TopLine Value="21"/>
<UsageCount Value="28"/> <EditorIndex Value="8"/>
<UsageCount Value="33"/>
<Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="..\user_service_intf.pas"/> <Filename Value="..\user_service_intf.pas"/>
<UnitName Value="user_service_intf"/> <UnitName Value="user_service_intf"/>
<CursorPos X="53" Y="11"/> <CursorPos X="53" Y="11"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="4"/>
<UsageCount Value="29"/> <UsageCount Value="29"/>
<Loaded Value="True"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
<Filename Value="..\..\..\..\..\lazarus23_213\others_package\synapse\blcksock.pas"/> <Filename Value="..\..\..\..\..\lazarus23_213\others_package\synapse\blcksock.pas"/>
<UnitName Value="blcksock"/> <UnitName Value="blcksock"/>
<CursorPos X="60" Y="2413"/> <CursorPos X="60" Y="2413"/>
<TopLine Value="2393"/> <TopLine Value="2393"/>
<UsageCount Value="6"/> <UsageCount Value="5"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="..\..\base_service_intf.pas"/> <Filename Value="..\..\base_service_intf.pas"/>
<UnitName Value="base_service_intf"/> <UnitName Value="base_service_intf"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="6"/>
<UsageCount Value="32"/> <UsageCount Value="32"/>
<Loaded Value="True"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
<Filename Value="..\..\library_protocol.pas"/> <Filename Value="..\..\library_protocol.pas"/>
<UnitName Value="library_protocol"/> <UnitName Value="library_protocol"/>
<CursorPos X="1" Y="13"/> <CursorPos X="57" Y="57"/>
<TopLine Value="1"/> <TopLine Value="2"/>
<EditorIndex Value="7"/> <EditorIndex Value="7"/>
<UsageCount Value="20"/> <UsageCount Value="25"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\finah.inc"/> <Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\finah.inc"/>
<CursorPos X="10" Y="33"/> <CursorPos X="10" Y="33"/>
<TopLine Value="17"/> <TopLine Value="17"/>
<UsageCount Value="6"/> <UsageCount Value="5"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\fina.inc"/> <Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\fina.inc"/>
<CursorPos X="13" Y="112"/> <CursorPos X="13" Y="112"/>
<TopLine Value="105"/> <TopLine Value="105"/>
<UsageCount Value="6"/> <UsageCount Value="5"/>
</Unit9> </Unit9>
<Unit10> <Unit10>
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysutilh.inc"/> <Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\objpas\sysutils\sysutilh.inc"/>
<CursorPos X="33" Y="202"/> <CursorPos X="33" Y="202"/>
<TopLine Value="188"/> <TopLine Value="188"/>
<UsageCount Value="6"/> <UsageCount Value="5"/>
</Unit10> </Unit10>
<Unit11> <Unit11>
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\win32\system.pp"/> <Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\win32\system.pp"/>
<UnitName Value="System"/> <UnitName Value="System"/>
<CursorPos X="20" Y="35"/> <CursorPos X="20" Y="35"/>
<TopLine Value="21"/> <TopLine Value="21"/>
<UsageCount Value="6"/> <UsageCount Value="5"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\fexpand.inc"/> <Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\inc\fexpand.inc"/>
<CursorPos X="10" Y="86"/> <CursorPos X="10" Y="86"/>
<TopLine Value="226"/> <TopLine Value="226"/>
<UsageCount Value="6"/> <UsageCount Value="5"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
<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="54" Y="33"/> <CursorPos X="54" Y="33"/>
<TopLine Value="19"/> <TopLine Value="19"/>
<UsageCount Value="6"/> <UsageCount Value="5"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
<Filename Value="..\..\synapse_http_protocol.pas"/> <Filename Value="..\..\synapse_http_protocol.pas"/>
<UnitName Value="synapse_http_protocol"/> <UnitName Value="synapse_http_protocol"/>
<CursorPos X="19" Y="16"/> <CursorPos X="15" Y="59"/>
<TopLine Value="3"/> <TopLine Value="45"/>
<EditorIndex Value="2"/> <EditorIndex Value="6"/>
<UsageCount Value="14"/> <UsageCount Value="19"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit14> </Unit14>
<Unit15> <Unit15>
@ -151,129 +147,121 @@
<UnitName Value="metadata_repository"/> <UnitName Value="metadata_repository"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="14"/> <UsageCount Value="13"/>
</Unit15> </Unit15>
<Unit16> <Unit16>
<Filename Value="..\..\wst.inc"/> <Filename Value="..\..\wst.inc"/>
<CursorPos X="17" Y="15"/> <CursorPos X="17" Y="15"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="14"/> <UsageCount Value="13"/>
</Unit16> </Unit16>
<Unit17> <Unit17>
<Filename Value="..\..\library_imp_utils.pas"/> <Filename Value="..\..\library_imp_utils.pas"/>
<UnitName Value="library_imp_utils"/> <UnitName Value="library_imp_utils"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="9"/> <UsageCount Value="8"/>
</Unit17> </Unit17>
<Unit18> <Unit18>
<Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\win\dynlibs.inc"/> <Filename Value="..\..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\win\dynlibs.inc"/>
<CursorPos X="17" Y="27"/> <CursorPos X="17" Y="27"/>
<TopLine Value="13"/> <TopLine Value="13"/>
<UsageCount Value="7"/> <UsageCount Value="6"/>
</Unit18> </Unit18>
<Unit19> <Unit19>
<Filename Value="..\..\semaphore.pas"/> <Filename Value="..\..\semaphore.pas"/>
<UnitName Value="semaphore"/> <UnitName Value="semaphore"/>
<CursorPos X="1" Y="96"/> <CursorPos X="1" Y="96"/>
<TopLine Value="72"/> <TopLine Value="72"/>
<UsageCount Value="7"/> <UsageCount Value="6"/>
</Unit19> </Unit19>
<Unit20> <Unit20>
<Filename Value="..\..\soap_formatter.pas"/> <Filename Value="..\..\soap_formatter.pas"/>
<UnitName Value="soap_formatter"/> <UnitName Value="soap_formatter"/>
<CursorPos X="8" Y="96"/> <CursorPos X="3" Y="232"/>
<TopLine Value="83"/> <TopLine Value="221"/>
<EditorIndex Value="1"/> <EditorIndex Value="5"/>
<UsageCount Value="17"/> <UsageCount Value="22"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit20> </Unit20>
<Unit21> <Unit21>
<Filename Value="..\..\xmlrpc_formatter.pas"/> <Filename Value="..\..\xmlrpc_formatter.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="xmlrpc_formatter"/> <UnitName Value="xmlrpc_formatter"/>
<CursorPos X="25" Y="72"/> <CursorPos X="54" Y="21"/>
<TopLine Value="65"/> <TopLine Value="1"/>
<EditorIndex Value="8"/> <UsageCount Value="61"/>
<UsageCount Value="50"/>
<Loaded Value="True"/>
</Unit21> </Unit21>
<Unit22> <Unit22>
<Filename Value="..\..\binary_formatter.pas"/> <Filename Value="..\..\binary_formatter.pas"/>
<UnitName Value="binary_formatter"/> <UnitName Value="binary_formatter"/>
<CursorPos X="20" Y="21"/> <CursorPos X="20" Y="21"/>
<TopLine Value="1"/> <TopLine Value="12"/>
<EditorIndex Value="11"/> <EditorIndex Value="9"/>
<UsageCount Value="25"/> <UsageCount Value="30"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit22> </Unit22>
<Unit23> <Unit23>
<Filename Value="..\..\wst_delphi.inc"/> <Filename Value="..\..\wst_delphi.inc"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="7"/> <UsageCount Value="6"/>
</Unit23> </Unit23>
<Unit24> <Unit24>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/> <Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<UnitName Value="base_xmlrpc_formatter"/> <UnitName Value="base_xmlrpc_formatter"/>
<CursorPos X="20" Y="1346"/> <CursorPos X="25" Y="31"/>
<TopLine Value="1326"/> <TopLine Value="16"/>
<EditorIndex Value="10"/>
<UsageCount Value="25"/> <UsageCount Value="25"/>
<Loaded Value="True"/>
</Unit24> </Unit24>
<Unit25> <Unit25>
<Filename Value="..\..\base_soap_formatter.pas"/> <Filename Value="..\..\base_soap_formatter.pas"/>
<UnitName Value="base_soap_formatter"/> <UnitName Value="base_soap_formatter"/>
<CursorPos X="56" Y="334"/> <CursorPos X="3" Y="40"/>
<TopLine Value="319"/> <TopLine Value="22"/>
<EditorIndex Value="5"/>
<UsageCount Value="24"/> <UsageCount Value="24"/>
<Loaded Value="True"/>
</Unit25> </Unit25>
<Unit26> <Unit26>
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\objpas\classes\classesh.inc"/> <Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="3" Y="592"/> <CursorPos X="3" Y="592"/>
<TopLine Value="590"/> <TopLine Value="590"/>
<UsageCount Value="12"/> <UsageCount Value="11"/>
</Unit26> </Unit26>
<Unit27> <Unit27>
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\objpas\typinfo.pp"/> <Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\rtl\objpas\typinfo.pp"/>
<UnitName Value="typinfo"/> <UnitName Value="typinfo"/>
<CursorPos X="1" Y="483"/> <CursorPos X="1" Y="483"/>
<TopLine Value="469"/> <TopLine Value="469"/>
<UsageCount Value="12"/> <UsageCount Value="11"/>
</Unit27> </Unit27>
<Unit28> <Unit28>
<Filename Value="..\..\..\..\..\..\lazarus_23_215\others_package\synapse\blcksock.pas"/> <Filename Value="..\..\..\..\..\..\lazarus_23_215\others_package\synapse\blcksock.pas"/>
<UnitName Value="blcksock"/> <UnitName Value="blcksock"/>
<CursorPos X="1" Y="2407"/> <CursorPos X="1" Y="2407"/>
<TopLine Value="2393"/> <TopLine Value="2393"/>
<UsageCount Value="12"/> <UsageCount Value="11"/>
</Unit28> </Unit28>
<Unit29> <Unit29>
<Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\packages\fcl-xml\src\xmlread.pp"/> <Filename Value="..\..\..\..\..\..\lazarus_23_215\fpc\2.1.5\source\packages\fcl-xml\src\xmlread.pp"/>
<UnitName Value="XMLRead"/> <UnitName Value="XMLRead"/>
<CursorPos X="1" Y="2763"/> <CursorPos X="1" Y="2763"/>
<TopLine Value="2749"/> <TopLine Value="2749"/>
<UsageCount Value="12"/> <UsageCount Value="11"/>
</Unit29> </Unit29>
<Unit30> <Unit30>
<Filename Value="..\..\imp_utils.pas"/> <Filename Value="..\..\imp_utils.pas"/>
<UnitName Value="imp_utils"/> <UnitName Value="imp_utils"/>
<CursorPos X="26" Y="13"/> <CursorPos X="41" Y="3"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="3"/>
<UsageCount Value="15"/> <UsageCount Value="15"/>
<Loaded Value="True"/>
</Unit30> </Unit30>
<Unit31> <Unit31>
<Filename Value="..\..\wst_fpc_xml.pas"/> <Filename Value="..\..\wst_fpc_xml.pas"/>
<UnitName Value="wst_fpc_xml"/> <UnitName Value="wst_fpc_xml"/>
<CursorPos X="34" Y="67"/> <CursorPos X="34" Y="67"/>
<TopLine Value="54"/> <TopLine Value="42"/>
<EditorIndex Value="13"/> <EditorIndex Value="10"/>
<UsageCount Value="15"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit31> </Unit31>
<Unit32> <Unit32>
@ -281,28 +269,186 @@
<UnitName Value="typinfo"/> <UnitName Value="typinfo"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="34"/> <TopLine Value="34"/>
<UsageCount Value="9"/> <UsageCount Value="8"/>
</Unit32> </Unit32>
<Unit33> <Unit33>
<Filename Value="..\..\base_binary_formatter.pas"/> <Filename Value="..\..\base_binary_formatter.pas"/>
<UnitName Value="base_binary_formatter"/> <UnitName Value="base_binary_formatter"/>
<CursorPos X="35" Y="1496"/> <CursorPos X="22" Y="27"/>
<TopLine Value="1483"/> <TopLine Value="10"/>
<EditorIndex Value="12"/>
<UsageCount Value="14"/> <UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit33> </Unit33>
<Unit34> <Unit34>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/> <Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<UnitName Value="DOM"/> <UnitName Value="DOM"/>
<CursorPos X="14" Y="287"/> <CursorPos X="14" Y="287"/>
<TopLine Value="274"/> <TopLine Value="274"/>
<EditorIndex Value="14"/>
<UsageCount Value="11"/> <UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit34> </Unit34>
<Unit35>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\synapse\httpsend.pas"/>
<UnitName Value="httpsend"/>
<CursorPos X="23" Y="72"/>
<TopLine Value="143"/>
<UsageCount Value="10"/>
</Unit35>
<Unit36>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\synapse\blcksock.pas"/>
<UnitName Value="blcksock"/>
<CursorPos X="3" Y="1325"/>
<TopLine Value="1279"/>
<UsageCount Value="10"/>
</Unit36>
<Unit37>
<Filename Value="..\..\indy_http_protocol.pas"/>
<UnitName Value="indy_http_protocol"/>
<CursorPos X="1" Y="16"/>
<TopLine Value="109"/>
<EditorIndex Value="4"/>
<UsageCount Value="15"/>
<Loaded Value="True"/>
</Unit37>
<Unit38>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\Protocols\IdHTTP.pas"/>
<UnitName Value="IdHTTP"/>
<CursorPos X="49" Y="343"/>
<TopLine Value="582"/>
<UsageCount Value="9"/>
</Unit38>
<Unit39>
<Filename Value="..\..\ics_tcp_protocol.pas"/>
<UnitName Value="ics_tcp_protocol"/>
<CursorPos X="59" Y="66"/>
<TopLine Value="40"/>
<EditorIndex Value="3"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit39>
<Unit40>
<Filename Value="..\..\ics_http_protocol.pas"/>
<UnitName Value="ics_http_protocol"/>
<CursorPos X="55" Y="72"/>
<TopLine Value="128"/>
<EditorIndex Value="2"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit40>
<Unit41>
<Filename Value="..\..\same_process_protocol.pas"/>
<UnitName Value="same_process_protocol"/>
<CursorPos X="77" Y="83"/>
<TopLine Value="31"/>
<EditorIndex Value="1"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit41>
</Units> </Units>
<JumpHistory Count="0" HistoryIndex="-1"/> <JumpHistory Count="26" HistoryIndex="25">
<Position1>
<Filename Value="user_client_console.pas"/>
<Caret Line="8" Column="12" TopLine="1"/>
</Position1>
<Position2>
<Filename Value="..\..\synapse_tcp_protocol.pas"/>
<Caret Line="40" Column="22" TopLine="34"/>
</Position2>
<Position3>
<Filename Value="user_client_console.pas"/>
<Caret Line="8" Column="70" TopLine="1"/>
</Position3>
<Position4>
<Filename Value="..\..\ics_tcp_protocol.pas"/>
<Caret Line="51" Column="22" TopLine="43"/>
</Position4>
<Position5>
<Filename Value="..\..\ics_tcp_protocol.pas"/>
<Caret Line="178" Column="32" TopLine="161"/>
</Position5>
<Position6>
<Filename Value="..\..\indy_http_protocol.pas"/>
<Caret Line="39" Column="22" TopLine="38"/>
</Position6>
<Position7>
<Filename Value="..\..\synapse_http_protocol.pas"/>
<Caret Line="41" Column="22" TopLine="40"/>
</Position7>
<Position8>
<Filename Value="..\..\ics_http_protocol.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position8>
<Position9>
<Filename Value="..\..\ics_http_protocol.pas"/>
<Caret Line="196" Column="16" TopLine="177"/>
</Position9>
<Position10>
<Filename Value="..\..\ics_tcp_protocol.pas"/>
<Caret Line="13" Column="3" TopLine="52"/>
</Position10>
<Position11>
<Filename Value="..\..\indy_http_protocol.pas"/>
<Caret Line="67" Column="55" TopLine="46"/>
</Position11>
<Position12>
<Filename Value="..\..\ics_tcp_protocol.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position12>
<Position13>
<Filename Value="..\..\ics_tcp_protocol.pas"/>
<Caret Line="105" Column="34" TopLine="91"/>
</Position13>
<Position14>
<Filename Value="..\..\ics_tcp_protocol.pas"/>
<Caret Line="114" Column="31" TopLine="100"/>
</Position14>
<Position15>
<Filename Value="..\..\ics_tcp_protocol.pas"/>
<Caret Line="124" Column="33" TopLine="110"/>
</Position15>
<Position16>
<Filename Value="..\..\ics_tcp_protocol.pas"/>
<Caret Line="145" Column="47" TopLine="131"/>
</Position16>
<Position17>
<Filename Value="user_client_console.pas"/>
<Caret Line="8" Column="19" TopLine="1"/>
</Position17>
<Position18>
<Filename Value="..\..\ics_http_protocol.pas"/>
<Caret Line="53" Column="22" TopLine="52"/>
</Position18>
<Position19>
<Filename Value="..\..\same_process_protocol.pas"/>
<Caret Line="39" Column="22" TopLine="28"/>
</Position19>
<Position20>
<Filename Value="..\..\same_process_protocol.pas"/>
<Caret Line="83" Column="3" TopLine="70"/>
</Position20>
<Position21>
<Filename Value="user_client_console.pas"/>
<Caret Line="148" Column="19" TopLine="211"/>
</Position21>
<Position22>
<Filename Value="user_client_console.pas"/>
<Caret Line="6" Column="63" TopLine="1"/>
</Position22>
<Position23>
<Filename Value="user_client_console.pas"/>
<Caret Line="226" Column="1" TopLine="217"/>
</Position23>
<Position24>
<Filename Value="user_client_console.pas"/>
<Caret Line="224" Column="19" TopLine="214"/>
</Position24>
<Position25>
<Filename Value="user_client_console.pas"/>
<Caret Line="272" Column="1" TopLine="247"/>
</Position25>
<Position26>
<Filename Value="user_client_console.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position26>
</JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
@ -311,12 +457,18 @@
<Filename Value="user_client_console.exe"/> <Filename Value="user_client_console.exe"/>
</Target> </Target>
<SearchPaths> <SearchPaths>
<OtherUnitFiles Value="..\;..\..\;$(LazarusDir)\others_package\synapse\"/> <OtherUnitFiles Value="..\;..\..\;$(LazarusDir)\others_package\synapse\;$(LazarusDir)\others_package\ics\latest_distr\Delphi\Vc32\"/>
<UnitOutputDirectory Value="obj"/> <UnitOutputDirectory Value="obj"/>
</SearchPaths> </SearchPaths>
<CodeGeneration> <CodeGeneration>
<Generate Value="Faster"/> <Generate Value="Faster"/>
</CodeGeneration> </CodeGeneration>
<Linking>
<Debugging>
<UseLineInfoUnit Value="False"/>
</Debugging>
<LinkSmart Value="True"/>
</Linking>
<Other> <Other>
<CompilerPath Value="$(CompPath)"/> <CompilerPath Value="$(CompPath)"/>
</Other> </Other>

View File

@ -3,9 +3,9 @@ program user_client_console;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}
uses uses
Classes, SysUtils, TypInfo, Classes, SysUtils, TypInfo, {$IFDEF WINDOWS}ActiveX,{$ENDIF}
user_service_intf_proxy, user_service_intf_proxy,
synapse_tcp_protocol, synapse_http_protocol, library_protocol, same_process_protocol, synapse_tcp_protocol, synapse_http_protocol, library_protocol, ics_tcp_protocol, ics_http_protocol,
soap_formatter, binary_formatter, soap_formatter, binary_formatter,
user_service_intf, xmlrpc_formatter; user_service_intf, xmlrpc_formatter;
@ -220,6 +220,10 @@ end;
var var
strBuffer : string; strBuffer : string;
begin begin
{$IFDEF WINDOWS}
CoInitialize(nil);
try
{$ENDIF}
SYNAPSE_RegisterTCP_Transport(); SYNAPSE_RegisterTCP_Transport();
SYNAPSE_RegisterHTTP_Transport(); SYNAPSE_RegisterHTTP_Transport();
LIB_Register_Transport(); LIB_Register_Transport();
@ -265,5 +269,10 @@ begin
Write('Choose a item : '); Write('Choose a item : ');
end; end;
end; end;
{$IFDEF WINDOWS}
finally
CoUninitialize();
end;
{$ENDIF}
end. end.

View File

@ -0,0 +1,55 @@
{
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 server_listener;
interface
uses
Classes, SysUtils;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type
TListnerNotifyMessage = procedure(Sender : TObject; const AMsg : string) of object;
TwstListener = class(TObject)
private
FOnNotifyMessage: TListnerNotifyMessage;
public
class function GetDescription() : string;virtual;
procedure Start();virtual;abstract;
procedure Stop();virtual;abstract;
procedure NotifyMessage(const AMsg : string);
property OnNotifyMessage : TListnerNotifyMessage read FOnNotifyMessage write FOnNotifyMessage;
end;
implementation
{ TwstListener }
class function TwstListener.GetDescription() : string;
begin
Result := ClassName;
end;
procedure TwstListener.NotifyMessage(const AMsg: string);
begin
if Assigned(FOnNotifyMessage) then
FOnNotifyMessage(Self,AMsg);
end;
end.

View File

@ -224,16 +224,22 @@ procedure TSOAPCallMaker.MakeCall(
); );
Var Var
rqt, rsps : TMemoryStream; rqt, rsps : TMemoryStream;
propMngr : IPropertyManager;
{$IFDEF WST_DBG} {$IFDEF WST_DBG}
s : string; s : string;
{$ENDIF WST_DBG} {$ENDIF WST_DBG}
begin begin
Assert(Assigned(ASerializer)); Assert(Assigned(ASerializer));
Assert(Assigned(ATransport)); Assert(Assigned(ATransport));
ATransport.GetPropertyManager().SetProperty( propMngr := ATransport.GetPropertyManager();
propMngr.SetProperty(
sCONTENT_TYPE, sCONTENT_TYPE,
ASerializer.GetPropertyManager().GetProperty(sCONTENT_TYPE) ASerializer.GetPropertyManager().GetProperty(sCONTENT_TYPE)
); );
propMngr.SetProperty(
sFORMAT,
sPROTOCOL_NAME
);
rsps := Nil; rsps := Nil;
rqt := TMemoryStream.Create(); rqt := TMemoryStream.Create();
Try Try

View File

@ -38,6 +38,7 @@ Type
FConnection : THTTPSend; FConnection : THTTPSend;
FAddress : string; FAddress : string;
private private
FFormat : string;
FSoapAction: string; FSoapAction: string;
function GetAddress: string; function GetAddress: string;
function GetContentType: string; function GetContentType: string;
@ -64,6 +65,7 @@ Type
property ProxyUsername : string read GetProxyUsername write SetProxyUsername; property ProxyUsername : string read GetProxyUsername write SetProxyUsername;
property ProxyPassword : string read GetProxyPassword write SetProxyPassword; property ProxyPassword : string read GetProxyPassword write SetProxyPassword;
property SoapAction : string read FSoapAction write FSoapAction; property SoapAction : string read FSoapAction write FSoapAction;
property Format : string read FFormat write FFormat;
End; End;
{$M+} {$M+}

View File

@ -37,6 +37,7 @@ Type
{ TTCPTransport } { TTCPTransport }
TTCPTransport = class(TSimpleFactoryItem,ITransport) TTCPTransport = class(TSimpleFactoryItem,ITransport)
Private Private
FFormat : string;
FPropMngr : IPropertyManager; FPropMngr : IPropertyManager;
FConnection : TTCPBlockSocket; FConnection : TTCPBlockSocket;
FContentType : string; FContentType : string;
@ -55,6 +56,7 @@ Type
property Address : string Read FAddress Write FAddress; property Address : string Read FAddress Write FAddress;
property Port : string Read FPort Write FPort; property Port : string Read FPort Write FPort;
property DefaultTimeOut : Integer read FDefaultTimeOut write FDefaultTimeOut; property DefaultTimeOut : Integer read FDefaultTimeOut write FDefaultTimeOut;
property Format : string read FFormat write FFormat;
End; End;
{$M+} {$M+}
@ -99,6 +101,7 @@ begin
wrtr.WriteInt32S(0); wrtr.WriteInt32S(0);
wrtr.WriteStr(Target); wrtr.WriteStr(Target);
wrtr.WriteStr(ContentType); wrtr.WriteStr(ContentType);
wrtr.WriteStr(Self.Format);
SetLength(strBuff,ARequest.Size); SetLength(strBuff,ARequest.Size);
ARequest.Position := 0; ARequest.Position := 0;
ARequest.Read(strBuff[1],Length(strBuff)); ARequest.Read(strBuff[1],Length(strBuff));

View File

@ -16,21 +16,17 @@ unit synapse_tcp_server;
interface interface
uses uses
Classes, SysUtils, blcksock, synsock; Classes, SysUtils, blcksock, synsock, server_listener;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc} {$INCLUDE wst_delphi.inc}
const const
sSERVER_PORT = '1234'; sSERVER_PORT = 1234;
type type
ILogger = interface TwstSynapseTcpListener = class;
['{CA357B9A-604F-4603-96FA-65D445837E80}']
procedure Log(const AMsg : string);overload;
procedure Log(const AMsg : string;const AArgs : array of const);overload;
end;
{ TClientHandlerThread } { TClientHandlerThread }
@ -41,12 +37,13 @@ type
FSocketHandle : TSocket; FSocketHandle : TSocket;
FInputStream : TMemoryStream; FInputStream : TMemoryStream;
FOutputStream : TMemoryStream; FOutputStream : TMemoryStream;
FOwner : TwstSynapseTcpListener;
private private
procedure ClearBuffers(); procedure ClearBuffers();
function ReadInputBuffer():Integer; function ReadInputBuffer():Integer;
procedure SendOutputBuffer(); procedure SendOutputBuffer();
public public
constructor Create (ASocketHandle : TSocket); constructor Create (ASocketHandle : TSocket; AOwner : TwstSynapseTcpListener);
destructor Destroy();override; destructor Destroy();override;
procedure Execute(); override; procedure Execute(); override;
property DefaultTimeOut : Integer read FDefaultTimeOut write FDefaultTimeOut; property DefaultTimeOut : Integer read FDefaultTimeOut write FDefaultTimeOut;
@ -58,51 +55,42 @@ type
private private
FDefaultTimeOut: Integer; FDefaultTimeOut: Integer;
FSocketObject : TTCPBlockSocket; FSocketObject : TTCPBlockSocket;
FSuspendingCount : Integer;
FOwner : TwstSynapseTcpListener;
public public
constructor Create(); constructor Create(AOwner : TwstSynapseTcpListener);
destructor Destroy(); override; destructor Destroy(); override;
procedure Execute(); override; procedure Execute(); override;
procedure SuspendAsSoonAsPossible();
procedure ResumeListening();
property DefaultTimeOut : Integer read FDefaultTimeOut write FDefaultTimeOut; property DefaultTimeOut : Integer read FDefaultTimeOut write FDefaultTimeOut;
end; end;
{ TConsoleLogger } { TwstSynapseTcpListener }
TConsoleLogger = class(TInterfacedObject,IInterface,ILogger) TwstSynapseTcpListener = class(TwstListener)
protected private
procedure Log(const AMsg : string);overload; FServerThread : TServerListnerThread;
procedure Log(const AMsg : string;const AArgs : array of const);overload; FServerIpAddress : string;
FListningPort : Integer;
FDefaultClientPort : Integer;
FServerSoftware : string;
public
constructor Create(
const AServerIpAddress : string = '127.0.0.1';
const AListningPort : Integer = sSERVER_PORT;
const ADefaultClientPort : Integer = 25000;
const AServerSoftware : string = 'Web Service Toolkit Application'
);
destructor Destroy();override;
procedure Start();override;
procedure Stop();override;
end; end;
function Logger():ILogger ;
function SetLogger(ALogger : ILogger):ILogger ;
implementation implementation
uses binary_streamer, server_service_intf, server_service_imputils uses binary_streamer, server_service_intf, server_service_imputils
{$IFNDEF FPC},ActiveX{$ENDIF}, ComObj; {$IFNDEF FPC},ActiveX{$ENDIF}, ComObj;
var FLoggerInst : ILogger = nil;
function SetLogger(ALogger : ILogger):ILogger ;
begin
Result := FLoggerInst;
FLoggerInst := ALogger;
end;
function Logger():ILogger ;
begin
Result := FLoggerInst;
end;
{ TConsoleLogger }
procedure TConsoleLogger.Log(const AMsg: string);
begin
WriteLn(AMsg);
end;
procedure TConsoleLogger.Log(const AMsg: string; const AArgs: array of const);
begin
WriteLn(Format(AMsg,AArgs));
end;
{ TClientHandlerThread } { TClientHandlerThread }
@ -151,11 +139,15 @@ begin
FSocketObject.SendBuffer(FOutputStream.Memory,FOutputStream.Size); FSocketObject.SendBuffer(FOutputStream.Memory,FOutputStream.Size);
end; end;
constructor TClientHandlerThread.Create(ASocketHandle: TSocket); constructor TClientHandlerThread.Create(
ASocketHandle : TSocket;
AOwner : TwstSynapseTcpListener
);
begin begin
FSocketHandle := ASocketHandle; FSocketHandle := ASocketHandle;
FreeOnTerminate := True; FreeOnTerminate := True;
FDefaultTimeOut := 90000; FDefaultTimeOut := 90000;
FOwner := AOwner;
inherited Create(False); inherited Create(False);
end; end;
@ -179,7 +171,7 @@ procedure TClientHandlerThread.Execute();
var var
wrtr : IDataStore; wrtr : IDataStore;
rdr : IDataStoreReader; rdr : IDataStoreReader;
buff, trgt,ctntyp : string; buff, trgt,ctntyp, frmt : string;
rqst : IRequestBuffer; rqst : IRequestBuffer;
i : PtrUInt; i : PtrUInt;
begin begin
@ -201,12 +193,13 @@ begin
rdr := CreateBinaryReader(FInputStream); rdr := CreateBinaryReader(FInputStream);
trgt := rdr.ReadStr(); trgt := rdr.ReadStr();
ctntyp := rdr.ReadStr(); ctntyp := rdr.ReadStr();
buff := rdr.ReadStr(); WriteLn;WriteLn('ContentType=',ctntyp,', ','Target = ',trgt);WriteLn;WriteLn(buff); frmt := rdr.ReadStr();
buff := rdr.ReadStr();
rdr := nil; rdr := nil;
FInputStream.Size := 0; FInputStream.Size := 0;
FInputStream.Write(buff[1],Length(buff)); FInputStream.Write(buff[1],Length(buff));
FInputStream.Position := 0; FInputStream.Position := 0;
rqst := TRequestBuffer.Create(trgt,ctntyp,FInputStream,FOutputStream,GetFormatForContentType(ctntyp)); rqst := TRequestBuffer.Create(trgt,ctntyp,FInputStream,FOutputStream,frmt);
HandleServiceRequest(rqst); HandleServiceRequest(rqst);
i := FOutputStream.Size; i := FOutputStream.Size;
SetLength(buff,i); SetLength(buff,i);
@ -221,7 +214,7 @@ begin
end; end;
except except
on e : Exception do begin on e : Exception do begin
Logger().Log('Error : ThreadID = %d; Message = %s',[Self.ThreadID,e.Message]); FOwner.NotifyMessage(Format('Error : ThreadID = %d; Message = %s',[Self.ThreadID,e.Message]));
end; end;
end; end;
finally finally
@ -236,11 +229,12 @@ end;
{ TServerListnerThread } { TServerListnerThread }
constructor TServerListnerThread.Create(); constructor TServerListnerThread.Create(AOwner : TwstSynapseTcpListener);
begin begin
FSocketObject := TTCPBlockSocket.Create(); FSocketObject := TTCPBlockSocket.Create();
FreeOnTerminate := True; FreeOnTerminate := True;
FDefaultTimeOut := 1000; FDefaultTimeOut := 1000;
FOwner := AOwner;
inherited Create(false); inherited Create(false);
end; end;
@ -262,18 +256,21 @@ begin
FSocketObject.RaiseExcept := True; FSocketObject.RaiseExcept := True;
FSocketObject.CreateSocket(); FSocketObject.CreateSocket();
FSocketObject.SetLinger(True,10); FSocketObject.SetLinger(True,10);
FSocketObject.Bind('127.0.0.1',sSERVER_PORT); FSocketObject.Bind(FOwner.FServerIpAddress,IntToStr(FOwner.FListningPort));
FSocketObject.Listen(); FSocketObject.Listen();
while not Terminated do begin while not Terminated do begin
if ( FSuspendingCount > 0 ) then begin
Suspend();
end;
if FSocketObject.CanRead(DefaultTimeOut) then begin if FSocketObject.CanRead(DefaultTimeOut) then begin
ClientSock := FSocketObject.Accept(); ClientSock := FSocketObject.Accept();
TClientHandlerThread.Create(ClientSock); TClientHandlerThread.Create(ClientSock,FOwner);
end; end;
end; end;
except except
on e : Exception do begin on e : Exception do begin
Logger().Log('Listner Thread Error : ThreadID = %d; Message = %s',[Self.ThreadID,e.Message]); FOwner.NotifyMessage(Format('Listner Thread Error : ThreadID = %d; Message = %s',[Self.ThreadID,e.Message]));
Logger().Log('Listner stoped.'); FOwner.NotifyMessage('Listner stoped.');
end; end;
end; end;
{$IFNDEF FPC} {$IFNDEF FPC}
@ -283,5 +280,57 @@ begin
{$ENDIF} {$ENDIF}
end; end;
procedure TServerListnerThread.SuspendAsSoonAsPossible();
begin
InterLockedIncrement(FSuspendingCount);
end;
procedure TServerListnerThread.ResumeListening();
begin
InterLockedDecrement(FSuspendingCount);
if ( FSuspendingCount <= 0 ) then begin
if Suspended then
Resume();
end;
end;
{ TwstSynapseTcpListener }
constructor TwstSynapseTcpListener.Create(
const AServerIpAddress : string;
const AListningPort : Integer;
const ADefaultClientPort : Integer;
const AServerSoftware : string
);
begin
FServerIpAddress := AServerIpAddress;
FListningPort := AListningPort;
FDefaultClientPort := ADefaultClientPort;
FServerSoftware := AServerSoftware;
end;
destructor TwstSynapseTcpListener.Destroy();
begin
if ( FServerThread <> nil ) then begin
FServerThread.Terminate();
Start();
end;
inherited Destroy();
end;
procedure TwstSynapseTcpListener.Start();
begin
if ( FServerThread = nil ) then
FServerThread := TServerListnerThread.Create(Self);
if FServerThread.Suspended then
FServerThread.ResumeListening();
end;
procedure TwstSynapseTcpListener.Stop();
begin
if ( FServerThread <> nil ) and ( not FServerThread.Suspended ) then
FServerThread.SuspendAsSoonAsPossible();
end;
end. end.

View File

@ -42,6 +42,7 @@ type
function CreateEnum(AContainer : TwstPasTreeContainer) : TPasEnumType; function CreateEnum(AContainer : TwstPasTreeContainer) : TPasEnumType;
function CreateCompoundObject(ASymbolTable : TwstPasTreeContainer) : TPasClassType; function CreateCompoundObject(ASymbolTable : TwstPasTreeContainer) : TPasClassType;
function CreateArray(ASymbolTable : TwstPasTreeContainer) : TPasArrayType;
function CreateInterface(ASymbolTable : TwstPasTreeContainer) : TPasClassType; function CreateInterface(ASymbolTable : TwstPasTreeContainer) : TPasClassType;
function CreateMethod( function CreateMethod(
AOwner : TPasClassType; AOwner : TPasClassType;
@ -73,7 +74,7 @@ type
implementation implementation
uses Contnrs, Forms, ufEnumedit, ufclassedit, uinterfaceedit, uprocedit, uses Contnrs, Forms, ufEnumedit, ufclassedit, uinterfaceedit, uprocedit,
uargedit, umoduleedit, ubindingedit; uargedit, umoduleedit, ubindingedit, ufarrayedit;
type type
@ -162,6 +163,17 @@ type
):Boolean;override; ):Boolean;override;
end; end;
{ TArrayUpdater }
TArrayUpdater = class(TObjectUpdater)
public
class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
):Boolean;override;
end;
{ TInterfaceUpdater } { TInterfaceUpdater }
TInterfaceUpdater = class(TObjectUpdater) TInterfaceUpdater = class(TObjectUpdater)
@ -217,6 +229,30 @@ type
):Boolean;override; ):Boolean;override;
end; end;
{ TArrayUpdater }
class function TArrayUpdater.CanHandle(AObject : TObject) : Boolean;
begin
Result := ( inherited CanHandle(AObject) ) and AObject.InheritsFrom(TPasArrayType);
end;
class function TArrayUpdater.UpdateObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
): Boolean;
var
f : TfArrayEdit;
e : TPasArrayType;
begin
e := AObject as TPasArrayType;
f := TfArrayEdit.Create(Application);
try
Result := f.UpdateObject(e,etUpdate,ASymbolTable);
finally
f.Release();
end;
end;
{ TBindingUpdater } { TBindingUpdater }
class function TBindingUpdater.CanHandle(AObject: TObject): Boolean; class function TBindingUpdater.CanHandle(AObject: TObject): Boolean;
@ -458,6 +494,19 @@ begin
end; end;
end; end;
function CreateArray(ASymbolTable : TwstPasTreeContainer) : TPasArrayType;
var
f : TfArrayEdit;
begin
Result := nil;
f := TfArrayEdit.Create(Application);
try
f.UpdateObject(Result,etCreate,ASymbolTable);
finally
f.Release();
end;
end;
function CreateMethod( function CreateMethod(
AOwner : TPasClassType; AOwner : TPasClassType;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
@ -616,6 +665,7 @@ initialization
UpdaterRegistryInst.RegisterHandler(TArgumentUpdater); UpdaterRegistryInst.RegisterHandler(TArgumentUpdater);
UpdaterRegistryInst.RegisterHandler(TModuleUpdater); UpdaterRegistryInst.RegisterHandler(TModuleUpdater);
UpdaterRegistryInst.RegisterHandler(TBindingUpdater); UpdaterRegistryInst.RegisterHandler(TBindingUpdater);
UpdaterRegistryInst.RegisterHandler(TArrayUpdater);
finalization finalization
FreeAndNil(UpdaterRegistryInst); FreeAndNil(UpdaterRegistryInst);

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="1"/> <ActiveEditorIndexAtStart Value="0"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -32,13 +32,15 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item2> </Item2>
</RequiredPackages> </RequiredPackages>
<Units Count="71"> <Units Count="72">
<Unit0> <Unit0>
<Filename Value="typ_lib_edtr.lpr"/> <Filename Value="typ_lib_edtr.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<CursorPos X="24" Y="11"/> <CursorPos X="20" Y="5"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="189"/> <EditorIndex Value="2"/>
<UsageCount Value="191"/>
<Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="uwsttypelibraryedit.pas"/> <Filename Value="uwsttypelibraryedit.pas"/>
@ -47,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="38" Y="333"/> <CursorPos X="19" Y="552"/>
<TopLine Value="288"/> <TopLine Value="535"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="189"/> <UsageCount Value="191"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
@ -65,8 +67,8 @@
<UnitName Value="wsdl2pas_imp"/> <UnitName Value="wsdl2pas_imp"/>
<CursorPos X="38" Y="805"/> <CursorPos X="38" Y="805"/>
<TopLine Value="792"/> <TopLine Value="792"/>
<EditorIndex Value="6"/> <EditorIndex Value="9"/>
<UsageCount Value="79"/> <UsageCount Value="80"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="65" Y="750" ID="2"/> <Item0 X="65" Y="750" ID="2"/>
</Bookmarks> </Bookmarks>
@ -78,8 +80,8 @@
<UnitName Value="wsdl_generator"/> <UnitName Value="wsdl_generator"/>
<CursorPos X="45" Y="707"/> <CursorPos X="45" Y="707"/>
<TopLine Value="684"/> <TopLine Value="684"/>
<EditorIndex Value="12"/> <EditorIndex Value="13"/>
<UsageCount Value="189"/> <UsageCount Value="191"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="49" Y="446" ID="1"/> <Item0 X="49" Y="446" ID="1"/>
</Bookmarks> </Bookmarks>
@ -94,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="189"/> <UsageCount Value="191"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="ufenumedit.pas"/> <Filename Value="ufenumedit.pas"/>
@ -103,20 +105,20 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="ufenumedit.lrs"/> <ResourceFilename Value="ufenumedit.lrs"/>
<UnitName Value="ufEnumedit"/> <UnitName Value="ufEnumedit"/>
<CursorPos X="1" Y="77"/> <CursorPos X="27" Y="78"/>
<TopLine Value="58"/> <TopLine Value="58"/>
<EditorIndex Value="7"/> <EditorIndex Value="10"/>
<UsageCount Value="189"/> <UsageCount Value="191"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
<Filename Value="view_helper.pas"/> <Filename Value="view_helper.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="view_helper"/> <UnitName Value="view_helper"/>
<CursorPos X="31" Y="535"/> <CursorPos X="1" Y="241"/>
<TopLine Value="16"/> <TopLine Value="234"/>
<EditorIndex Value="5"/> <EditorIndex Value="8"/>
<UsageCount Value="189"/> <UsageCount Value="191"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
@ -125,16 +127,16 @@
<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="189"/> <UsageCount Value="191"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
<Filename Value="edit_helper.pas"/> <Filename Value="edit_helper.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="edit_helper"/> <UnitName Value="edit_helper"/>
<CursorPos X="44" Y="519"/> <CursorPos X="15" Y="491"/>
<TopLine Value="5"/> <TopLine Value="484"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="189"/> <UsageCount Value="191"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit9> </Unit9>
<Unit10> <Unit10>
@ -144,10 +146,10 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="ufclassedit.lrs"/> <ResourceFilename Value="ufclassedit.lrs"/>
<UnitName Value="ufclassedit"/> <UnitName Value="ufclassedit"/>
<CursorPos X="29" Y="158"/> <CursorPos X="1" Y="307"/>
<TopLine Value="121"/> <TopLine Value="294"/>
<EditorIndex Value="2"/> <EditorIndex Value="3"/>
<UsageCount Value="189"/> <UsageCount Value="191"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit10> </Unit10>
<Unit11> <Unit11>
@ -156,9 +158,11 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="ufpropedit.lrs"/> <ResourceFilename Value="ufpropedit.lrs"/>
<UnitName Value="ufpropedit"/> <UnitName Value="ufpropedit"/>
<CursorPos X="3" Y="154"/> <CursorPos X="33" Y="106"/>
<TopLine Value="140"/> <TopLine Value="92"/>
<UsageCount Value="189"/> <EditorIndex Value="5"/>
<UsageCount Value="191"/>
<Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
<Filename Value="..\..\..\..\lazarus23_213\lcl\comctrls.pp"/> <Filename Value="..\..\..\..\lazarus23_213\lcl\comctrls.pp"/>
@ -170,10 +174,10 @@
<Unit13> <Unit13>
<Filename Value="..\ws_helper\parserutils.pas"/> <Filename Value="..\ws_helper\parserutils.pas"/>
<UnitName Value="parserutils"/> <UnitName Value="parserutils"/>
<CursorPos X="1" Y="93"/> <CursorPos X="17" Y="20"/>
<TopLine Value="54"/> <TopLine Value="19"/>
<EditorIndex Value="3"/> <EditorIndex Value="4"/>
<UsageCount Value="66"/> <UsageCount Value="67"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
@ -259,7 +263,7 @@
<UnitName Value="uinterfaceedit"/> <UnitName Value="uinterfaceedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="153"/> <UsageCount Value="155"/>
</Unit26> </Unit26>
<Unit27> <Unit27>
<Filename Value="uinterfaceedit.lfm"/> <Filename Value="uinterfaceedit.lfm"/>
@ -276,7 +280,7 @@
<UnitName Value="udm"/> <UnitName Value="udm"/>
<CursorPos X="15" Y="2"/> <CursorPos X="15" Y="2"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="148"/> <UsageCount Value="150"/>
</Unit28> </Unit28>
<Unit29> <Unit29>
<Filename Value="..\..\..\..\lazarus23_213\lcl\include\treeview.inc"/> <Filename Value="..\..\..\..\lazarus23_213\lcl\include\treeview.inc"/>
@ -288,10 +292,10 @@
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/> <Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="pascal_parser_intf"/> <UnitName Value="pascal_parser_intf"/>
<CursorPos X="37" Y="446"/> <CursorPos X="24" Y="13"/>
<TopLine Value="436"/> <TopLine Value="1"/>
<EditorIndex Value="11"/> <EditorIndex Value="12"/>
<UsageCount Value="111"/> <UsageCount Value="113"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit30> </Unit30>
<Unit31> <Unit31>
@ -300,7 +304,7 @@
<UnitName Value="PParser"/> <UnitName Value="PParser"/>
<CursorPos X="4" Y="2133"/> <CursorPos X="4" Y="2133"/>
<TopLine Value="2127"/> <TopLine Value="2127"/>
<UsageCount Value="111"/> <UsageCount Value="113"/>
</Unit31> </Unit31>
<Unit32> <Unit32>
<Filename Value="..\ws_helper\logger_intf.pas"/> <Filename Value="..\ws_helper\logger_intf.pas"/>
@ -315,7 +319,7 @@
<UnitName Value="PasTree"/> <UnitName Value="PasTree"/>
<CursorPos X="33" Y="332"/> <CursorPos X="33" Y="332"/>
<TopLine Value="315"/> <TopLine Value="315"/>
<UsageCount Value="111"/> <UsageCount Value="113"/>
</Unit33> </Unit33>
<Unit34> <Unit34>
<Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/> <Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/>
@ -340,17 +344,15 @@
<UnitName Value="rtti_filters"/> <UnitName Value="rtti_filters"/>
<CursorPos X="1" Y="236"/> <CursorPos X="1" Y="236"/>
<TopLine Value="219"/> <TopLine Value="219"/>
<EditorIndex Value="8"/> <UsageCount Value="27"/>
<UsageCount Value="26"/>
<Loaded Value="True"/>
</Unit37> </Unit37>
<Unit38> <Unit38>
<Filename Value="..\ws_helper\generator.pas"/> <Filename Value="..\ws_helper\generator.pas"/>
<UnitName Value="generator"/> <UnitName Value="generator"/>
<CursorPos X="2" Y="16"/> <CursorPos X="2" Y="16"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="4"/> <EditorIndex Value="7"/>
<UsageCount Value="29"/> <UsageCount Value="30"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit38> </Unit38>
<Unit39> <Unit39>
@ -358,9 +360,7 @@
<UnitName Value="dom_cursors"/> <UnitName Value="dom_cursors"/>
<CursorPos X="1" Y="239"/> <CursorPos X="1" Y="239"/>
<TopLine Value="222"/> <TopLine Value="222"/>
<EditorIndex Value="10"/> <UsageCount Value="24"/>
<UsageCount Value="23"/>
<Loaded Value="True"/>
</Unit39> </Unit39>
<Unit40> <Unit40>
<Filename Value="..\ws_helper\command_line_parser.pas"/> <Filename Value="..\ws_helper\command_line_parser.pas"/>
@ -442,7 +442,7 @@
<UnitName Value="uprocedit"/> <UnitName Value="uprocedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="67"/> <UsageCount Value="69"/>
</Unit50> </Unit50>
<Unit51> <Unit51>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/>
@ -457,7 +457,7 @@
<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="65"/> <UsageCount Value="67"/>
</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"/>
@ -474,7 +474,7 @@
<UnitName Value="uargedit"/> <UnitName Value="uargedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="58"/> <UsageCount Value="60"/>
</Unit54> </Unit54>
<Unit55> <Unit55>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/>
@ -498,7 +498,7 @@
<UnitName Value="umoduleedit"/> <UnitName Value="umoduleedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="50"/> <UsageCount Value="52"/>
</Unit57> </Unit57>
<Unit58> <Unit58>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/>
@ -515,7 +515,7 @@
<UnitName Value="ubindingedit"/> <UnitName Value="ubindingedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="40"/> <UsageCount Value="42"/>
</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"/>
@ -556,7 +556,7 @@
<UnitName Value="ufrmsaveoption"/> <UnitName Value="ufrmsaveoption"/>
<CursorPos X="42" Y="64"/> <CursorPos X="42" Y="64"/>
<TopLine Value="42"/> <TopLine Value="42"/>
<UsageCount Value="36"/> <UsageCount Value="38"/>
</Unit65> </Unit65>
<Unit66> <Unit66>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/>
@ -577,8 +577,8 @@
<UnitName Value="cursor_intf"/> <UnitName Value="cursor_intf"/>
<CursorPos X="2" Y="90"/> <CursorPos X="2" Y="90"/>
<TopLine Value="71"/> <TopLine Value="71"/>
<EditorIndex Value="9"/> <EditorIndex Value="11"/>
<UsageCount Value="12"/> <UsageCount Value="13"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit68> </Unit68>
<Unit69> <Unit69>
@ -593,11 +593,23 @@
<TopLine Value="1398"/> <TopLine Value="1398"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit70> </Unit70>
<Unit71>
<Filename Value="ufarrayedit.pas"/>
<ComponentName Value="fArrayEdit"/>
<IsPartOfProject Value="True"/>
<ResourceFilename Value="ufarrayedit.lrs"/>
<UnitName Value="ufarrayedit"/>
<CursorPos X="67" Y="117"/>
<TopLine Value="95"/>
<EditorIndex Value="6"/>
<UsageCount Value="22"/>
<Loaded Value="True"/>
</Unit71>
</Units> </Units>
<JumpHistory Count="1" HistoryIndex="0"> <JumpHistory Count="1" HistoryIndex="0">
<Position1> <Position1>
<Filename Value="uwsttypelibraryedit.pas"/> <Filename Value="typ_lib_edtr.lpr"/>
<Caret Line="595" Column="20" TopLine="575"/> <Caret Line="17" Column="43" TopLine="1"/>
</Position1> </Position1>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>

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; umoduleedit, ubindingedit, ufrmsaveoption, ufarrayedit;
begin begin
Application.Initialize; Application.Initialize;

View File

@ -1,7 +1,7 @@
object fPropEdit: TfPropEdit object fPropEdit: TfPropEdit
Left = 306 Left = 862
Height = 326 Height = 326
Top = 266 Top = 68
Width = 324 Width = 324
HorzScrollBar.Page = 323 HorzScrollBar.Page = 323
VertScrollBar.Page = 325 VertScrollBar.Page = 325
@ -101,7 +101,7 @@ object fPropEdit: TfPropEdit
Left = 20 Left = 20
Height = 13 Height = 13
Top = 218 Top = 218
Width = 100 Width = 105
Caption = 'Optional property' Caption = 'Optional property'
Font.Style = [fsItalic] Font.Style = [fsItalic]
TabOrder = 3 TabOrder = 3

View File

@ -1,35 +1,35 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus } { Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfPropEdit','FORMDATA',[ LazarusResources.Add('TfPropEdit','FORMDATA',[
'TPF0'#10'TfPropEdit'#9'fPropEdit'#4'Left'#3'2'#1#6'Height'#3'F'#1#3'Top'#3#10 'TPF0'#10'TfPropEdit'#9'fPropEdit'#4'Left'#3'^'#3#6'Height'#3'F'#1#3'Top'#2'D'
+#1#5'Width'#3'D'#1#18'HorzScrollBar.Page'#3'C'#1#18'VertScrollBar.Page'#3'E' +#5'Width'#3'D'#1#18'HorzScrollBar.Page'#3'C'#1#18'VertScrollBar.Page'#3'E'#1
+#1#13'ActiveControl'#7#7'Button1'#11'BorderIcons'#11#12'biSystemMenu'#0#11'B' +#13'ActiveControl'#7#7'Button1'#11'BorderIcons'#11#12'biSystemMenu'#0#11'Bor'
+'orderStyle'#7#8'bsDialog'#7'Caption'#6#9'fPropEdit'#12'ClientHeight'#3'F'#1 +'derStyle'#7#8'bsDialog'#7'Caption'#6#9'fPropEdit'#12'ClientHeight'#3'F'#1#11
+#11'ClientWidth'#3'D'#1#8'Position'#7#15'poDesktopCenter'#0#6'TPanel'#6'Pane' +'ClientWidth'#3'D'#1#8'Position'#7#15'poDesktopCenter'#0#6'TPanel'#6'Panel1'
+'l1'#6'Height'#2'2'#3'Top'#3#20#1#5'Width'#3'D'#1#5'Align'#7#8'alBottom'#12 +#6'Height'#2'2'#3'Top'#3#20#1#5'Width'#3'D'#1#5'Align'#7#8'alBottom'#12'Clie'
+'ClientHeight'#2'2'#11'ClientWidth'#3'D'#1#8'TabOrder'#2#0#0#7'TButton'#7'Bu' +'ntHeight'#2'2'#11'ClientWidth'#3'D'#1#8'TabOrder'#2#0#0#7'TButton'#7'Button'
+'tton1'#4'Left'#3#236#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#7'Anchors' +'1'#4'Left'#3#236#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#7'Anchors'#11#5
+#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Ca' +'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Caption'
+'ption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#0#0#0#7'TButton'#7'But' +#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#0#0#0#7'TButton'#7'Button2'#4
+'ton2'#4'Left'#3#146#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5 +'Left'#3#146#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5'actOK'
+'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4 +#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#7'Def'
+#7'Default'#9#8'TabOrder'#2#1#0#0#0#12'TPageControl'#12'PageControl1'#6'Heig' +'ault'#9#8'TabOrder'#2#1#0#0#0#12'TPageControl'#12'PageControl1'#6'Height'#3
+'ht'#3#20#1#5'Width'#3'D'#1#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alCli' +#20#1#5'Width'#3'D'#1#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alClient'#8
+'ent'#8'TabIndex'#2#0#8'TabOrder'#2#1#0#9'TTabSheet'#9'TabSheet1'#7'Caption' +'TabIndex'#2#0#8'TabOrder'#2#1#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#8'Pr'
+#6#8'Property'#12'ClientHeight'#3#250#0#11'ClientWidth'#3'<'#1#0#6'TLabel'#6 +'operty'#12'ClientHeight'#3#250#0#11'ClientWidth'#3'<'#1#0#6'TLabel'#6'Label'
+'Label1'#4'Left'#2#20#6'Height'#2#14#3'Top'#2#24#5'Width'#2#28#7'Caption'#6#4 +'1'#4'Left'#2#20#6'Height'#2#14#3'Top'#2#24#5'Width'#2#28#7'Caption'#6#4'Nam'
+'Name'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#20#6'Height'#2#14 +'e'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#20#6'Height'#2#14#3
+#3'Top'#2'b'#5'Width'#2#25#7'Caption'#6#4'Type'#11'ParentColor'#8#0#0#5'TEdi' +'Top'#2'b'#5'Width'#2#25#7'Caption'#6#4'Type'#11'ParentColor'#8#0#0#5'TEdit'
+'t'#7'edtName'#4'Left'#2#20#6'Height'#2#23#3'Top'#2'*'#5'Width'#3#16#1#8'Tab' +#7'edtName'#4'Left'#2#20#6'Height'#2#23#3'Top'#2'*'#5'Width'#3#16#1#8'TabOrd'
+'Order'#2#0#0#0#9'TComboBox'#7'edtType'#4'Left'#2#20#6'Height'#2#21#3'Top'#2 +'er'#2#0#0#0#9'TComboBox'#7'edtType'#4'Left'#2#20#6'Height'#2#21#3'Top'#2't'
+'t'#5'Width'#3#16#1#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cb' +#5'Width'#3#16#1#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbact'
+'actSearchAscending'#0#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'#7#14'cs' +'SearchAscending'#0#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'#7#14'csDro'
+'DropDownList'#8'TabOrder'#2#1#0#0#9'TCheckBox'#12'edtAttribute'#4'Left'#2#20 +'pDownList'#8'TabOrder'#2#1#0#0#9'TCheckBox'#12'edtAttribute'#4'Left'#2#20#6
+#6'Height'#2#13#3'Top'#3#170#0#5'Width'#2'e'#7'Caption'#6#18'Attribute Prope' +'Height'#2#13#3'Top'#3#170#0#5'Width'#2'e'#7'Caption'#6#18'Attribute Propert'
+'rty'#8'TabOrder'#2#2#0#0#9'TCheckBox'#11'edtOptional'#4'Left'#2#20#6'Height' +'y'#8'TabOrder'#2#2#0#0#9'TCheckBox'#11'edtOptional'#4'Left'#2#20#6'Height'#2
+#2#13#3'Top'#3#218#0#5'Width'#2'd'#7'Caption'#6#17'Optional property'#10'Fon' +#13#3'Top'#3#218#0#5'Width'#2'i'#7'Caption'#6#17'Optional property'#10'Font.'
+'t.Style'#11#8'fsItalic'#0#8'TabOrder'#2#3#0#0#0#0#11'TActionList'#11'Action' +'Style'#11#8'fsItalic'#0#8'TabOrder'#2#3#0#0#0#0#11'TActionList'#11'ActionLi'
+'List1'#4'left'#2'h'#3'top'#2'h'#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18 +'st1'#4'left'#2'h'#3'top'#2'h'#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'D'
+'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actO' +'isableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOK'
+'KUpdate'#0#0#0#0 +'Update'#0#0#0#0
]); ]);

View File

@ -1888,6 +1888,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Action = actIntfCreate Action = actIntfCreate
OnClick = actIntfCreateExecute OnClick = actIntfCreateExecute
end end
object MenuItem35: TMenuItem
Action = actArrayCreate
OnClick = actArrayCreateExecute
end
object MenuItem12: TMenuItem object MenuItem12: TMenuItem
Caption = '-' Caption = '-'
end end
@ -1989,6 +1993,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
OnExecute = actDeleteExecute OnExecute = actDeleteExecute
OnUpdate = actUpdateObjectUpdate OnUpdate = actUpdateObjectUpdate
end end
object actArrayCreate: TAction
Caption = 'Create Array'
DisableIfNoHandler = True
OnExecute = actArrayCreateExecute
end
end end
object OD: TOpenDialog object OD: TOpenDialog
Title = 'Ouvrir un fichier existant' Title = 'Ouvrir un fichier existant'

View File

@ -292,41 +292,44 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ion'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuI' +'ion'#7#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuI'
+'tem'#10'MenuItem23'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCo' +'tem'#10'MenuItem23'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCo'
+'mpoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem25'#6'Action'#7#13'actIntf' +'mpoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem25'#6'Action'#7#13'actIntf'
+'Create'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem1' +'Create'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem3'
+'2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem13'#6'Action'#7#15'actUpda' +'5'#6'Action'#7#14'actArrayCreate'#7'OnClick'#7#21'actArrayCreateExecute'#0#0
+'teObject'#7'Caption'#6#13'Update Object'#7'OnClick'#7#22'actUpdateObjectExe' +#9'TMenuItem'#10'MenuItem12'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem1'
+'cute'#0#0#9'TMenuItem'#10'MenuItem34'#6'Action'#7#9'actDelete'#7'OnClick'#7 +'3'#6'Action'#7#15'actUpdateObject'#7'Caption'#6#13'Update Object'#7'OnClick'
+#16'actDeleteExecute'#0#0#0#9'TMenuItem'#9'MenuItem6'#6'Action'#7#8'actAbout' +#7#22'actUpdateObjectExecute'#0#0#9'TMenuItem'#10'MenuItem34'#6'Action'#7#9
+#7'Caption'#6#6'&About'#7'OnClick'#7#15'actAboutExecute'#0#0#0#11'TActionLis' +'actDelete'#7'OnClick'#7#16'actDeleteExecute'#0#0#0#9'TMenuItem'#9'MenuItem6'
+'t'#2'AL'#4'left'#3'X'#1#3'top'#2'8'#0#7'TAction'#11'actOpenFile'#7'Caption' +#6'Action'#7#8'actAbout'#7'Caption'#6#6'&About'#7'OnClick'#7#15'actAboutExec'
+#6#9'Open File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18'actOpenFileExecut' +'ute'#0#0#0#11'TActionList'#2'AL'#4'left'#3'X'#1#3'top'#2'8'#0#7'TAction'#11
+'e'#0#0#7'TAction'#7'actExit'#7'Caption'#6#4'Exit'#18'DisableIfNoHandler'#9#9 +'actOpenFile'#7'Caption'#6#9'Open File'#18'DisableIfNoHandler'#9#9'OnExecute'
+'OnExecute'#7#14'actExitExecute'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24 +#7#18'actOpenFileExecute'#0#0#7'TAction'#7'actExit'#7'Caption'#6#4'Exit'#18
+'Save generated files ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExp' +'DisableIfNoHandler'#9#9'OnExecute'#7#14'actExitExecute'#0#0#7'TAction'#9'ac'
+'ortExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7 +'tExport'#7'Caption'#6#24'Save generated files ...'#18'DisableIfNoHandler'#9
+'Caption'#6#5'About'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExec' +#9'OnExecute'#7#16'actExportExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7
+'ute'#0#0#7'TAction'#9'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfN' +'TAction'#8'actAbout'#7'Caption'#6#5'About'#18'DisableIfNoHandler'#9#9'OnExe'
+'oHandler'#9#9'OnExecute'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportU' +'cute'#7#15'actAboutExecute'#0#0#7'TAction'#9'actSaveAs'#7'Caption'#6#11'Sav'
+'pdate'#0#0#7'TAction'#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration' +'e As ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actSaveAsExecute'#8'On'
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAct' +'Update'#7#15'actExportUpdate'#0#0#7'TAction'#13'actEnumCreate'#7'Caption'#6
+'ion'#15'actUpdateObject'#7'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9 +#18'Create Enumeration'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actEnumCr'
+'OnExecute'#7#22'actUpdateObjectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpd' +'eateExecute'#0#0#7'TAction'#15'actUpdateObject'#7'Caption'#6#6'Update'#18'D'
+'ate'#0#0#7'TAction'#14'actRefreshView'#7'Caption'#6#14'&Refresh Views'#18'D' +'isableIfNoHandler'#9#9'OnExecute'#7#22'actUpdateObjectExecute'#8'OnUpdate'#7
+'isableIfNoHandler'#9#9'OnExecute'#7#21'actRefreshViewExecute'#0#0#7'TAction' +#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actRefreshView'#7'Caption'#6#14
+#10'actNewFile'#7'Caption'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecut' +'&Refresh Views'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'actRefreshViewEx'
+'e'#7#17'actNewFileExecute'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6 +'ecute'#0#0#7'TAction'#10'actNewFile'#7'Caption'#6#8'New File'#18'DisableIfN'
+#20'Create Compound Type'#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actComp' +'oHandler'#9#9'OnExecute'#7#17'actNewFileExecute'#0#0#7'TAction'#17'actCompo'
+'oundCreateExecute'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create ' +'undCreate'#7'Caption'#6#20'Create Compound Type'#18'DisableIfNoHandler'#9#9
+'Interface'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actIntfCreateExecute' +'OnExecute'#7#24'actCompoundCreateExecute'#0#0#7'TAction'#13'actIntfCreate'#7
+#0#0#7'TAction'#13'actFullExpand'#7'Caption'#6#11'Full expand'#18'DisableIfN' +'Caption'#6#16'Create Interface'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20
+'oHandler'#9#9'OnExecute'#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFu' +'actIntfCreateExecute'#0#0#7'TAction'#13'actFullExpand'#7'Caption'#6#11'Full'
+'llCollapse'#7'Caption'#6#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExe' +' expand'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actFullExpandExecute'#0
,'cute'#7#22'actFullCollapseExecute'#0#0#7'TAction'#7'actSave'#7'Caption'#6#4 ,#0#7'TAction'#15'actFullCollapse'#7'Caption'#6#13'Full Collapse'#18'DisableI'
+'Save'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actSaveExecute'#0#0#7'TAct' +'fNoHandler'#9#9'OnExecute'#7#22'actFullCollapseExecute'#0#0#7'TAction'#7'ac'
+'ion'#9'actDelete'#7'Caption'#6#6'Delete'#18'DisableIfNoHandler'#9#9'OnExecu' +'tSave'#7'Caption'#6#4'Save'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actS'
+'te'#7#16'actDeleteExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#0#11 +'aveExecute'#0#0#7'TAction'#9'actDelete'#7'Caption'#6#6'Delete'#18'DisableIf'
+'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un fichier existant'#6'Filter'#6'3W' +'NoHandler'#9#9'OnExecute'#7#16'actDeleteExecute'#8'OnUpdate'#7#21'actUpdate'
+'DSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.pas'#11'FilterIndex'#2#0#10 +'ObjectUpdate'#0#0#7'TAction'#14'actArrayCreate'#7'Caption'#6#12'Create Arra'
+'y'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'actArrayCreateExecute'#0#0#0
+#11'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un fichier existant'#6'Filter'#6
+'3WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.pas'#11'FilterIndex'#2#0#10
+'InitialDir'#6#2'.\'#7'Options'#11#15'ofPathMustExist'#15'ofFileMustExist'#14 +'InitialDir'#6#2'.\'#7'Options'#11#15'ofPathMustExist'#15'ofFileMustExist'#14
+'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#153#1#3'top'#2'X'#0#0#10'TSynP' +'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#153#1#3'top'#2'X'#0#0#10'TSynP'
+'asSyn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlue' +'asSyn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlue'

View File

@ -38,6 +38,7 @@ type
actFullExpand: TAction; actFullExpand: TAction;
actFullCollapse: TAction; actFullCollapse: TAction;
actDelete : TAction; actDelete : TAction;
actArrayCreate : TAction;
actSave : TAction; actSave : TAction;
actNewFile: TAction; actNewFile: TAction;
actRefreshView: TAction; actRefreshView: TAction;
@ -71,6 +72,7 @@ type
MenuItem32: TMenuItem; MenuItem32: TMenuItem;
MenuItem33 : TMenuItem; MenuItem33 : TMenuItem;
MenuItem34 : TMenuItem; MenuItem34 : TMenuItem;
MenuItem35 : TMenuItem;
MenuItem5: TMenuItem; MenuItem5: TMenuItem;
MenuItem6: TMenuItem; MenuItem6: TMenuItem;
MenuItem7 : TMenuItem; MenuItem7 : TMenuItem;
@ -105,6 +107,7 @@ type
tsProxy: TTabSheet; tsProxy: TTabSheet;
trvSchema: TTreeView; trvSchema: TTreeView;
procedure actAboutExecute(Sender: TObject); procedure actAboutExecute(Sender: TObject);
procedure actArrayCreateExecute(Sender : TObject);
procedure actCompoundCreateExecute(Sender: TObject); procedure actCompoundCreateExecute(Sender: TObject);
procedure actDeleteExecute (Sender : TObject ); procedure actDeleteExecute (Sender : TObject );
procedure actEnumCreateExecute(Sender: TObject); procedure actEnumCreateExecute(Sender: TObject);
@ -532,6 +535,16 @@ begin
end; end;
end; end;
procedure TfWstTypeLibraryEdit.actArrayCreateExecute(Sender : TObject);
var
e : TPasArrayType;
begin
e := CreateArray(FSymbolTable);
if Assigned(e) then begin
FindPainter(e).Paint(FSymbolTable,e,GetTypeNode());
end;
end;
procedure TfWstTypeLibraryEdit.actCompoundCreateExecute(Sender: TObject); procedure TfWstTypeLibraryEdit.actCompoundCreateExecute(Sender: TObject);
var var
e : TPasClassType; e : TPasClassType;

View File

@ -235,6 +235,13 @@ type
class function CanHandle(AObj : TObject):Boolean;override; class function CanHandle(AObj : TObject):Boolean;override;
end; end;
{ TArrayTypeDefinitionPainter }
TArrayTypeDefinitionPainter = class(TTypeSymbolPainter)
public
class function CanHandle(AObj : TObject):Boolean;override;
end;
{ TMethodDefinitionPainter } { TMethodDefinitionPainter }
TMethodDefinitionPainter = class(TTypeSymbolPainter) TMethodDefinitionPainter = class(TTypeSymbolPainter)
@ -287,6 +294,13 @@ type
class function CanHandle(AObj : TObject):Boolean;override; class function CanHandle(AObj : TObject):Boolean;override;
end; end;
{ TArrayTypeDefinitionPainter }
class function TArrayTypeDefinitionPainter.CanHandle(AObj : TObject) : Boolean;
begin
Result := ( inherited CanHandle(AObj) ) and AObj.InheritsFrom(TPasArrayType);
end;
{ TBindingPainter } { TBindingPainter }
function TBindingPainter.Paint( function TBindingPainter.Paint(
@ -541,7 +555,6 @@ begin
Result := ( inherited CanHandle(AObj) ) and Result := ( inherited CanHandle(AObj) ) and
( AObj.InheritsFrom(TPasClassType) and ( TPasClassType(AObj).ObjKind = okClass ) ) and ( AObj.InheritsFrom(TPasClassType) and ( TPasClassType(AObj).ObjKind = okClass ) ) and
( not AObj.InheritsFrom(TPasNativeClassType) ); ( not AObj.InheritsFrom(TPasNativeClassType) );
end; end;
{ TEnumTypeDefinitionPainter } { TEnumTypeDefinitionPainter }
@ -708,7 +721,8 @@ initialization
FPainterRegistryInst.RegisterHandler(TInterfaceDefinitionPainter); FPainterRegistryInst.RegisterHandler(TInterfaceDefinitionPainter);
FPainterRegistryInst.RegisterHandler(TMethodDefinitionPainter); FPainterRegistryInst.RegisterHandler(TMethodDefinitionPainter);
FPainterRegistryInst.RegisterHandler(TPasNativeSimpleTypePainter); FPainterRegistryInst.RegisterHandler(TPasNativeSimpleTypePainter);
FPainterRegistryInst.RegisterHandler(TBindingPainter) FPainterRegistryInst.RegisterHandler(TBindingPainter);
FPainterRegistryInst.RegisterHandler(TArrayTypeDefinitionPainter);
finalization finalization
FreeAndNil(FPainterRegistryInst); FreeAndNil(FPainterRegistryInst);

View File

@ -109,6 +109,8 @@ type
function GetArrayItemName(AArray : TPasArrayType) : string; function GetArrayItemName(AArray : TPasArrayType) : string;
function GetArrayItemExternalName(AArray : TPasArrayType) : string; function GetArrayItemExternalName(AArray : TPasArrayType) : string;
function GetArrayStyle(AArray : TPasArrayType) : TArrayStyle; function GetArrayStyle(AArray : TPasArrayType) : TArrayStyle;
procedure SetArrayStyle(AArray : TPasArrayType; const AStyle : TArrayStyle);
procedure SetArrayItemExternalName(AArray : TPasArrayType; const AExternalName : string);
function FindElement(const AName: String): TPasElement; override; function FindElement(const AName: String): TPasElement; override;
function FindElementInModule(const AName: String; AModule: TPasModule): TPasElement; function FindElementInModule(const AName: String; AModule: TPasModule): TPasElement;
function FindModule(const AName: String): TPasModule;override; function FindModule(const AName: String): TPasModule;override;
@ -493,6 +495,25 @@ begin
Result := asScoped; Result := asScoped;
end; end;
procedure TwstPasTreeContainer.SetArrayStyle(
AArray : TPasArrayType;
const AStyle : TArrayStyle
);
begin
if ( AStyle = asEmbeded ) then
Properties.SetValue(AArray,sARRAY_STYLE,sARRAY_STYLE_EMBEDDED)
else
Properties.SetValue(AArray,sARRAY_STYLE,sARRAY_STYLE_SCOPED);
end;
procedure TwstPasTreeContainer.SetArrayItemExternalName(
AArray : TPasArrayType;
const AExternalName : string
);
begin
Properties.SetValue(AArray,sARRAY_ITEM_EXT_NAME,AExternalName);
end;
function TwstPasTreeContainer.FindElementInModule(const AName: String; AModule : TPasModule): TPasElement; function TwstPasTreeContainer.FindElementInModule(const AName: String; AModule : TPasModule): TPasElement;
var var
decs : TList; decs : TList;

View File

@ -205,13 +205,19 @@ procedure TXmlRpcCallMaker.MakeCall(
); );
var var
rqt, rsps : TMemoryStream; rqt, rsps : TMemoryStream;
propMngr : IPropertyManager;
begin begin
Assert(Assigned(ASerializer)); Assert(Assigned(ASerializer));
Assert(Assigned(ATransport)); Assert(Assigned(ATransport));
ATransport.GetPropertyManager().SetProperty( propMngr := ATransport.GetPropertyManager();
propMngr.SetProperty(
sCONTENT_TYPE, sCONTENT_TYPE,
ASerializer.GetPropertyManager().GetProperty(sCONTENT_TYPE) ASerializer.GetPropertyManager().GetProperty(sCONTENT_TYPE)
); );
propMngr.SetProperty(
sFORMAT,
sPROTOCOL_NAME
);
rsps := nil; rsps := nil;
rqt := TMemoryStream.Create(); rqt := TMemoryStream.Create();
try try