+ TStringBufferRemotable = reading a node's raw buffer

+ Better Delphi support : client & server( new )
    - SOAP, XMLRPC and BINARY formats

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@212 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2007-07-12 14:46:45 +00:00
parent d5bf30839b
commit 65f4a3dffd
84 changed files with 10759 additions and 7663 deletions

View File

@ -9,6 +9,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit base_binary_formatter; unit base_binary_formatter;
interface interface
@ -311,6 +312,7 @@ type
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
var AData var AData
); );
function ReadBuffer(const AName : string) : string;
procedure SaveToStream(AStream : TStream); procedure SaveToStream(AStream : TStream);
procedure LoadFromStream(AStream : TStream); procedure LoadFromStream(AStream : TStream);
@ -1193,7 +1195,7 @@ procedure TBaseBinaryFormatter.PutScopeInnerValue(
); );
var var
int64SData : Int64; int64SData : Int64;
int64UData : QWord; {$IFDEF FPC}int64UData : QWord;{$ENDIF}
strData : string; strData : string;
boolData : Boolean; boolData : Boolean;
enumData : TEnumData; enumData : TEnumData;
@ -1478,6 +1480,25 @@ begin
end; end;
end; end;
function TBaseBinaryFormatter.ReadBuffer (const AName : string ) : string;
Var
locStore : IDataStore;
bffr : PDataBuffer;
locName : string;
locStream : TStringStream;
begin
locName := AName;
bffr := GetDataBuffer(locName);
locStream := TStringStream.Create('');
try
locStore := CreateBinaryWriter(locStream);
SaveObjectToStream(bffr,locStore);
Result := locStream.DataString;
finally
locStream.Free();
end;
end;
procedure TBaseBinaryFormatter.SaveToStream(AStream: TStream); procedure TBaseBinaryFormatter.SaveToStream(AStream: TStream);
Var Var
locStore : IDataStore; locStore : IDataStore;

View File

@ -10,6 +10,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit base_service_intf; unit base_service_intf;
interface interface
@ -90,7 +91,7 @@ type
IItemFactoryEx = interface(IItemFactory) IItemFactoryEx = interface(IItemFactory)
['{66B77926-7E45-4780-8FFB-FB78625EDC1D}'] ['{66B77926-7E45-4780-8FFB-FB78625EDC1D}']
procedure ReleaseInstance(var AInstance : IInterface); procedure ReleaseInstance(var AInstance);
function GetPropertyManager( function GetPropertyManager(
const APropertyGroup : string; const APropertyGroup : string;
const ACreateIfNotExists : Boolean const ACreateIfNotExists : Boolean
@ -178,6 +179,7 @@ type
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
var AData var AData
); );
function ReadBuffer(const AName : string) : string;
procedure SaveToStream(AStream : TStream); procedure SaveToStream(AStream : TStream);
procedure LoadFromStream(AStream : TStream); procedure LoadFromStream(AStream : TStream);
@ -232,6 +234,29 @@ type
TAbstractSimpleRemotable = class(TBaseRemotable) TAbstractSimpleRemotable = class(TBaseRemotable)
end; end;
{ TStringBufferRemotable }
TStringBufferRemotable = class(TAbstractSimpleRemotable)
private
FData : string;
public
class procedure Save(
AObject : TBaseRemotable;
AStore : IFormatterBase;
const AName : string;
const ATypeInfo : PTypeInfo
);override;
class procedure Load(
var AObject : TObject;
AStore : IFormatterBase;
var AName : string;
const ATypeInfo : PTypeInfo
);override;
procedure Assign(Source: TPersistent); override;
property Data : string read FData write FData;
end;
{ TBaseDateRemotable } { TBaseDateRemotable }
TBaseDateRemotable = class(TAbstractSimpleRemotable) TBaseDateRemotable = class(TAbstractSimpleRemotable)
@ -1049,7 +1074,7 @@ type
procedure SetPoolMin(const AValue: PtrInt); procedure SetPoolMin(const AValue: PtrInt);
protected protected
function CreateInstance():IInterface;override; function CreateInstance():IInterface;override;
procedure ReleaseInstance(var AInstance : IInterface);virtual; procedure ReleaseInstance(var AInstance);virtual;
function GetPropertyManager( function GetPropertyManager(
const APropertyGroup : string; const APropertyGroup : string;
const ACreateIfNotExists : Boolean const ACreateIfNotExists : Boolean
@ -2121,12 +2146,16 @@ begin
end; end;
end; end;
procedure TSimpleItemFactoryEx.ReleaseInstance(var AInstance: IInterface); procedure TSimpleItemFactoryEx.ReleaseInstance(var AInstance);
var
tmpIntf : IInterface;
begin begin
tmpIntf := IInterface(AInstance);
Pointer(AInstance) := nil;
if Pooled then begin if Pooled then begin
FPool.Release(AInstance); FPool.Release(tmpIntf);
end else begin end else begin
AInstance := nil; tmpIntf := nil;
end; end;
end; end;
@ -3660,7 +3689,7 @@ Var
strData : String; strData : String;
objData : TObject; objData : TObject;
objDataCreateHere : Boolean; objDataCreateHere : Boolean;
boolData : Boolean; {$IFDEF FPC}boolData : Boolean;{$ENDIF}
p : PPropInfo; p : PPropInfo;
enumData : TEnumBuffer; enumData : TEnumBuffer;
floatDt : TFloatExtendedType; floatDt : TFloatExtendedType;
@ -4380,6 +4409,55 @@ begin
end; end;
end; end;
{ TStringBufferRemotable }
class procedure TStringBufferRemotable.Save (
AObject : TBaseRemotable;
AStore : IFormatterBase;
const AName : string;
const ATypeInfo : PTypeInfo
);
var
buffer : string;
begin
if ( AObject <> nil ) then
buffer := TStringBufferRemotable(AObject).Data
else
buffer := '';
AStore.Put(AName,TypeInfo(string),buffer);
end;
class procedure TStringBufferRemotable.Load (
var AObject : TObject;
AStore : IFormatterBase;
var AName : string;
const ATypeInfo : PTypeInfo
);
var
buffer : string;
locObj : TStringBufferRemotable;
begin
buffer := AStore.ReadBuffer(AName);
if ( AObject = nil ) then
AObject := Create();
writeLn;writeLn(AObject.ClassName);
locObj := AObject as TStringBufferRemotable;;
locObj.Data := buffer;
end;
procedure TStringBufferRemotable.Assign (Source : TPersistent );
begin
if ( Source = nil ) then begin
FData := '';
end else begin
if Source.InheritsFrom(TStringBufferRemotable) then
Self.Data := TStringBufferRemotable(Source).Data
else
inherited Assign(Source);
end;
end;
initialization initialization
TypeRegistryInstance := TTypeRegistry.Create(); TypeRegistryInstance := TTypeRegistry.Create();
SerializeOptionsRegistryInstance := TSerializeOptionsRegistry.Create(); SerializeOptionsRegistryInstance := TSerializeOptionsRegistry.Create();

View File

@ -10,20 +10,19 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit base_soap_formatter; unit base_soap_formatter;
{$mode objfpc}{$H+}
{$IF (FPC_VERSION = 2) and (FPC_RELEASE > 0)}
{$define FPC_211}
{$ENDIF}
interface interface
uses uses
Classes, SysUtils, TypInfo, Contnrs, Classes, SysUtils, TypInfo, Contnrs,
DOM, {$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
base_service_intf; base_service_intf;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
const const
sPROTOCOL_NAME = 'SOAP'; sPROTOCOL_NAME = 'SOAP';
@ -43,7 +42,9 @@ const
sHEADER = 'Header'; sHEADER = 'Header';
sENVELOPE = 'Envelope'; sENVELOPE = 'Envelope';
Type type
TwstXMLDocument = {$IFNDEF FPC}wst_delphi_xml.TXMLDocument{$ELSE}TXMLDocument{$ENDIF};
TEnumIntType = Int64; TEnumIntType = Int64;
@ -133,7 +134,7 @@ Type
FHeaderEnterCount : Integer; FHeaderEnterCount : Integer;
FNameSpaceCounter : Integer; FNameSpaceCounter : Integer;
FDoc : TXMLDocument; FDoc : TwstXMLDocument;
FStack : TObjectStack; FStack : TObjectStack;
FKeepedStyle : TSOAPDocumentStyle; FKeepedStyle : TSOAPDocumentStyle;
@ -156,11 +157,13 @@ Type
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Const AData : TEnumIntType Const AData : TEnumIntType
):TDOMNode; ):TDOMNode;
{$IFDEF FPC}
function PutBool( function PutBool(
Const AName : String; Const AName : String;
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Const AData : Boolean Const AData : Boolean
):TDOMNode; ):TDOMNode;
{$ENDIF}
function PutInt64( function PutInt64(
Const AName : String; Const AName : String;
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
@ -188,6 +191,7 @@ Type
Var AName : String; Var AName : String;
Var AData : TEnumIntType Var AData : TEnumIntType
); );
{$IFDEF FPC}
procedure GetBool( procedure GetBool(
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Var AName : String; Var AName : String;
@ -198,6 +202,7 @@ Type
Var AName : String; Var AName : String;
Var AData : Integer Var AData : Integer
); );
{$ENDIF}
procedure GetInt64( procedure GetInt64(
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Var AName : String; Var AName : String;
@ -219,7 +224,7 @@ Type
Var AData : TObject Var AData : TObject
); );
protected protected
function GetXmlDoc():TXMLDocument; function GetXmlDoc():TwstXMLDocument;
function PushStack(AScopeObject : TDOMNode):TStackItem;overload; function PushStack(AScopeObject : TDOMNode):TStackItem;overload;
function PushStack( function PushStack(
AScopeObject : TDOMNode; AScopeObject : TDOMNode;
@ -326,12 +331,13 @@ Type
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
var AData var AData
); );
function ReadBuffer(const AName : string) : string;
procedure SaveToStream(AStream : TStream); procedure SaveToStream(AStream : TStream);
procedure LoadFromStream(AStream : TStream); procedure LoadFromStream(AStream : TStream);
procedure Error(Const AMsg:string); procedure Error(Const AMsg:string);overload;
procedure Error(Const AMsg:string; Const AArgs : array of const); procedure Error(Const AMsg:string; Const AArgs : array of const);overload;
Published Published
property EncodingStyle : TSOAPEncodingStyle Read FEncodingStyle Write FEncodingStyle; property EncodingStyle : TSOAPEncodingStyle Read FEncodingStyle Write FEncodingStyle;
property ContentType : string Read FContentType Write FContentType; property ContentType : string Read FContentType Write FContentType;
@ -340,24 +346,8 @@ Type
{$M-} {$M-}
implementation implementation
Uses XMLWrite, XMLRead, StrUtils, Uses {$IFNDEF FPC}XMLDoc,XMLIntf,{$ELSE}XMLWrite, XMLRead,wst_fpc_xml,{$ENDIF}
imp_utils; StrUtils, imp_utils;
function GetNodeItemsCount(const ANode : TDOMNode): Integer;
var
chdLst : TDOMNodeList;
begin
if ANode.HasChildNodes then begin
chdLst := ANode.ChildNodes;
try
Result := chdLst.Count
finally
chdLst.Release();
end;
end else begin
Result := 0;
end;
end;
{ TStackItem } { TStackItem }
@ -396,7 +386,11 @@ end;
function TObjectStackItem.FindNode(var ANodeName: string): TDOMNode; function TObjectStackItem.FindNode(var ANodeName: string): TDOMNode;
begin begin
Result:= ScopeObject.FindNode(ANodeName); {$IFNDEF FPC}
Result := wst_delphi_xml.FindNode(ScopeObject,ANodeName);
{$ELSE}
Result := ScopeObject.FindNode(ANodeName);
{$ENDIF}
end; end;
{ TAbstractArrayStackItem } { TAbstractArrayStackItem }
@ -412,7 +406,7 @@ function TAbstractArrayStackItem.GetItemsCount(): Integer;
begin begin
EnsureListCreated(); EnsureListCreated();
if Assigned(FItemList) then begin if Assigned(FItemList) then begin
Result := FItemList.Count; Result := GetNodeListCount(FItemList);
end else begin end else begin
Result := 0; Result := 0;
end; end;
@ -431,14 +425,14 @@ end;
destructor TAbstractArrayStackItem.Destroy(); destructor TAbstractArrayStackItem.Destroy();
begin begin
if Assigned(FItemList) then if Assigned(FItemList) then
FItemList.Release(); ReleaseDomNode(FItemList);
inherited Destroy(); inherited Destroy();
end; end;
function TAbstractArrayStackItem.FindNode(var ANodeName: string): TDOMNode; function TAbstractArrayStackItem.FindNode(var ANodeName: string): TDOMNode;
begin begin
EnsureListCreated(); EnsureListCreated();
if ( FIndex >= FItemList.Count ) then if ( FIndex >= GetNodeListCount(FItemList) ) then
raise ESOAPException.CreateFmt('Index out of bound : %d; Node Name = "%s"; Parent Node = "%s"',[FIndex,ANodeName,ScopeObject.NodeName]); raise ESOAPException.CreateFmt('Index out of bound : %d; Node Name = "%s"; Parent Node = "%s"',[FIndex,ANodeName,ScopeObject.NodeName]);
Result:= FItemList.Item[FIndex]; Result:= FItemList.Item[FIndex];
Inc(FIndex); Inc(FIndex);
@ -520,9 +514,9 @@ end;
procedure TSOAPBaseFormatter.InternalClear(const ACreateDoc: Boolean); procedure TSOAPBaseFormatter.InternalClear(const ACreateDoc: Boolean);
begin begin
ClearStack(); ClearStack();
FreeAndNil(FDoc); ReleaseDomNode(FDoc);
if ACreateDoc then if ACreateDoc then
FDoc := TXMLDocument.Create(); FDoc := CreateDoc();
end; end;
function TSOAPBaseFormatter.NextNameSpaceCounter(): Integer; function TSOAPBaseFormatter.NextNameSpaceCounter(): Integer;
@ -533,7 +527,7 @@ end;
function TSOAPBaseFormatter.HasScope(): Boolean; function TSOAPBaseFormatter.HasScope(): Boolean;
begin begin
Result := Assigned(FStack.Peek); Result := FStack.AtLeast(1);
end; end;
function TSOAPBaseFormatter.FindAttributeByValueInNode( function TSOAPBaseFormatter.FindAttributeByValueInNode(
@ -705,6 +699,7 @@ begin
); );
end; end;
{$IFDEF FPC}
function TSOAPBaseFormatter.PutBool( function TSOAPBaseFormatter.PutBool(
const AName : String; const AName : String;
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
@ -713,6 +708,7 @@ function TSOAPBaseFormatter.PutBool(
begin begin
Result := InternalPutData(AName,ATypeInfo,LowerCase(BoolToStr(AData))); Result := InternalPutData(AName,ATypeInfo,LowerCase(BoolToStr(AData)));
end; end;
{$ENDIF}
function TSOAPBaseFormatter.PutInt64( function TSOAPBaseFormatter.PutInt64(
const AName : String; const AName : String;
@ -811,6 +807,7 @@ begin
AData := GetEnumValue(ATypeInfo,locBuffer) AData := GetEnumValue(ATypeInfo,locBuffer)
End; End;
{$IFDEF FPC}
procedure TSOAPBaseFormatter.GetBool( procedure TSOAPBaseFormatter.GetBool(
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
var AName : String; var AName : String;
@ -834,6 +831,7 @@ procedure TSOAPBaseFormatter.GetInt(
begin begin
AData := StrToIntDef(Trim(GetNodeValue(AName)),0); AData := StrToIntDef(Trim(GetNodeValue(AName)),0);
end; end;
{$ENDIF}
procedure TSOAPBaseFormatter.GetInt64( procedure TSOAPBaseFormatter.GetInt64(
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
@ -871,7 +869,7 @@ begin
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo); TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo);
end; end;
function TSOAPBaseFormatter.GetXmlDoc(): TXMLDocument; function TSOAPBaseFormatter.GetXmlDoc(): TwstXMLDocument;
begin begin
Result := FDoc; Result := FDoc;
end; end;
@ -904,13 +902,12 @@ begin
Inherited Create(); Inherited Create();
FContentType := sSOAP_CONTENT_TYPE; FContentType := sSOAP_CONTENT_TYPE;
FStack := TObjectStack.Create(); FStack := TObjectStack.Create();
FDoc := TXMLDocument.Create(); FDoc := CreateDoc();
FDoc.Encoding := 'UTF-8';
end; end;
destructor TSOAPBaseFormatter.Destroy(); destructor TSOAPBaseFormatter.Destroy();
begin begin
FDoc.Free(); ReleaseDomNode(FDoc);
ClearStack(); ClearStack();
FStack.Free(); FStack.Free();
inherited Destroy(); inherited Destroy();
@ -1215,7 +1212,7 @@ end;
procedure TSOAPBaseFormatter.Prepare(); procedure TSOAPBaseFormatter.Prepare();
var var
locDoc : TDOMDocument; locDoc : TwstXMLDocument;
begin begin
locDoc := GetXmlDoc(); locDoc := GetXmlDoc();
if Assigned(locDoc.DocumentElement) and if Assigned(locDoc.DocumentElement) and
@ -1282,7 +1279,7 @@ begin
end; end;
end; end;
finally finally
chdLst.Release(); ReleaseDomNode(chdLst);
end; end;
end; end;
finally finally
@ -1339,17 +1336,17 @@ Var
int64Data : Int64; int64Data : Int64;
strData : string; strData : string;
objData : TObject; objData : TObject;
boolData : Boolean; {$IFDEF FPC}boolData : Boolean;{$ENDIF}
enumData : TEnumIntType; enumData : TEnumIntType;
floatDt : Extended; floatDt : Extended;
begin begin
Case ATypeInfo^.Kind Of Case ATypeInfo^.Kind Of
tkInt64, tkQWord : tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
Begin Begin
int64Data := Int64(AData); int64Data := Int64(AData);
PutInt64(AName,ATypeInfo,int64Data); PutInt64(AName,ATypeInfo,int64Data);
End; End;
tkLString, tkAString : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
Begin Begin
strData := String(AData); strData := String(AData);
PutStr(AName,ATypeInfo,strData); PutStr(AName,ATypeInfo,strData);
@ -1359,11 +1356,13 @@ begin
objData := TObject(AData); objData := TObject(AData);
PutObj(AName,ATypeInfo,objData); PutObj(AName,ATypeInfo,objData);
End; End;
{$IFDEF FPC}
tkBool : tkBool :
Begin Begin
boolData := Boolean(AData); boolData := Boolean(AData);
PutBool(AName,ATypeInfo,boolData); PutBool(AName,ATypeInfo,boolData);
End; End;
{$ENDIF}
tkInteger, tkEnumeration : tkInteger, tkEnumeration :
Begin Begin
enumData := 0; enumData := 0;
@ -1401,10 +1400,11 @@ procedure TSOAPBaseFormatter.PutScopeInnerValue(
); );
Var Var
int64SData : Int64; int64SData : Int64;
int64UData : QWord; {$IFDEF FPC}
int64UData : QWord;
boolData : Boolean;
{$ENDIF}
strData : string; strData : string;
objData : TObject;
boolData : Boolean;
enumData : TEnumIntType; enumData : TEnumIntType;
floatDt : Extended; floatDt : Extended;
dataBuffer : string; dataBuffer : string;
@ -1418,12 +1418,14 @@ begin
int64SData := Int64(AData); int64SData := Int64(AData);
dataBuffer := IntToStr(int64SData); dataBuffer := IntToStr(int64SData);
end; end;
{$IFDEF FPC}
tkQWord : tkQWord :
begin begin
int64UData := QWord(AData); int64UData := QWord(AData);
dataBuffer := IntToStr(int64UData); dataBuffer := IntToStr(int64UData);
end; end;
tkLString, tkAString : {$ENDIF}
tkLString{$IFDEF FPC},tkAString{$ENDIF} :
begin begin
strData := string(AData); strData := string(AData);
dataBuffer := strData; dataBuffer := strData;
@ -1432,11 +1434,13 @@ begin
begin begin
raise ESOAPException.Create('Inner Scope value must be a "simple type" value.'); raise ESOAPException.Create('Inner Scope value must be a "simple type" value.');
end; end;
{$IFDEF FPC}
tkBool : tkBool :
begin begin
boolData := Boolean(AData); boolData := Boolean(AData);
dataBuffer := BoolToStr(boolData); dataBuffer := BoolToStr(boolData);
end; end;
{$ENDIF}
tkInteger : tkInteger :
begin begin
case GetTypeData(ATypeInfo)^.OrdType of case GetTypeData(ATypeInfo)^.OrdType of
@ -1511,18 +1515,18 @@ Var
int64Data : Int64; int64Data : Int64;
strData : string; strData : string;
objData : TObject; objData : TObject;
boolData : Boolean; {$IFDEF FPC}boolData : Boolean;{$ENDIF}
enumData : TEnumIntType; enumData : TEnumIntType;
floatDt : Extended; floatDt : Extended;
begin begin
Case ATypeInfo^.Kind Of Case ATypeInfo^.Kind Of
tkInt64,tkQWord : tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
Begin Begin
int64Data := 0; int64Data := 0;
GetInt64(ATypeInfo,AName,int64Data); GetInt64(ATypeInfo,AName,int64Data);
Int64(AData) := int64Data; Int64(AData) := int64Data;
End; End;
tkLString, tkAString : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
Begin Begin
strData := ''; strData := '';
GetStr(ATypeInfo,AName,strData); GetStr(ATypeInfo,AName,strData);
@ -1534,12 +1538,14 @@ begin
GetObj(ATypeInfo,AName,objData); GetObj(ATypeInfo,AName,objData);
TObject(AData) := objData; TObject(AData) := objData;
End; End;
{$IFDEF FPC}
tkBool : tkBool :
Begin Begin
boolData := False; boolData := False;
GetBool(ATypeInfo,AName,boolData); GetBool(ATypeInfo,AName,boolData);
Boolean(AData) := boolData; Boolean(AData) := boolData;
End; End;
{$ENDIF}
tkInteger, tkEnumeration : tkInteger, tkEnumeration :
Begin Begin
enumData := 0; enumData := 0;
@ -1589,13 +1595,15 @@ begin
dataBuffer := StackTop().ScopeObject.NodeValue; dataBuffer := StackTop().ScopeObject.NodeValue;
Case ATypeInfo^.Kind Of Case ATypeInfo^.Kind Of
tkInt64 : Int64(AData) := StrToInt64Def(Trim(dataBuffer),0); tkInt64 : Int64(AData) := StrToInt64Def(Trim(dataBuffer),0);
{$IFDEF FPC}
tkQWord : QWord(AData) := StrToInt64Def(Trim(dataBuffer),0); tkQWord : QWord(AData) := StrToInt64Def(Trim(dataBuffer),0);
tkLString, {$ENDIF}
tkAString : string(AData) := dataBuffer; tkLString{$IFDEF FPC},tkAString{$ENDIF} : string(AData) := dataBuffer;
tkClass : tkClass :
begin begin
raise ESOAPException.Create('Inner Scope value must be a "simple type" value.'); raise ESOAPException.Create('Inner Scope value must be a "simple type" value.');
end; end;
{$IFDEF FPC}
tkBool : tkBool :
begin begin
dataBuffer := LowerCase(Trim(dataBuffer)); dataBuffer := LowerCase(Trim(dataBuffer));
@ -1604,6 +1612,7 @@ begin
else else
Boolean(AData) := StrToBool(dataBuffer); Boolean(AData) := StrToBool(dataBuffer);
end; end;
{$ENDIF}
tkInteger, tkEnumeration : tkInteger, tkEnumeration :
begin begin
if ( ATypeInfo^.Kind = tkInteger ) then if ( ATypeInfo^.Kind = tkInteger ) then
@ -1633,6 +1642,34 @@ begin
end; end;
end; end;
function TSOAPBaseFormatter.ReadBuffer (const AName : string ) : string;
Var
locElt : TDOMNode;
namespaceShortName, strNodeName, s : string;
begin
strNodeName := AName;
if ( Style = Document ) then begin
namespaceShortName := Copy(FindAttributeByValueInScope(StackTop().NameSpace),AnsiPos(':',namespaceShortName) + 1,MaxInt);
if not IsStrEmpty(namespaceShortName) then begin
s := ExtractNameSpaceShortName(namespaceShortName);
if not IsStrEmpty(s) then
strNodeName := s + ':' + strNodeName;
end;
end;
if ( FSerializationStyle = ssNodeSerialization ) then begin
locElt := StackTop().FindNode(strNodeName);
end else begin
locElt := GetCurrentScopeObject().GetAttributeNode(strNodeName);
end;
if Assigned(locElt) then begin
Result := NodeToBuffer(locElt);
end else begin
Error('Param or Attribute not found : "%s"',[AName]);
end;
end;
procedure TSOAPBaseFormatter.SaveToStream(AStream: TStream); procedure TSOAPBaseFormatter.SaveToStream(AStream: TStream);
begin begin
WriteXMLFile(FDoc,AStream); WriteXMLFile(FDoc,AStream);
@ -1664,7 +1701,7 @@ end;
function TScopedArrayStackItem.CreateList(const ANodeName : string): TDOMNodeList; function TScopedArrayStackItem.CreateList(const ANodeName : string): TDOMNodeList;
begin begin
if ScopeObject.HasChildNodes() then begin if ScopeObject.HasChildNodes() then begin
Result := ScopeObject.GetChildNodes(); Result := ScopeObject.ChildNodes;
end else begin end else begin
Result := nil; Result := nil;
end; end;
@ -1675,11 +1712,14 @@ end;
function TEmbeddedArrayStackItem.CreateList(const ANodeName: string): TDOMNodeList; function TEmbeddedArrayStackItem.CreateList(const ANodeName: string): TDOMNodeList;
begin begin
if ScopeObject.HasChildNodes() then begin if ScopeObject.HasChildNodes() then begin
{$IFNDEF FPC}
Result := ScopeObject.childNodes;
{$ELSE}
Result := {$IFNDEF FPC_211}TDOMNodeList{$ELSE}TDOMElementList{$ENDIF}.Create(ScopeObject,ANodeName); Result := {$IFNDEF FPC_211}TDOMNodeList{$ELSE}TDOMElementList{$ENDIF}.Create(ScopeObject,ANodeName);
{$ENDIF}
end else begin end else begin
Result := nil; Result := nil;
end; end;
end; end;
end. end.

View File

@ -10,18 +10,19 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit base_xmlrpc_formatter; unit base_xmlrpc_formatter;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
interface interface
uses uses
Classes, SysUtils, TypInfo, Contnrs, Classes, SysUtils, TypInfo, Contnrs,
DOM, {$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
base_service_intf; base_service_intf;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
const const
sPROTOCOL_NAME = 'XMLRPC'; sPROTOCOL_NAME = 'XMLRPC';
@ -44,6 +45,8 @@ const
type type
TwstXMLDocument = {$IFNDEF FPC}wst_delphi_xml.TXMLDocument{$ELSE}TXMLDocument{$ENDIF};
TEnumIntType = Int64; TEnumIntType = Int64;
TXmlRpcDataType = ( TXmlRpcDataType = (
@ -63,14 +66,18 @@ type
EXmlRpcException = class(EBaseRemoteException) EXmlRpcException = class(EBaseRemoteException)
end; end;
TFoundState = ( fsNone, fsFoundNonNil, fsFoundNil );
{ TStackItem } { TStackItem }
TStackItem = class TStackItem = class
private private
FFoundState : TFoundState;
FScopeObject: TDOMNode; FScopeObject: TDOMNode;
FScopeType: TScopeType; FScopeType: TScopeType;
protected protected
function GetItemsCount() : Integer;virtual; function GetItemsCount() : Integer;virtual;
procedure SetFoundState(const AFoundState : TFoundState);
public public
constructor Create(AScopeObject : TDOMNode;AScopeType : TScopeType); constructor Create(AScopeObject : TDOMNode;AScopeType : TScopeType);
function FindNode(var ANodeName : string):TDOMNode;virtual;abstract; function FindNode(var ANodeName : string):TDOMNode;virtual;abstract;
@ -81,6 +88,7 @@ type
property ScopeObject : TDOMNode Read FScopeObject; property ScopeObject : TDOMNode Read FScopeObject;
property ScopeType : TScopeType Read FScopeType; property ScopeType : TScopeType Read FScopeType;
property ItemsCount : Integer read GetItemsCount; property ItemsCount : Integer read GetItemsCount;
property FoundState : TFoundState read FFoundState;
end; end;
{ TObjectStackItem } { TObjectStackItem }
@ -159,11 +167,13 @@ type
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Const AData : TEnumIntType Const AData : TEnumIntType
):TDOMNode; ):TDOMNode;
{$IFDEF FPC}
function PutBool( function PutBool(
Const AName : String; Const AName : String;
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Const AData : Boolean Const AData : Boolean
):TDOMNode; ):TDOMNode;
{$ENDIF}
function PutInt64( function PutInt64(
Const AName : String; Const AName : String;
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
@ -191,6 +201,7 @@ type
Var AName : String; Var AName : String;
Var AData : TEnumIntType Var AData : TEnumIntType
); );
{$IFDEF FPC}
procedure GetBool( procedure GetBool(
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Var AName : String; Var AName : String;
@ -201,6 +212,7 @@ type
Var AName : String; Var AName : String;
Var AData : Integer Var AData : Integer
); );
{$ENDIF}
procedure GetInt64( procedure GetInt64(
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Var AName : String; Var AName : String;
@ -318,44 +330,34 @@ type
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
var AData var AData
); );
function ReadBuffer(const AName : string) : string;
procedure SaveToStream(AStream : TStream); procedure SaveToStream(AStream : TStream);
procedure LoadFromStream(AStream : TStream); procedure LoadFromStream(AStream : TStream);
procedure Error(Const AMsg:string); procedure Error(Const AMsg:string);overload;
procedure Error(Const AMsg:string; Const AArgs : array of const); procedure Error(Const AMsg:string; Const AArgs : array of const);overload;
published published
property ContentType : string Read FContentType Write FContentType; property ContentType : string Read FContentType Write FContentType;
end; end;
{$M-} {$M-}
implementation implementation
Uses XMLWrite, XMLRead, Uses {$IFNDEF FPC}XMLDoc,XMLIntf,{$ELSE}XMLWrite, XMLRead,wst_fpc_xml,{$ENDIF}
imp_utils; imp_utils;
function GetNodeItemsCount(const ANode : TDOMNode): Integer;
var
chdLst : TDOMNodeList;
begin
if ANode.HasChildNodes then begin
chdLst := ANode.ChildNodes;
try
Result := chdLst.Count
finally
chdLst.Release();
end;
end else begin
Result := 0;
end;
end;
{ TStackItem } { TStackItem }
function TStackItem.GetItemsCount: Integer; function TStackItem.GetItemsCount(): Integer;
begin begin
Result := GetNodeItemsCount(ScopeObject); Result := GetNodeItemsCount(ScopeObject);
end; end;
procedure TStackItem.SetFoundState (const AFoundState : TFoundState );
begin
FFoundState := AFoundState;
end;
constructor TStackItem.Create(AScopeObject: TDOMNode; AScopeType: TScopeType); constructor TStackItem.Create(AScopeObject: TDOMNode; AScopeType: TScopeType);
begin begin
FScopeObject := AScopeObject; FScopeObject := AScopeObject;
@ -378,7 +380,7 @@ begin
while ( not nodeFound ) and ( memberNode <> nil ) do begin while ( not nodeFound ) and ( memberNode <> nil ) do begin
if memberNode.HasChildNodes() then begin if memberNode.HasChildNodes() then begin
chilNodes := memberNode.ChildNodes; chilNodes := memberNode.ChildNodes;
for i := 0 to Pred(chilNodes.Count) do begin for i := 0 to Pred(GetNodeListCount(chilNodes)) do begin
tmpNode := chilNodes.Item[i]; tmpNode := chilNodes.Item[i];
if AnsiSameText(sNAME,tmpNode.NodeName) and if AnsiSameText(sNAME,tmpNode.NodeName) and
( tmpNode.FirstChild <> nil ) and ( tmpNode.FirstChild <> nil ) and
@ -389,7 +391,11 @@ begin
end; end;
end; end;
if nodeFound then begin if nodeFound then begin
{$IFNDEF FPC}
tmpNode := wst_delphi_xml.FindNode(memberNode,sVALUE);
{$ELSE}
tmpNode := memberNode.FindNode(sVALUE); tmpNode := memberNode.FindNode(sVALUE);
{$ENDIF}
if ( tmpNode <> nil ) and ( tmpNode.FirstChild <> nil ) then begin if ( tmpNode <> nil ) and ( tmpNode.FirstChild <> nil ) then begin
Result := tmpNode.FirstChild; Result := tmpNode.FirstChild;
Break; Break;
@ -399,6 +405,14 @@ begin
memberNode := memberNode.NextSibling; memberNode := memberNode.NextSibling;
end; end;
end; end;
if ( Result <> nil ) then begin
if Result.HasChildNodes() then
SetFoundState(fsFoundNonNil)
else
SetFoundState(fsFoundNil);
end else begin
SetFoundState(fsNone);
end;
end; end;
function TObjectStackItem.CreateBuffer( function TObjectStackItem.CreateBuffer(
@ -406,7 +420,7 @@ function TObjectStackItem.CreateBuffer(
const ADataType: TXmlRpcDataType const ADataType: TXmlRpcDataType
): TDOMNode; ): TDOMNode;
var var
memberNode, nd, ndVal : TDOMNode; memberNode, nd : TDOMNode;
begin begin
memberNode := ScopeObject.OwnerDocument.CreateElement(sMEMBER); memberNode := ScopeObject.OwnerDocument.CreateElement(sMEMBER);
ScopeObject.AppendChild(memberNode); ScopeObject.AppendChild(memberNode);
@ -434,7 +448,7 @@ function TArrayStackItem.GetItemsCount(): Integer;
begin begin
EnsureListCreated(); EnsureListCreated();
if Assigned(FItemList) then begin if Assigned(FItemList) then begin
Result := FItemList.Count; Result := GetNodeListCount(FItemList);
end else begin end else begin
Result := 0; Result := 0;
end; end;
@ -443,7 +457,7 @@ end;
function TArrayStackItem.CreateList(): TDOMNodeList; function TArrayStackItem.CreateList(): TDOMNodeList;
begin begin
if ScopeObject.HasChildNodes() and ScopeObject.FirstChild.HasChildNodes() then begin if ScopeObject.HasChildNodes() and ScopeObject.FirstChild.HasChildNodes() then begin
Result := ScopeObject.FirstChild.GetChildNodes(); Result := ScopeObject.FirstChild.ChildNodes;
end else begin end else begin
Result := nil; Result := nil;
end; end;
@ -452,17 +466,21 @@ end;
destructor TArrayStackItem.Destroy(); destructor TArrayStackItem.Destroy();
begin begin
if Assigned(FItemList) then if Assigned(FItemList) then
FItemList.Release(); ReleaseDomNode(FItemList);
inherited Destroy(); inherited Destroy();
end; end;
function TArrayStackItem.FindNode(var ANodeName: string): TDOMNode; function TArrayStackItem.FindNode(var ANodeName: string): TDOMNode;
begin begin
EnsureListCreated(); EnsureListCreated();
if ( FIndex >= FItemList.Count ) then if ( FIndex >= GetNodeListCount(FItemList) ) then
raise EXmlRpcException.CreateFmt('Index out of bound : %d; Node Name = "%s"; Parent Node = "%s"',[FIndex,ANodeName,ScopeObject.NodeName]); raise EXmlRpcException.CreateFmt('Index out of bound : %d; Node Name = "%s"; Parent Node = "%s"',[FIndex,ANodeName,ScopeObject.NodeName]);
Result:= FItemList.Item[FIndex]; Result:= FItemList.Item[FIndex];
if Result.HasChildNodes() and Result.FirstChild.HasChildNodes() then begin if Result.HasChildNodes() then begin
if Result.FirstChild.HasChildNodes() then
SetFoundState(fsFoundNonNil)
else
SetFoundState(fsFoundNil);
Result := Result.FirstChild;//.FirstChild; Result := Result.FirstChild;//.FirstChild;
Inc(FIndex); Inc(FIndex);
ANodeName := Result.NodeName; ANodeName := Result.NodeName;
@ -476,7 +494,7 @@ function TArrayStackItem.CreateBuffer(
const ADataType: TXmlRpcDataType const ADataType: TXmlRpcDataType
): TDOMNode; ): TDOMNode;
var var
nd, ndVal : TDOMNode; nd : TDOMNode;
begin begin
if ( FDataScope = nil ) then begin if ( FDataScope = nil ) then begin
FDataScope := ScopeObject.OwnerDocument.CreateElement(sDATA); FDataScope := ScopeObject.OwnerDocument.CreateElement(sDATA);
@ -553,14 +571,14 @@ end;
procedure TXmlRpcBaseFormatter.InternalClear(const ACreateDoc: Boolean); procedure TXmlRpcBaseFormatter.InternalClear(const ACreateDoc: Boolean);
begin begin
ClearStack(); ClearStack();
FreeAndNil(FDoc); ReleaseDomNode(FDoc);
if ACreateDoc then if ACreateDoc then
FDoc := TXMLDocument.Create(); FDoc := CreateDoc();
end; end;
function TXmlRpcBaseFormatter.HasScope(): Boolean; function TXmlRpcBaseFormatter.HasScope(): Boolean;
begin begin
Result := Assigned(FStack.Peek); Result := FStack.AtLeast(1);
end; end;
function TXmlRpcBaseFormatter.FindAttributeByValueInNode( function TXmlRpcBaseFormatter.FindAttributeByValueInNode(
@ -665,6 +683,7 @@ begin
); );
end; end;
{$IFDEF FPC}
function TXmlRpcBaseFormatter.PutBool( function TXmlRpcBaseFormatter.PutBool(
const AName : String; const AName : String;
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
@ -679,6 +698,7 @@ begin
v := '0'; v := '0';
Result := InternalPutData(AName,xdtBoolean,v); Result := InternalPutData(AName,xdtBoolean,v);
end; end;
{$ENDIF}
function TXmlRpcBaseFormatter.PutInt64( function TXmlRpcBaseFormatter.PutInt64(
const AName : String; const AName : String;
@ -738,14 +758,20 @@ end;
function TXmlRpcBaseFormatter.GetNodeValue(var AName: string): DOMString; function TXmlRpcBaseFormatter.GetNodeValue(var AName: string): DOMString;
var var
locElt : TDOMNode; locElt : TDOMNode;
stkTop : TStackItem;
begin begin
locElt := StackTop().FindNode(AName) as TDOMElement; stkTop := StackTop();
locElt := stkTop.FindNode(AName) as TDOMElement;
if Assigned(locElt) then begin if Assigned(locElt) then begin
if locElt.HasChildNodes then if locElt.HasChildNodes then begin
Result := locElt.FirstChild.NodeValue Result := locElt.FirstChild.NodeValue
else end else begin
Result := locElt.NodeValue; if ( stkTop.FoundState = fsFoundNil ) then
Result := ''
else
Result := locElt.NodeValue;
end;
end else begin end else begin
Error('Param or Attribute not found : "%s"',[AName]); Error('Param or Attribute not found : "%s"',[AName]);
end; end;
@ -766,6 +792,7 @@ begin
AData := GetEnumValue(ATypeInfo,locBuffer) AData := GetEnumValue(ATypeInfo,locBuffer)
End; End;
{$IFDEF FPC}
procedure TXmlRpcBaseFormatter.GetBool( procedure TXmlRpcBaseFormatter.GetBool(
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
var AName : String; var AName : String;
@ -789,6 +816,7 @@ procedure TXmlRpcBaseFormatter.GetInt(
begin begin
AData := StrToIntDef(Trim(GetNodeValue(AName)),0); AData := StrToIntDef(Trim(GetNodeValue(AName)),0);
end; end;
{$ENDIF}
procedure TXmlRpcBaseFormatter.GetInt64( procedure TXmlRpcBaseFormatter.GetInt64(
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
@ -826,7 +854,7 @@ begin
TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo); TBaseRemotableClass(GetTypeData(ATypeInfo)^.ClassType).Load(AData, Self,AName,ATypeInfo);
end; end;
function TXmlRpcBaseFormatter.GetXmlDoc(): TXMLDocument; function TXmlRpcBaseFormatter.GetXmlDoc(): TwstXMLDocument;
begin begin
Result := FDoc; Result := FDoc;
end; end;
@ -859,13 +887,12 @@ begin
Inherited Create(); Inherited Create();
FContentType := sXMLRPC_CONTENT_TYPE; FContentType := sXMLRPC_CONTENT_TYPE;
FStack := TObjectStack.Create(); FStack := TObjectStack.Create();
FDoc := TXMLDocument.Create(); FDoc := CreateDoc();
FDoc.Encoding := 'UTF-8';
end; end;
destructor TXmlRpcBaseFormatter.Destroy(); destructor TXmlRpcBaseFormatter.Destroy();
begin begin
FDoc.Free(); ReleaseDomNode(FDoc);
ClearStack(); ClearStack();
FStack.Free(); FStack.Free();
inherited Destroy(); inherited Destroy();
@ -891,12 +918,8 @@ procedure TXmlRpcBaseFormatter.BeginArray(
const ABounds : Array Of Integer; const ABounds : Array Of Integer;
const AStyle : TArrayStyle const AStyle : TArrayStyle
); );
Var var
typData : TTypeRegistryItem;
nmspc,nmspcSH : string;
i,j, k : Integer; i,j, k : Integer;
strNodeName : string;
xsiNmspcSH : string;
begin begin
if ( Length(ABounds) < 2 ) then begin if ( Length(ABounds) < 2 ) then begin
Error('Invalid array bounds.'); Error('Invalid array bounds.');
@ -1003,17 +1026,17 @@ Var
int64Data : Int64; int64Data : Int64;
strData : string; strData : string;
objData : TObject; objData : TObject;
boolData : Boolean; {$IFDEF FPC}boolData : Boolean;{$ENDIF}
enumData : TEnumIntType; enumData : TEnumIntType;
floatDt : Extended; floatDt : Extended;
begin begin
Case ATypeInfo^.Kind Of Case ATypeInfo^.Kind Of
tkInt64, tkQWord : tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
Begin Begin
int64Data := Int64(AData); int64Data := Int64(AData);
PutInt64(AName,ATypeInfo,int64Data); PutInt64(AName,ATypeInfo,int64Data);
End; End;
tkLString, tkAString : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
Begin Begin
strData := String(AData); strData := String(AData);
PutStr(AName,ATypeInfo,strData); PutStr(AName,ATypeInfo,strData);
@ -1023,11 +1046,13 @@ begin
objData := TObject(AData); objData := TObject(AData);
PutObj(AName,ATypeInfo,objData); PutObj(AName,ATypeInfo,objData);
End; End;
{$IFDEF FPC}
tkBool : tkBool :
Begin Begin
boolData := Boolean(AData); boolData := Boolean(AData);
PutBool(AName,ATypeInfo,boolData); PutBool(AName,ATypeInfo,boolData);
End; End;
{$ENDIF}
tkInteger, tkEnumeration : tkInteger, tkEnumeration :
Begin Begin
enumData := 0; enumData := 0;
@ -1065,10 +1090,11 @@ procedure TXmlRpcBaseFormatter.PutScopeInnerValue(
); );
Var Var
int64SData : Int64; int64SData : Int64;
int64UData : QWord; {$IFDEF FPC}
int64UData : QWord;
boolData : Boolean;
{$ENDIF}
strData : string; strData : string;
objData : TObject;
boolData : Boolean;
enumData : TEnumIntType; enumData : TEnumIntType;
floatDt : Extended; floatDt : Extended;
dataBuffer : string; dataBuffer : string;
@ -1082,12 +1108,14 @@ begin
int64SData := Int64(AData); int64SData := Int64(AData);
dataBuffer := IntToStr(int64SData); dataBuffer := IntToStr(int64SData);
end; end;
{$IFDEF FPC}
tkQWord : tkQWord :
begin begin
int64UData := QWord(AData); int64UData := QWord(AData);
dataBuffer := IntToStr(int64UData); dataBuffer := IntToStr(int64UData);
end; end;
tkLString, tkAString : {$ENDIF}
tkLString{$IFDEF FPC},tkAString{$ENDIF} :
begin begin
strData := string(AData); strData := string(AData);
dataBuffer := strData; dataBuffer := strData;
@ -1096,11 +1124,13 @@ begin
begin begin
raise EXmlRpcException.Create('Inner Scope value must be a "simple type" value.'); raise EXmlRpcException.Create('Inner Scope value must be a "simple type" value.');
end; end;
{$IFDEF FPC}
tkBool : tkBool :
begin begin
boolData := Boolean(AData); boolData := Boolean(AData);
dataBuffer := BoolToStr(boolData); dataBuffer := BoolToStr(boolData);
end; end;
{$ENDIF}
tkInteger : tkInteger :
begin begin
case GetTypeData(ATypeInfo)^.OrdType of case GetTypeData(ATypeInfo)^.OrdType of
@ -1175,18 +1205,18 @@ Var
int64Data : Int64; int64Data : Int64;
strData : string; strData : string;
objData : TObject; objData : TObject;
boolData : Boolean; {$IFDEF FPC}boolData : Boolean;{$ENDIF}
enumData : TEnumIntType; enumData : TEnumIntType;
floatDt : Extended; floatDt : Extended;
begin begin
Case ATypeInfo^.Kind Of Case ATypeInfo^.Kind Of
tkInt64,tkQWord : tkInt64{$IFDEF FPC},tkQWord{$ENDIF} :
Begin Begin
int64Data := 0; int64Data := 0;
GetInt64(ATypeInfo,AName,int64Data); GetInt64(ATypeInfo,AName,int64Data);
Int64(AData) := int64Data; Int64(AData) := int64Data;
End; End;
tkLString, tkAString : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
Begin Begin
strData := ''; strData := '';
GetStr(ATypeInfo,AName,strData); GetStr(ATypeInfo,AName,strData);
@ -1198,12 +1228,14 @@ begin
GetObj(ATypeInfo,AName,objData); GetObj(ATypeInfo,AName,objData);
TObject(AData) := objData; TObject(AData) := objData;
End; End;
{$IFDEF FPC}
tkBool : tkBool :
Begin Begin
boolData := False; boolData := False;
GetBool(ATypeInfo,AName,boolData); GetBool(ATypeInfo,AName,boolData);
Boolean(AData) := boolData; Boolean(AData) := boolData;
End; End;
{$ENDIF}
tkInteger, tkEnumeration : tkInteger, tkEnumeration :
Begin Begin
enumData := 0; enumData := 0;
@ -1253,13 +1285,15 @@ begin
dataBuffer := StackTop().ScopeObject.NodeValue; dataBuffer := StackTop().ScopeObject.NodeValue;
Case ATypeInfo^.Kind Of Case ATypeInfo^.Kind Of
tkInt64 : Int64(AData) := StrToInt64Def(Trim(dataBuffer),0); tkInt64 : Int64(AData) := StrToInt64Def(Trim(dataBuffer),0);
{$IFDEF FPC}
tkQWord : QWord(AData) := StrToInt64Def(Trim(dataBuffer),0); tkQWord : QWord(AData) := StrToInt64Def(Trim(dataBuffer),0);
tkLString, {$ENDIF}
tkAString : string(AData) := dataBuffer; tkLString{$IFDEF FPC},tkAString{$ENDIF} : string(AData) := dataBuffer;
tkClass : tkClass :
begin begin
raise EXmlRpcException.Create('Inner Scope value must be a "simple type" value.'); raise EXmlRpcException.Create('Inner Scope value must be a "simple type" value.');
end; end;
{$IFDEF FPC}
tkBool : tkBool :
begin begin
dataBuffer := LowerCase(Trim(dataBuffer)); dataBuffer := LowerCase(Trim(dataBuffer));
@ -1268,6 +1302,7 @@ begin
else else
Boolean(AData) := StrToBool(dataBuffer); Boolean(AData) := StrToBool(dataBuffer);
end; end;
{$ENDIF}
tkInteger, tkEnumeration : tkInteger, tkEnumeration :
begin begin
if ( ATypeInfo^.Kind = tkInteger ) then if ( ATypeInfo^.Kind = tkInteger ) then
@ -1297,6 +1332,23 @@ begin
end; end;
end; end;
function TXmlRpcBaseFormatter.ReadBuffer (const AName : string ) : string;
var
locElt : TDOMNode;
stkTop : TStackItem;
locName : string;
begin
stkTop := StackTop();
locName := AName;
locElt := stkTop.FindNode(locName);
if Assigned(locElt) then begin
Result := NodeToBuffer(locElt);
end else begin
Error('Param or Attribute not found : "%s"',[AName]);
end;
end;
procedure TXmlRpcBaseFormatter.SaveToStream(AStream: TStream); procedure TXmlRpcBaseFormatter.SaveToStream(AStream: TStream);
begin begin
WriteXMLFile(FDoc,AStream); WriteXMLFile(FDoc,AStream);
@ -1337,7 +1389,7 @@ function TParamsArrayStackItem.GetItemsCount(): Integer;
begin begin
EnsureListCreated(); EnsureListCreated();
if Assigned(FItemList) then begin if Assigned(FItemList) then begin
Result := FItemList.Count; Result := GetNodeListCount(FItemList);
end else begin end else begin
Result := 0; Result := 0;
end; end;
@ -1346,7 +1398,7 @@ end;
function TParamsArrayStackItem.CreateList(): TDOMNodeList; function TParamsArrayStackItem.CreateList(): TDOMNodeList;
begin begin
if ScopeObject.HasChildNodes() then begin if ScopeObject.HasChildNodes() then begin
Result := ScopeObject.GetChildNodes(); Result := ScopeObject.ChildNodes;
end else begin end else begin
Result := nil; Result := nil;
end; end;
@ -1355,17 +1407,21 @@ end;
destructor TParamsArrayStackItem.Destroy(); destructor TParamsArrayStackItem.Destroy();
begin begin
if Assigned(FItemList) then if Assigned(FItemList) then
FItemList.Release(); ReleaseDomNode(FItemList);
inherited Destroy(); inherited Destroy();
end; end;
function TParamsArrayStackItem.FindNode(var ANodeName: string): TDOMNode; function TParamsArrayStackItem.FindNode(var ANodeName: string): TDOMNode;
begin begin
EnsureListCreated(); EnsureListCreated();
if ( FIndex >= FItemList.Count ) then if ( FIndex >= GetNodeListCount(FItemList) ) then
raise EXmlRpcException.CreateFmt('Index out of bound : %d; Node Name = "%s"; Parent Node = "%s"',[FIndex,ANodeName,ScopeObject.NodeName]); raise EXmlRpcException.CreateFmt('Index out of bound : %d; Node Name = "%s"; Parent Node = "%s"',[FIndex,ANodeName,ScopeObject.NodeName]);
Result:= FItemList.Item[FIndex]; Result:= FItemList.Item[FIndex];
if Result.HasChildNodes() and Result.FirstChild.HasChildNodes() then begin if Result.HasChildNodes() then begin
if Result.FirstChild.HasChildNodes() then
SetFoundState(fsFoundNonNil)
else
SetFoundState(fsFoundNil);
Result := Result.FirstChild.FirstChild; Result := Result.FirstChild.FirstChild;
Inc(FIndex); Inc(FIndex);
ANodeName := Result.NodeName; ANodeName := Result.NodeName;

View File

@ -10,6 +10,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit binary_formatter; unit binary_formatter;
interface interface

View File

@ -10,6 +10,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit binary_streamer; unit binary_streamer;
interface interface
@ -90,20 +91,20 @@ Type
function CreateBinaryReader(AStream : TStream):IDataStoreReader; function CreateBinaryReader(AStream : TStream):IDataStoreReader;
function CreateBinaryWriter(AStream : TStream):IDataStore; function CreateBinaryWriter(AStream : TStream):IDataStore;
procedure ReverseBytes(var AData; const ALength : Integer);{$IFDEF ENDIAN_BIG}inline;{$ENDIF} procedure ReverseBytes(var AData; const ALength : Integer);{$IFDEF USE_INLINE}{$IFDEF ENDIAN_BIG}inline;{$ENDIF}{$ENDIF}
function Reverse_16(AValue:Word):Word;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_16(const AValue:Word):Word;{$IFDEF USE_INLINE}inline;{$ENDIF}
function Reverse_32(AValue:DWord):DWord;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_32(const AValue:DWord):DWord;{$IFDEF USE_INLINE}inline;{$ENDIF}
function Reverse_64(AValue:QWord):QWord;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_64(const AValue:QWord):QWord;{$IFDEF USE_INLINE}inline;{$ENDIF}
function Reverse_Single(AValue:Single):Single;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_Single(const AValue:Single):Single;{$IFDEF USE_INLINE}inline;{$ENDIF}
function Reverse_Double(AValue:Double):Double;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_Double(const AValue:Double):Double;{$IFDEF USE_INLINE}inline;{$ENDIF}
function Reverse_Extended(AValue:Extended):Extended;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_Extended(const AValue:Extended):Extended;{$IFDEF USE_INLINE}inline;{$ENDIF}
function Reverse_Currency(AValue:Currency):Currency;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_Currency(const AValue:Currency):Currency;{$IFDEF USE_INLINE}inline;{$ENDIF}
implementation implementation
{$IFDEF ENDIAN_BIG} {$IFDEF ENDIAN_BIG}
procedure ReverseBytes(var AData; const ALength : Integer);{$IFDEF USE_INLINE}inline;{$ENDIF} procedure ReverseBytes(var AData; const ALength : Integer); {$IFDEF USE_INLINE}inline;{$ENDIF}
begin begin
end; end;
{$ELSE} // assume ENDIAN_LITTLE {$ELSE} // assume ENDIAN_LITTLE
@ -123,43 +124,43 @@ begin
end; end;
{$ENDIF} {$ENDIF}
function Reverse_16(AValue:Word):Word;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_16(const AValue:Word):Word;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin begin
Result := AValue; Result := AValue;
ReverseBytes(Result,2) ReverseBytes(Result,2)
end; end;
function Reverse_32(AValue:DWord):DWord;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_32(const AValue:DWord):DWord;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin begin
Result := AValue; Result := AValue;
ReverseBytes(Result,4) ReverseBytes(Result,4)
end; end;
function Reverse_64(AValue:QWord):QWord;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_64(const AValue:QWord):QWord;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin begin
Result := AValue; Result := AValue;
ReverseBytes(Result,8) ReverseBytes(Result,8)
end; end;
function Reverse_Single(AValue:Single):Single;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_Single(const AValue:Single):Single;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin begin
Result := AValue; Result := AValue;
ReverseBytes(Result,4) ReverseBytes(Result,4)
end; end;
function Reverse_Double(AValue:Double):Double;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_Double(const AValue:Double):Double;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin begin
Result := AValue; Result := AValue;
ReverseBytes(Result,8) ReverseBytes(Result,8)
end; end;
function Reverse_Extended(AValue:Extended):Extended;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_Extended(const AValue:Extended):Extended;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin begin
Result := AValue; Result := AValue;
ReverseBytes(Result,10); ReverseBytes(Result,10);
end; end;
function Reverse_Currency(AValue:Currency):Currency;{$IFDEF USE_INLINE}inline;{$ENDIF} function Reverse_Currency(const AValue:Currency):Currency;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin begin
Result := AValue; Result := AValue;
ReverseBytes(Result,8); ReverseBytes(Result,8);
@ -355,7 +356,7 @@ begin
FStream.Write(AData[1],i); FStream.Write(AData[1],i);
end; end;
{$IFDEF FPC} {
procedure TDataStore.WriteSingle(const AData: TFloat_Single_4); procedure TDataStore.WriteSingle(const AData: TFloat_Single_4);
begin begin
FStream.Write(Reverse_Single(AData),SizeOf(AData)); FStream.Write(Reverse_Single(AData),SizeOf(AData));
@ -375,7 +376,7 @@ procedure TDataStore.WriteCurrency(const AData: TFloat_Currency_8);
begin begin
FStream.Write(Reverse_Currency(AData),SizeOf(AData)); FStream.Write(Reverse_Currency(AData),SizeOf(AData));
end; end;
{$ELSE} }
procedure TDataStore.WriteSingle(const AData: TFloat_Single_4); procedure TDataStore.WriteSingle(const AData: TFloat_Single_4);
var var
bffr : TFloat_Single_4; bffr : TFloat_Single_4;
@ -407,7 +408,6 @@ begin
bffr := Reverse_Currency(AData); bffr := Reverse_Currency(AData);
FStream.Write(bffr,SizeOf(AData)); FStream.Write(bffr,SizeOf(AData));
end; end;
{$ENDIF}
constructor TDataStore.Create(AStream: TStream); constructor TDataStore.Create(AStream: TStream);
begin begin

View File

@ -10,10 +10,9 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit ics_http_protocol; unit ics_http_protocol;
{$mode objfpc}{$H+}
{$DEFINE WST_DBG} {$DEFINE WST_DBG}
interface interface
@ -23,6 +22,9 @@ uses
service_intf, imp_utils, base_service_intf, service_intf, imp_utils, base_service_intf,
HttpProt; HttpProt;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Const Const
sTRANSPORT_NAME = 'HTTP'; sTRANSPORT_NAME = 'HTTP';

View File

@ -10,10 +10,9 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit ics_tcp_protocol; unit ics_tcp_protocol;
{$INCLUDE wst.inc}
interface interface
uses uses
@ -21,6 +20,9 @@ uses
service_intf, imp_utils, base_service_intf, service_intf, imp_utils, base_service_intf,
WSocket; WSocket;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Const Const
sTRANSPORT_NAME = 'TCP'; sTRANSPORT_NAME = 'TCP';

View File

@ -46,12 +46,12 @@ object formImport: TformImport
Left = 9 Left = 9
Height = 23 Height = 23
Top = 31 Top = 31
Width = 416 Width = 412
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
TabOrder = 0 TabOrder = 0
end end
object Button2: TButton object Button2: TButton
Left = 443 Left = 439
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 = 416 Width = 412
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
TabOrder = 2 TabOrder = 2
end end
object Button3: TButton object Button3: TButton
Left = 443 Left = 439
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#160#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'T' +'op'#2#31#5'Width'#3#156#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#187#1#6'Height'#2#25#3'Top' +'abOrder'#2#0#0#0#7'TButton'#7'Button2'#4'Left'#3#183#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#160#1#7'Anch' +'dtOutputDir'#4'Left'#2#9#6'Height'#2#23#3'Top'#2'X'#5'Width'#3#156#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#187#1#6'Height'#2#25#3'Top'#2'X'#5'Width'#2'('#6'Action'#7 +'tton3'#4'Left'#3#183#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

@ -270,7 +270,7 @@ begin
try try
tree := ParseWsdlFile(edtInputFile.Text,@ShowStatusMessage); tree := ParseWsdlFile(edtInputFile.Text,@ShowStatusMessage);
try try
srcMgnr := GenerateSource(tree,GetOptions(),otFileSystem,edtOutputDir.Text,@ShowStatusMessage); srcMgnr := GenerateSource(tree,GetOptions(),otFileSystem,IncludeTrailingPathDelimiter(edtOutputDir.Text),@ShowStatusMessage);
ShowStatusMessage(mtInfo,''); ShowStatusMessage(mtInfo,'');
{$IFDEF WST_IDE} {$IFDEF WST_IDE}
openFlags := []; openFlags := [];

View File

@ -10,6 +10,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit imp_utils; unit imp_utils;
interface interface
@ -19,6 +20,7 @@ uses
base_service_intf; base_service_intf;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Type Type

View File

@ -10,6 +10,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit indy_http_protocol; unit indy_http_protocol;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}
@ -23,6 +24,9 @@ uses
service_intf, imp_utils, base_service_intf, service_intf, imp_utils, base_service_intf,
IdHTTP; IdHTTP;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Const Const
sTRANSPORT_NAME = 'HTTP'; sTRANSPORT_NAME = 'HTTP';

View File

@ -10,12 +10,14 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit library_base_intf; unit library_base_intf;
interface interface
uses base_service_intf; uses base_service_intf;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
const const
RET_OK = 0; RET_OK = 0;

View File

@ -1,3 +1,16 @@
{
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 library_imp_utils; unit library_imp_utils;
interface interface
@ -6,6 +19,7 @@ uses
Classes, SysUtils; Classes, SysUtils;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type type

View File

@ -10,6 +10,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit library_protocol; unit library_protocol;
//{$DEFINE WST_DBG} //{$DEFINE WST_DBG}
@ -22,6 +23,7 @@ uses
library_imp_utils; library_imp_utils;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
const const
sTRANSPORT_NAME = 'LIB'; sTRANSPORT_NAME = 'LIB';

View File

@ -10,16 +10,18 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit library_server_intf; unit library_server_intf;
{$mode objfpc}{$H+}
interface interface
uses uses
Classes, SysUtils, Classes, SysUtils,
library_base_intf; library_base_intf;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
function wstHandleRequest( function wstHandleRequest(
ARequestBuffer : IwstStream; ARequestBuffer : IwstStream;
AErrorBuffer : Pointer; AErrorBuffer : Pointer;

View File

@ -10,7 +10,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit metadata_repository; unit metadata_repository;
interface interface
@ -19,6 +19,7 @@ uses
Classes, SysUtils, TypInfo; Classes, SysUtils, TypInfo;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
const const
sWST_SIGNATURE = 'WST_METADATA_0.2.2.0'; sWST_SIGNATURE = 'WST_METADATA_0.2.2.0';

View File

@ -10,17 +10,17 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit metadata_service; unit metadata_service;
{$INCLUDE wst.inc}
interface interface
uses uses
Classes, SysUtils, Classes, SysUtils,
base_service_intf, metadata_repository; base_service_intf, metadata_repository;
{$INCLUDE wst.inc}
type type
TWSTMtdOperationParam = class(TBaseComplexRemotable) TWSTMtdOperationParam = class(TBaseComplexRemotable)

View File

@ -4,12 +4,16 @@ This unit has been produced by ws_helper.
This unit name : "metadata_service_binder". This unit name : "metadata_service_binder".
Date : "12/11/2006 11:12". Date : "12/11/2006 11:12".
} }
{$INCLUDE wst_global.inc}
unit metadata_service_binder; unit metadata_service_binder;
{$INCLUDE wst.inc}
interface interface
uses SysUtils, Classes, base_service_intf, server_service_intf, metadata_service; uses SysUtils, Classes, base_service_intf, server_service_intf, metadata_service;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type type
@ -108,8 +112,8 @@ End;
constructor TWSTMetadataService_ServiceBinder.Create(); constructor TWSTMetadataService_ServiceBinder.Create();
Begin Begin
Inherited Create(GetServiceImplementationRegistry().FindFactory('IWSTMetadataService')); Inherited Create(GetServiceImplementationRegistry().FindFactory('IWSTMetadataService'));
RegisterVerbHandler('GetRepositoryList',@GetRepositoryListHandler); RegisterVerbHandler('GetRepositoryList',{$IFDEF FPC}@{$ENDIF}GetRepositoryListHandler);
RegisterVerbHandler('GetRepositoryInfo',@GetRepositoryInfoHandler); RegisterVerbHandler('GetRepositoryInfo',{$IFDEF FPC}@{$ENDIF}GetRepositoryInfoHandler);
End; End;
@ -140,7 +144,7 @@ initialization
{$IF DECLARED(Register_metadata_service_NameSpace)} {$IF DECLARED(Register_metadata_service_NameSpace)}
Register_metadata_service_NameSpace(); Register_metadata_service_NameSpace();
{$ENDIF} {$IFEND}
{$i metadata_service.wst} {$i metadata_service.wst}

View File

@ -4,13 +4,17 @@ This unit has been produced by ws_helper.
This unit name : "metadata_service_imp". This unit name : "metadata_service_imp".
Date : "01/07/2006 22:14". Date : "01/07/2006 22:14".
} }
{$INCLUDE wst_global.inc}
Unit metadata_service_imp; Unit metadata_service_imp;
{$INCLUDE wst.inc}
Interface Interface
Uses SysUtils, Classes, Uses SysUtils, Classes,
base_service_intf, server_service_intf, server_service_imputils, metadata_service; base_service_intf, server_service_intf, server_service_imputils, metadata_service;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Type Type
@ -64,25 +68,37 @@ function TWSTMetadataService_ServiceImp.GetRepositoryInfo(Const AName : string):
var var
ii, cc : Integer; ii, cc : Integer;
pprm : POperationParam;
begin begin
if Assigned(ARawOper) and Assigned(AObjOper) then begin if Assigned(ARawOper) and Assigned(AObjOper) then begin
AObjOper.Name :=ARawOper^.Name; AObjOper.Name :=ARawOper^.Name;
cc := ARawOper^.ParamsCount; cc := ARawOper^.ParamsCount;
AObjOper.Params.SetLength(cc); AObjOper.Params.SetLength(cc);
for ii := 0 to Pred(cc) do if ( cc > 0 ) then begin
LoadParam(@(ARawOper^.Params[ii]),AObjOper.Params[ii]); pprm := ARawOper^.Params;
for ii := 0 to Pred(cc) do begin
LoadParam(pprm,AObjOper.Params[ii]);
Inc(pprm);
end;
end;
end; end;
end; end;
var var
k, d : Integer; k, d : Integer;
pservOP : PServiceOperation;
begin begin
if Assigned(ARawServ) and Assigned(AObjServ) then begin if Assigned(ARawServ) and Assigned(AObjServ) then begin
AObjServ.Name :=ARawServ^.Name; AObjServ.Name :=ARawServ^.Name;
d := ARawServ^.OperationsCount; d := ARawServ^.OperationsCount;
AObjServ.Operations.SetLength(d); AObjServ.Operations.SetLength(d);
for k := 0 to Pred(d) do if ( d > 0 ) then begin
LoadOperation(@(ARawServ^.Operations[k]),AObjServ.Operations[k]); pservOP := ARawServ^.Operations;
for k := 0 to Pred(d) do begin
LoadOperation(pservOP,AObjServ.Operations[k]);
Inc(pservOP);
end;
end;
end; end;
end; end;
@ -90,6 +106,7 @@ var
repData : PServiceRepository; repData : PServiceRepository;
mn : IModuleMetadataMngr; mn : IModuleMetadataMngr;
i, c : Integer; i, c : Integer;
pserv : PService;
Begin Begin
Result := nil; Result := nil;
mn := GetModuleMetadataMngr(); mn := GetModuleMetadataMngr();
@ -103,8 +120,10 @@ Begin
c := repData^.ServicesCount; c := repData^.ServicesCount;
Result.Services.SetLength(c); Result.Services.SetLength(c);
if ( c > 0 ) then begin if ( c > 0 ) then begin
pserv := repData^.Services;
for i := 0 to Pred(c) do begin for i := 0 to Pred(c) do begin
LoadService(@(repData^.Services[i]),Result.Services[i]); LoadService(pserv,Result.Services[i]);
Inc(pserv);
end; end;
end; end;
except except

View File

@ -4,12 +4,16 @@ This unit has been produced by ws_helper.
This unit name : "metadata_service_proxy". This unit name : "metadata_service_proxy".
Date : "12/11/2006 11:12". Date : "12/11/2006 11:12".
} }
{$INCLUDE wst_global.inc}
Unit metadata_service_proxy; Unit metadata_service_proxy;
{$mode objfpc}{$H+}
Interface Interface
Uses SysUtils, Classes, TypInfo, base_service_intf, service_intf, metadata_service; Uses SysUtils, Classes, TypInfo, base_service_intf, service_intf, metadata_service;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Type Type

View File

@ -10,10 +10,11 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit metadata_wsdl; unit metadata_wsdl;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
interface interface

View File

@ -10,10 +10,9 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit same_process_protocol; unit same_process_protocol;
{$mode objfpc}{$H+}
interface interface
uses uses
@ -21,6 +20,9 @@ uses
service_intf, imp_utils, service_intf, imp_utils,
server_service_intf, server_service_imputils, base_service_intf; server_service_intf, server_service_imputils, base_service_intf;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Const Const
sTRANSPORT_NAME = 'SAME_PROCESS'; sTRANSPORT_NAME = 'SAME_PROCESS';

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
This unit has been produced by ws_helper. This unit has been produced by ws_helper.
Input unit name : "AWSECommerceService". Input unit name : "AWSECommerceService".
This unit name : "AWSECommerceService_proxy". This unit name : "AWSECommerceService_proxy".
Date : "6-5-07 19:37:08". Date : "11/07/2007 22:01:03".
} }
Unit AWSECommerceService_proxy; Unit AWSECommerceService_proxy;
@ -18,61 +18,61 @@ Type
Protected Protected
class function GetServiceType() : PTypeInfo;override; class function GetServiceType() : PTypeInfo;override;
function Help( function Help(
Const HelpParam : Help_Type const HelpParam : Help_Type
):HelpResponse_Type; ):HelpResponse_Type;
function ItemSearch( function ItemSearch(
Const ItemSearchParam : ItemSearch_Type const ItemSearchParam : ItemSearch_Type
):ItemSearchResponse_Type; ):ItemSearchResponse_Type;
function ItemLookup( function ItemLookup(
Const ItemLookupParam : ItemLookup_Type const ItemLookupParam : ItemLookup_Type
):ItemLookupResponse_Type; ):ItemLookupResponse_Type;
function BrowseNodeLookup( function BrowseNodeLookup(
Const BrowseNodeLookupParam : BrowseNodeLookup_Type const BrowseNodeLookupParam : BrowseNodeLookup_Type
):BrowseNodeLookupResponse_Type; ):BrowseNodeLookupResponse_Type;
function ListSearch( function ListSearch(
Const ListSearchParam : ListSearch_Type const ListSearchParam : ListSearch_Type
):ListSearchResponse_Type; ):ListSearchResponse_Type;
function ListLookup( function ListLookup(
Const ListLookupParam : ListLookup_Type const ListLookupParam : ListLookup_Type
):ListLookupResponse_Type; ):ListLookupResponse_Type;
function CustomerContentSearch( function CustomerContentSearch(
Const CustomerContentSearchParam : CustomerContentSearch_Type const CustomerContentSearchParam : CustomerContentSearch_Type
):CustomerContentSearchResponse_Type; ):CustomerContentSearchResponse_Type;
function CustomerContentLookup( function CustomerContentLookup(
Const CustomerContentLookupParam : CustomerContentLookup_Type const CustomerContentLookupParam : CustomerContentLookup_Type
):CustomerContentLookupResponse_Type; ):CustomerContentLookupResponse_Type;
function SimilarityLookup( function SimilarityLookup(
Const SimilarityLookupParam : SimilarityLookup_Type const SimilarityLookupParam : SimilarityLookup_Type
):SimilarityLookupResponse_Type; ):SimilarityLookupResponse_Type;
function SellerLookup( function SellerLookup(
Const SellerLookupParam : SellerLookup_Type const SellerLookupParam : SellerLookup_Type
):SellerLookupResponse_Type; ):SellerLookupResponse_Type;
function CartGet( function CartGet(
Const CartGetParam : CartGet_Type const CartGetParam : CartGet_Type
):CartGetResponse_Type; ):CartGetResponse_Type;
function CartAdd( function CartAdd(
Const CartAddParam : CartAdd_Type const CartAddParam : CartAdd_Type
):CartAddResponse_Type; ):CartAddResponse_Type;
function CartCreate( function CartCreate(
Const CartCreateParam : CartCreate_Type const CartCreateParam : CartCreate_Type
):CartCreateResponse_Type; ):CartCreateResponse_Type;
function CartModify( function CartModify(
Const CartModifyParam : CartModify_Type const CartModifyParam : CartModify_Type
):CartModifyResponse_Type; ):CartModifyResponse_Type;
function CartClear( function CartClear(
Const CartClearParam : CartClear_Type const CartClearParam : CartClear_Type
):CartClearResponse_Type; ):CartClearResponse_Type;
function TransactionLookup( function TransactionLookup(
Const TransactionLookupParam : TransactionLookup_Type const TransactionLookupParam : TransactionLookup_Type
):TransactionLookupResponse_Type; ):TransactionLookupResponse_Type;
function SellerListingSearch( function SellerListingSearch(
Const SellerListingSearchParam : SellerListingSearch_Type const SellerListingSearchParam : SellerListingSearch_Type
):SellerListingSearchResponse_Type; ):SellerListingSearchResponse_Type;
function SellerListingLookup( function SellerListingLookup(
Const SellerListingLookupParam : SellerListingLookup_Type const SellerListingLookupParam : SellerListingLookup_Type
):SellerListingLookupResponse_Type; ):SellerListingLookupResponse_Type;
function MultiOperation( function MultiOperation(
Const MultiOperationParam : MultiOperationType const MultiOperationParam : MultiOperation_Type
):MultiOperationResponse; ):MultiOperationResponse;
End; End;
@ -95,7 +95,7 @@ begin
end; end;
function TAWSECommerceServicePortType_Proxy.Help( function TAWSECommerceServicePortType_Proxy.Help(
Const HelpParam : Help_Type const HelpParam : Help_Type
):HelpResponse_Type; ):HelpResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -104,7 +104,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('Help', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('Help', GetTarget(),(Self as ICallContext));
locSerializer.Put('Help', TypeInfo(Help_Type), HelpParam); locSerializer.Put('HelpParam', TypeInfo(Help_Type), HelpParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -120,7 +120,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.ItemSearch( function TAWSECommerceServicePortType_Proxy.ItemSearch(
Const ItemSearchParam : ItemSearch_Type const ItemSearchParam : ItemSearch_Type
):ItemSearchResponse_Type; ):ItemSearchResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -129,7 +129,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('ItemSearch', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('ItemSearch', GetTarget(),(Self as ICallContext));
locSerializer.Put('ItemSearch', TypeInfo(ItemSearch_Type), ItemSearchParam); locSerializer.Put('ItemSearchParam', TypeInfo(ItemSearch_Type), ItemSearchParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -145,7 +145,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.ItemLookup( function TAWSECommerceServicePortType_Proxy.ItemLookup(
Const ItemLookupParam : ItemLookup_Type const ItemLookupParam : ItemLookup_Type
):ItemLookupResponse_Type; ):ItemLookupResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -154,7 +154,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('ItemLookup', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('ItemLookup', GetTarget(),(Self as ICallContext));
locSerializer.Put('ItemLookup', TypeInfo(ItemLookup_Type), ItemLookupParam); locSerializer.Put('ItemLookupParam', TypeInfo(ItemLookup_Type), ItemLookupParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -170,7 +170,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.BrowseNodeLookup( function TAWSECommerceServicePortType_Proxy.BrowseNodeLookup(
Const BrowseNodeLookupParam : BrowseNodeLookup_Type const BrowseNodeLookupParam : BrowseNodeLookup_Type
):BrowseNodeLookupResponse_Type; ):BrowseNodeLookupResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -179,7 +179,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('BrowseNodeLookup', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('BrowseNodeLookup', GetTarget(),(Self as ICallContext));
locSerializer.Put('BrowseNodeLookup', TypeInfo(BrowseNodeLookup_Type), BrowseNodeLookupParam); locSerializer.Put('BrowseNodeLookupParam', TypeInfo(BrowseNodeLookup_Type), BrowseNodeLookupParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -195,7 +195,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.ListSearch( function TAWSECommerceServicePortType_Proxy.ListSearch(
Const ListSearchParam : ListSearch_Type const ListSearchParam : ListSearch_Type
):ListSearchResponse_Type; ):ListSearchResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -204,7 +204,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('ListSearch', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('ListSearch', GetTarget(),(Self as ICallContext));
locSerializer.Put('ListSearch', TypeInfo(ListSearch_Type), ListSearchParam); locSerializer.Put('ListSearchParam', TypeInfo(ListSearch_Type), ListSearchParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -220,7 +220,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.ListLookup( function TAWSECommerceServicePortType_Proxy.ListLookup(
Const ListLookupParam : ListLookup_Type const ListLookupParam : ListLookup_Type
):ListLookupResponse_Type; ):ListLookupResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -229,7 +229,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('ListLookup', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('ListLookup', GetTarget(),(Self as ICallContext));
locSerializer.Put('ListLookup', TypeInfo(ListLookup_Type), ListLookupParam); locSerializer.Put('ListLookupParam', TypeInfo(ListLookup_Type), ListLookupParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -245,7 +245,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.CustomerContentSearch( function TAWSECommerceServicePortType_Proxy.CustomerContentSearch(
Const CustomerContentSearchParam : CustomerContentSearch_Type const CustomerContentSearchParam : CustomerContentSearch_Type
):CustomerContentSearchResponse_Type; ):CustomerContentSearchResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -254,7 +254,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('CustomerContentSearch', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('CustomerContentSearch', GetTarget(),(Self as ICallContext));
locSerializer.Put('CustomerContentSearch', TypeInfo(CustomerContentSearch_Type), CustomerContentSearchParam); locSerializer.Put('CustomerContentSearchParam', TypeInfo(CustomerContentSearch_Type), CustomerContentSearchParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -270,7 +270,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.CustomerContentLookup( function TAWSECommerceServicePortType_Proxy.CustomerContentLookup(
Const CustomerContentLookupParam : CustomerContentLookup_Type const CustomerContentLookupParam : CustomerContentLookup_Type
):CustomerContentLookupResponse_Type; ):CustomerContentLookupResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -279,7 +279,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('CustomerContentLookup', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('CustomerContentLookup', GetTarget(),(Self as ICallContext));
locSerializer.Put('CustomerContentLookup', TypeInfo(CustomerContentLookup_Type), CustomerContentLookupParam); locSerializer.Put('CustomerContentLookupParam', TypeInfo(CustomerContentLookup_Type), CustomerContentLookupParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -295,7 +295,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.SimilarityLookup( function TAWSECommerceServicePortType_Proxy.SimilarityLookup(
Const SimilarityLookupParam : SimilarityLookup_Type const SimilarityLookupParam : SimilarityLookup_Type
):SimilarityLookupResponse_Type; ):SimilarityLookupResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -304,7 +304,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('SimilarityLookup', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('SimilarityLookup', GetTarget(),(Self as ICallContext));
locSerializer.Put('SimilarityLookup', TypeInfo(SimilarityLookup_Type), SimilarityLookupParam); locSerializer.Put('SimilarityLookupParam', TypeInfo(SimilarityLookup_Type), SimilarityLookupParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -320,7 +320,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.SellerLookup( function TAWSECommerceServicePortType_Proxy.SellerLookup(
Const SellerLookupParam : SellerLookup_Type const SellerLookupParam : SellerLookup_Type
):SellerLookupResponse_Type; ):SellerLookupResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -329,7 +329,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('SellerLookup', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('SellerLookup', GetTarget(),(Self as ICallContext));
locSerializer.Put('SellerLookup', TypeInfo(SellerLookup_Type), SellerLookupParam); locSerializer.Put('SellerLookupParam', TypeInfo(SellerLookup_Type), SellerLookupParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -345,7 +345,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.CartGet( function TAWSECommerceServicePortType_Proxy.CartGet(
Const CartGetParam : CartGet_Type const CartGetParam : CartGet_Type
):CartGetResponse_Type; ):CartGetResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -354,7 +354,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('CartGet', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('CartGet', GetTarget(),(Self as ICallContext));
locSerializer.Put('CartGet', TypeInfo(CartGet_Type), CartGetParam); locSerializer.Put('CartGetParam', TypeInfo(CartGet_Type), CartGetParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -370,7 +370,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.CartAdd( function TAWSECommerceServicePortType_Proxy.CartAdd(
Const CartAddParam : CartAdd_Type const CartAddParam : CartAdd_Type
):CartAddResponse_Type; ):CartAddResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -379,7 +379,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('CartAdd', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('CartAdd', GetTarget(),(Self as ICallContext));
locSerializer.Put('CartAdd', TypeInfo(CartAdd_Type), CartAddParam); locSerializer.Put('CartAddParam', TypeInfo(CartAdd_Type), CartAddParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -395,7 +395,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.CartCreate( function TAWSECommerceServicePortType_Proxy.CartCreate(
Const CartCreateParam : CartCreate_Type const CartCreateParam : CartCreate_Type
):CartCreateResponse_Type; ):CartCreateResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -404,7 +404,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('CartCreate', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('CartCreate', GetTarget(),(Self as ICallContext));
locSerializer.Put('CartCreate', TypeInfo(CartCreate_Type), CartCreateParam); locSerializer.Put('CartCreateParam', TypeInfo(CartCreate_Type), CartCreateParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -420,7 +420,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.CartModify( function TAWSECommerceServicePortType_Proxy.CartModify(
Const CartModifyParam : CartModify_Type const CartModifyParam : CartModify_Type
):CartModifyResponse_Type; ):CartModifyResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -429,7 +429,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('CartModify', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('CartModify', GetTarget(),(Self as ICallContext));
locSerializer.Put('CartModify', TypeInfo(CartModify_Type), CartModifyParam); locSerializer.Put('CartModifyParam', TypeInfo(CartModify_Type), CartModifyParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -445,7 +445,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.CartClear( function TAWSECommerceServicePortType_Proxy.CartClear(
Const CartClearParam : CartClear_Type const CartClearParam : CartClear_Type
):CartClearResponse_Type; ):CartClearResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -454,7 +454,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('CartClear', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('CartClear', GetTarget(),(Self as ICallContext));
locSerializer.Put('CartClear', TypeInfo(CartClear_Type), CartClearParam); locSerializer.Put('CartClearParam', TypeInfo(CartClear_Type), CartClearParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -470,7 +470,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.TransactionLookup( function TAWSECommerceServicePortType_Proxy.TransactionLookup(
Const TransactionLookupParam : TransactionLookup_Type const TransactionLookupParam : TransactionLookup_Type
):TransactionLookupResponse_Type; ):TransactionLookupResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -479,7 +479,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('TransactionLookup', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('TransactionLookup', GetTarget(),(Self as ICallContext));
locSerializer.Put('TransactionLookup', TypeInfo(TransactionLookup_Type), TransactionLookupParam); locSerializer.Put('TransactionLookupParam', TypeInfo(TransactionLookup_Type), TransactionLookupParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -495,7 +495,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.SellerListingSearch( function TAWSECommerceServicePortType_Proxy.SellerListingSearch(
Const SellerListingSearchParam : SellerListingSearch_Type const SellerListingSearchParam : SellerListingSearch_Type
):SellerListingSearchResponse_Type; ):SellerListingSearchResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -504,7 +504,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('SellerListingSearch', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('SellerListingSearch', GetTarget(),(Self as ICallContext));
locSerializer.Put('SellerListingSearch', TypeInfo(SellerListingSearch_Type), SellerListingSearchParam); locSerializer.Put('SellerListingSearchParam', TypeInfo(SellerListingSearch_Type), SellerListingSearchParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -520,7 +520,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.SellerListingLookup( function TAWSECommerceServicePortType_Proxy.SellerListingLookup(
Const SellerListingLookupParam : SellerListingLookup_Type const SellerListingLookupParam : SellerListingLookup_Type
):SellerListingLookupResponse_Type; ):SellerListingLookupResponse_Type;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -529,7 +529,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('SellerListingLookup', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('SellerListingLookup', GetTarget(),(Self as ICallContext));
locSerializer.Put('SellerListingLookup', TypeInfo(SellerListingLookup_Type), SellerListingLookupParam); locSerializer.Put('SellerListingLookupParam', TypeInfo(SellerListingLookup_Type), SellerListingLookupParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();
@ -545,7 +545,7 @@ Begin
End; End;
function TAWSECommerceServicePortType_Proxy.MultiOperation( function TAWSECommerceServicePortType_Proxy.MultiOperation(
Const MultiOperationParam : MultiOperationType const MultiOperationParam : MultiOperation_Type
):MultiOperationResponse; ):MultiOperationResponse;
Var Var
locSerializer : IFormatterClient; locSerializer : IFormatterClient;
@ -554,7 +554,7 @@ Begin
locSerializer := GetSerializer(); locSerializer := GetSerializer();
Try Try
locSerializer.BeginCall('MultiOperation', GetTarget(),(Self as ICallContext)); locSerializer.BeginCall('MultiOperation', GetTarget(),(Self as ICallContext));
locSerializer.Put('MultiOperation', TypeInfo(MultiOperationType), MultiOperationParam); locSerializer.Put('MultiOperationParam', TypeInfo(MultiOperation_Type), MultiOperationParam);
locSerializer.EndCall(); locSerializer.EndCall();
MakeCall(); MakeCall();

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<PathDelim Value="/"/> <PathDelim Value="\"/>
<Version Value="5"/> <Version Value="5"/>
<General> <General>
<Flags> <Flags>
@ -10,7 +10,7 @@
<MainUnitHasTitleStatement Value="False"/> <MainUnitHasTitleStatement Value="False"/>
</Flags> </Flags>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value=".\"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/> <ActiveEditorIndexAtStart Value="0"/>
</General> </General>
@ -19,6 +19,7 @@
</VersionInfo> </VersionInfo>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
<IgnoreBinaries Value="False"/> <IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
@ -26,36 +27,36 @@
<RunParams> <RunParams>
<local> <local>
<FormatVersion Value="1"/> <FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
</local> </local>
</RunParams> </RunParams>
<Units Count="6"> <Units Count="7">
<Unit0> <Unit0>
<Filename Value="amazon_sample.pas"/> <Filename Value="amazon_sample.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="amazon_sample"/> <UnitName Value="amazon_sample"/>
<CursorPos X="33" Y="12"/> <CursorPos X="19" Y="12"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="20"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="../../synapse_http_protocol.pas"/> <Filename Value="..\..\synapse_http_protocol.pas"/>
<UnitName Value="synapse_http_protocol"/> <UnitName Value="synapse_http_protocol"/>
<CursorPos X="9" Y="23"/> <CursorPos X="9" Y="23"/>
<TopLine Value="2"/> <TopLine Value="2"/>
<EditorIndex Value="4"/> <EditorIndex Value="5"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="AWSECommerceService.pas"/> <Filename Value="AWSECommerceService.pas"/>
<UnitName Value="AWSECommerceService"/> <UnitName Value="AWSECommerceService"/>
<CursorPos X="1" Y="1"/> <CursorPos X="72" Y="20731"/>
<TopLine Value="1"/> <TopLine Value="20710"/>
<EditorIndex Value="2"/> <EditorIndex Value="3"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
@ -63,36 +64,46 @@
<UnitName Value="AWSECommerceService_proxy"/> <UnitName Value="AWSECommerceService_proxy"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="1"/> <EditorIndex Value="2"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="../../../../../lazarus23_213/others_package/synapse/httpsend.pas"/> <Filename Value="..\..\..\..\..\lazarus23_213\others_package\synapse\httpsend.pas"/>
<UnitName Value="httpsend"/> <UnitName Value="httpsend"/>
<CursorPos X="27" Y="2"/> <CursorPos X="27" Y="2"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
<Filename Value="../../base_service_intf.pas"/> <Filename Value="..\..\base_service_intf.pas"/>
<UnitName Value="base_service_intf"/> <UnitName Value="base_service_intf"/>
<CursorPos X="1" Y="4148"/> <CursorPos X="1" Y="4148"/>
<TopLine Value="4118"/> <TopLine Value="4118"/>
<EditorIndex Value="3"/> <EditorIndex Value="4"/>
<UsageCount Value="10"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit5> </Unit5>
<Unit6>
<Filename Value="..\..\semaphore.pas"/>
<UnitName Value="semaphore"/>
<CursorPos X="1" Y="140"/>
<TopLine Value="116"/>
<EditorIndex Value="1"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit6>
</Units> </Units>
<JumpHistory Count="0" HistoryIndex="-1"/> <JumpHistory Count="0" HistoryIndex="-1"/>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
<PathDelim Value="\"/>
<Target> <Target>
<Filename Value="amazon_sample"/> <Filename Value="amazon_sample"/>
</Target> </Target>
<SearchPaths> <SearchPaths>
<OtherUnitFiles Value="../../;$(LazarusDir)/others_package/synapse/"/> <OtherUnitFiles Value="..\..\;$(LazarusDir)\others_package\synapse\"/>
<UnitOutputDirectory Value="obj"/> <UnitOutputDirectory Value="obj"/>
</SearchPaths> </SearchPaths>
<CodeGeneration> <CodeGeneration>
@ -105,19 +116,19 @@
<Debugging> <Debugging>
<BreakPoints Count="4"> <BreakPoints Count="4">
<Item1> <Item1>
<Source Value="D:/lazarusClean/fpcsrc/rtl/inc/getopts.pp"/> <Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
<Line Value="230"/> <Line Value="230"/>
</Item1> </Item1>
<Item2> <Item2>
<Source Value="D:/lazarusClean/fpcsrc/rtl/inc/getopts.pp"/> <Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
<Line Value="193"/> <Line Value="193"/>
</Item2> </Item2>
<Item3> <Item3>
<Source Value="D:/lazarusClean/fpcsrc/rtl/inc/getopts.pp"/> <Source Value="D:\lazarusClean\fpcsrc\rtl\inc\getopts.pp"/>
<Line Value="198"/> <Line Value="198"/>
</Item3> </Item3>
<Item4> <Item4>
<Source Value="../../ws_helper/wsdl2pas_imp.pas"/> <Source Value="..\..\ws_helper\wsdl2pas_imp.pas"/>
<Line Value="606"/> <Line Value="606"/>
</Item4> </Item4>
</BreakPoints> </BreakPoints>

View File

@ -34,10 +34,10 @@
-N"obj" -N"obj"
-LE"c:\program files\borland\delphi7\Projects\Bpl" -LE"c:\program files\borland\delphi7\Projects\Bpl"
-LN"c:\program files\borland\delphi7\Projects\Bpl" -LN"c:\program files\borland\delphi7\Projects\Bpl"
-U"..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse" -U"c:\program files\borland\delphi7\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\"
-O"..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse" -O"c:\program files\borland\delphi7\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\"
-I"..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse" -I"c:\program files\borland\delphi7\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\"
-R"..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse" -R"c:\program files\borland\delphi7\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\"
-w-UNSAFE_TYPE -w-UNSAFE_TYPE
-w-UNSAFE_CODE -w-UNSAFE_CODE
-w-UNSAFE_CAST -w-UNSAFE_CAST

View File

@ -94,10 +94,10 @@ OutputDir=
UnitOutputDir=obj UnitOutputDir=obj
PackageDLLOutputDir= PackageDLLOutputDir=
PackageDCPOutputDir= PackageDCPOutputDir=
SearchPath=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse SearchPath=$(DELPHI)\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;FIBDBMidas7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxForumLibD7;cxLibraryVCLD7;cxPageControlVCLD7;dxBarD7;dxComnD7;dxBarDBNavD7;dxBarExtItemsD7;dxBarExtDBItemsD7;dxsbD7;dxmdsD7;dxdbtrD7;dxtrmdD7;dxorgcD7;dxdborD7;dxEdtrD7;EQTLD7;ECQDBCD7;EQDBTLD7;EQGridD7;dxGrEdD7;dxExELD7;dxELibD7;cxEditorsVCLD7;cxGridVCLD7;dxThemeD7;cxDataD7;cxGridUtilsVCLD7;dxPSCoreD7;dxPsPrVwAdvD7;dxPSLnksD7;dxPSTeeChartD7;dxPSDBTeeChartD7;dxPSdxDBTVLnkD7;dxPSdxOCLnkD7;dxPSdxDBOCLnkD7;dxPScxGridLnkD7;dxPSTLLnkD7;qrpt Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;FIBDBMidas7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxForumLibD7;cxLibraryVCLD7;cxPageControlVCLD7;dxBarD7;dxComnD7;dxBarDBNavD7;dxBarExtItemsD7;dxBarExtDBItemsD7;dxsbD7;dxmdsD7;dxdbtrD7;dxtrmdD7;dxorgcD7;dxdborD7;dxEdtrD7;EQTLD7;ECQDBCD7;EQDBTLD7;EQGridD7;dxGrEdD7;dxExELD7;dxELibD7;cxEditorsVCLD7;cxGridVCLD7;dxThemeD7;cxDataD7;cxGridUtilsVCLD7;dxPSCoreD7;dxPsPrVwAdvD7;dxPSLnksD7;dxPSTeeChartD7;dxPSDBTeeChartD7;dxPSdxDBTVLnkD7;dxPSdxOCLnkD7;dxPSdxDBOCLnkD7;dxPScxGridLnkD7;dxPSTLLnkD7;qrpt
Conditionals= Conditionals=
DebugSourceDirs= DebugSourceDirs=C:\Programmes\lazarus\wst\trunk\
UsePackages=0 UsePackages=0
[Parameters] [Parameters]
RunParams= RunParams=
@ -146,11 +146,13 @@ C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSc
Count=1 Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath] [HistoryLists\hlSearchPath]
Count=4 Count=6
Item0=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse Item0=$(DELPHI)\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\
Item1=..\..\;..\..\..\ Item1=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\
Item2=..\..\ Item2=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse
Item3=..\ Item3=..\..\;..\..\..\
Item4=..\..\
Item5=..\
[HistoryLists\hlUnitOutputDirectory] [HistoryLists\hlUnitOutputDirectory]
Count=1 Count=1
Item0=obj Item0=obj

View File

@ -3,13 +3,24 @@ program user_client_console;
{$APPTYPE CONSOLE} {$APPTYPE CONSOLE}
uses uses
Classes, SysUtils, TypInfo, Classes,
SysUtils,
TypInfo, ActiveX,
user_service_intf_proxy, user_service_intf_proxy,
synapse_tcp_protocol, synapse_http_protocol, library_protocol, synapse_tcp_protocol,
synapse_http_protocol,
library_protocol,
binary_formatter, binary_formatter,
user_service_intf; base_soap_formatter, soap_formatter,
base_xmlrpc_formatter, xmlrpc_formatter,
user_service_intf,
wst_delphi_xml in '..\..\..\wst_delphi_xml.pas';
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
type
TUser = TUser_Type;
TUserCategory = TUserCategory_Type;
var var
UserServiceInst : UserService; UserServiceInst : UserService;
@ -58,8 +69,9 @@ begin
end; end;
end; end;
procedure HandleAdd(); type TAddType = ( atAdd, atUpdate );
procedure HandleAdd(const AType :TAddType);
const CAPTIONS : array[TAddType] of string = ( 'Adding a user :', 'Updating a user :' );
function ReadItem(const APrompt : string; const ANonNull : Boolean):string ; function ReadItem(const APrompt : string; const ANonNull : Boolean):string ;
begin begin
Result := ''; Result := '';
@ -74,7 +86,7 @@ var
buff : string; buff : string;
begin begin
buff := ''; buff := '';
WriteLn('Adding a user :'); WriteLn(CAPTIONS[AType]);
try try
usr := TUser.Create(); usr := TUser.Create();
try try
@ -86,7 +98,10 @@ begin
usr.Category:= Normal; usr.Category:= Normal;
usr.eMail := ReadItem('Enter user e-mail : ',False); usr.eMail := ReadItem('Enter user e-mail : ',False);
usr.Preferences := ReadItem('Enter user Preferences : ',False); usr.Preferences := ReadItem('Enter user Preferences : ',False);
UserServiceInst.Add(usr); if ( AType = atUpdate ) then
UserServiceInst.Update(usr)
else
UserServiceInst.Add(usr);
finally finally
FreeAndNil(usr); FreeAndNil(usr);
end; end;
@ -112,28 +127,46 @@ begin
end; end;
end; end;
type TTransportType = ( ttLibrary, ttTCP, ttHTTP ); procedure HandleDeleteUser();
procedure CreateProxy(const ATransportType :TTransportType);
const ADDRESS_MAP : array[TTransportType] of string = (
'LIB:FileName=..\..\library_server\lib_server.dll;target=UserService',
'TCP:Address=127.0.0.1;Port=1234;target=UserService',
//'http:Address=http://127.0.0.1:8080/wst/services/UserService'
'http:Address=http://127.0.0.1:8000/services/UserService'
);
var var
buff : string; buff : string;
begin begin
buff := ADDRESS_MAP[ATransportType]; Write('Enter User Name : ');
if ( ATransportType = ttLibrary ) then ReadLn(buff);
UserServiceInst.Delete(buff);
end;
type
TTransportType = ( ttLibrary, ttTCP, ttHTTP );
TFormatType = ( ftBinary, ftSoap, ftXmlRPC );
var
TransportType : TTransportType;
FormatValue : TFormatType;
procedure CreateProxy();
const ADDRESS_MAP : array[TTransportType] of string = (
'LIB:FileName=..\library_server\lib_server.dll;target=UserService',
'TCP:Address=127.0.0.1;Port=1234;target=UserService',
//'http:Address=http://127.0.0.1:8080/wst/services/UserService/?format=soap'
'http:Address=http://127.0.0.1:8000/services/UserService'
);
FORMAT_MAP : array[TFormatType] of string = ( 'binary', 'soap', 'xmlrpc' );
var
buff : string;
begin
if ( TransportType = ttHTTP ) then
buff := Format('%s/?format=%s',[ADDRESS_MAP[TransportType],FORMAT_MAP[FormatValue]])
else
buff := ADDRESS_MAP[TransportType];
if ( TransportType = ttLibrary ) then
buff := StringReplace(buff,'\',PathDelim,[rfReplaceAll, rfIgnoreCase]); buff := StringReplace(buff,'\',PathDelim,[rfReplaceAll, rfIgnoreCase]);
UserServiceInst := TUserService_Proxy.Create( UserServiceInst := TUserService_Proxy.Create(
'UserService', 'UserService',
'binary:', FORMAT_MAP[FormatValue] + ':',
buff buff
); );
end; end;
function ReadTransportType():TTransportType; procedure ReadTransportType();
var var
buff : string; buff : string;
begin begin
@ -149,9 +182,34 @@ begin
buff := UpperCase(Trim(buff)); buff := UpperCase(Trim(buff));
if ( Length(buff) > 0 ) and ( buff[1] in ['L','T', 'H'] ) then begin if ( Length(buff) > 0 ) and ( buff[1] in ['L','T', 'H'] ) then begin
case buff[1] of case buff[1] of
'L' : Result := ttLibrary; 'L' : TransportType := ttLibrary;
'T' : Result := ttTCP; 'T' : TransportType := ttTCP;
'H' : Result := ttHTTP; 'H' : TransportType := ttHTTP;
end;
Break;
end;
end;
end;
procedure ReadFormatType();
var
buff : string;
begin
WriteLn;
WriteLn('Select a messaging format : ');
WriteLn(' B : binary ( binary_formatter.pas )');
WriteLn(' S : soap ( soap_formatter.pas )');
WriteLn(' X : XmlRpc ( xmlrpc_formatter.pas )');
WriteLn;
Write('Your selection : ');
while True do begin
ReadLn(buff);
buff := UpperCase(Trim(buff));
if ( Length(buff) > 0 ) and ( buff[1] in ['B','S', 'X'] ) then begin
case buff[1] of
'B' : FormatValue := ftBinary;
'S' : FormatValue := ftSoap;
'X' : FormatValue := ftXmlRPC;
end; end;
Break; Break;
end; end;
@ -160,36 +218,56 @@ end;
var var
strBuffer : string; strBuffer : string;
tt : TTransportType;
begin begin
SYNAPSE_RegisterTCP_Transport(); CoInitialize(nil);
SYNAPSE_RegisterHTTP_Transport(); try
LIB_Register_Transport(); SYNAPSE_RegisterTCP_Transport();
WriteLn('Sample Application using Web Services Toolkit'); SYNAPSE_RegisterHTTP_Transport();
CreateProxy(ReadTransportType()); LIB_Register_Transport();
WriteLn('Menu :'); WriteLn('Sample Application using Web Services Toolkit');
WriteLn(' L : Show the user list'); ReadFormatType();
WriteLn(' A : Add a new user'); ReadTransportType();
WriteLn(' F : Find a new'); CreateProxy();
WriteLn(' C : Change the communication protocol'); WriteLn('Menu :');
WriteLn(' X : Exit'); WriteLn(' L : Show the user list');
WriteLn; WriteLn(' A : Add a new user');
Write('Choose a item : '); WriteLn(' U : Update a user');
while True do begin WriteLn(' D : Delete a user');
strBuffer := ''; WriteLn(' F : Find a new');
ReadLn(strBuffer); WriteLn(' C : Change the communication protocol');
strBuffer := UpperCase(Trim(strBuffer)); WriteLn(' Z : Change the messaging format');
if ( Length(strBuffer) > 0 ) then begin WriteLn(' X : Exit');
case strBuffer[1] of WriteLn;
'L' : HandleShowAll(); Write('Choose a item : ');
'A' : HandleAdd(); while True do begin
'F' : HandleFindUser(); strBuffer := '';
'C' : CreateProxy(ReadTransportType()); ReadLn(strBuffer);
'X' : Break; strBuffer := UpperCase(Trim(strBuffer));
if ( Length(strBuffer) > 0 ) then begin
case strBuffer[1] of
'L' : HandleShowAll();
'A' : HandleAdd(atAdd);
'U' : HandleAdd(atUpdate);
'D' : HandleDeleteUser();
'F' : HandleFindUser();
'C' :
begin
ReadTransportType();
CreateProxy();
end;
'Z' :
begin
ReadFormatType();
CreateProxy();
end;
'X' : Break;
end;
WriteLn;
Write('Choose a item : ');
end; end;
WriteLn;
Write('Choose a item : ');
end; end;
finally
CoUninitialize();
end; end;
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="5"/> <ActiveEditorIndexAtStart Value="0"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -34,108 +34,114 @@
<PackageName Value="indylaz"/> <PackageName Value="indylaz"/>
</Item1> </Item1>
</RequiredPackages> </RequiredPackages>
<Units Count="21"> <Units Count="40">
<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="14"/> <CursorPos X="26" Y="14"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="30"/> <UsageCount Value="56"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="app_object.pas"/> <Filename Value="app_object.pas"/>
<UnitName Value="app_object"/> <UnitName Value="app_object"/>
<CursorPos X="17" Y="217"/> <CursorPos X="41" Y="68"/>
<TopLine Value="196"/> <TopLine Value="50"/>
<EditorIndex Value="1"/> <EditorIndex Value="3"/>
<UsageCount Value="15"/> <UsageCount Value="28"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</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="64" Y="102"/> <CursorPos X="1" Y="1"/>
<TopLine Value="85"/> <TopLine Value="1"/>
<EditorIndex Value="11"/> <EditorIndex Value="19"/>
<UsageCount Value="14"/> <UsageCount Value="27"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="..\..\metadata_wsdl.pas"/> <Filename Value="..\..\metadata_wsdl.pas"/>
<UnitName Value="metadata_wsdl"/> <UnitName Value="metadata_wsdl"/>
<CursorPos X="56" Y="308"/> <CursorPos X="1" Y="1"/>
<TopLine Value="296"/> <TopLine Value="1"/>
<EditorIndex Value="12"/> <EditorIndex Value="21"/>
<UsageCount Value="15"/> <UsageCount Value="28"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="..\..\metadata_service_imp.pas"/> <Filename Value="..\..\metadata_service_imp.pas"/>
<UnitName Value="metadata_service_imp"/> <UnitName Value="metadata_service_imp"/>
<CursorPos X="73" Y="68"/> <CursorPos X="1" Y="1"/>
<TopLine Value="54"/> <TopLine Value="1"/>
<UsageCount Value="9"/> <EditorIndex Value="8"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
<Filename Value="..\user_service_intf_imp.pas"/> <Filename Value="..\user_service_intf_imp.pas"/>
<UnitName Value="user_service_intf_imp"/> <UnitName Value="user_service_intf_imp"/>
<CursorPos X="1" Y="178"/> <CursorPos X="22" Y="161"/>
<TopLine Value="160"/> <TopLine Value="160"/>
<EditorIndex Value="9"/> <EditorIndex Value="16"/>
<UsageCount Value="12"/> <UsageCount Value="25"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="..\user_service_intf_binder.pas"/> <Filename Value="..\user_service_intf_binder.pas"/>
<UnitName Value="user_service_intf_binder"/> <UnitName Value="user_service_intf_binder"/>
<CursorPos X="69" Y="11"/> <CursorPos X="23" Y="291"/>
<TopLine Value="1"/> <TopLine Value="264"/>
<UsageCount Value="9"/> <EditorIndex Value="4"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
<Filename Value="..\user_service_intf.pas"/> <Filename Value="..\user_service_intf.pas"/>
<UnitName Value="user_service_intf"/> <UnitName Value="user_service_intf"/>
<CursorPos X="3" Y="87"/> <CursorPos X="1" Y="1"/>
<TopLine Value="158"/> <TopLine Value="180"/>
<EditorIndex Value="4"/> <EditorIndex Value="17"/>
<UsageCount Value="12"/> <UsageCount Value="25"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
<Filename Value="..\..\metadata_repository.pas"/> <Filename Value="..\..\metadata_repository.pas"/>
<UnitName Value="metadata_repository"/> <UnitName Value="metadata_repository"/>
<CursorPos X="5" Y="45"/> <CursorPos X="1" Y="1"/>
<TopLine Value="99"/> <TopLine Value="1"/>
<EditorIndex Value="13"/> <EditorIndex Value="22"/>
<UsageCount Value="15"/> <UsageCount Value="28"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
<Filename Value="..\..\semaphore.pas"/> <Filename Value="..\..\semaphore.pas"/>
<UnitName Value="semaphore"/> <UnitName Value="semaphore"/>
<CursorPos X="35" Y="85"/> <CursorPos X="2" Y="12"/>
<TopLine Value="24"/> <TopLine Value="1"/>
<UsageCount Value="10"/> <EditorIndex Value="20"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit9> </Unit9>
<Unit10> <Unit10>
<Filename Value="..\..\server_service_intf.pas"/> <Filename Value="..\..\server_service_intf.pas"/>
<UnitName Value="server_service_intf"/> <UnitName Value="server_service_intf"/>
<CursorPos X="14" Y="268"/> <CursorPos X="1" Y="1"/>
<TopLine Value="267"/> <TopLine Value="1"/>
<EditorIndex Value="8"/> <EditorIndex Value="15"/>
<UsageCount Value="14"/> <UsageCount Value="27"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit10> </Unit10>
<Unit11> <Unit11>
<Filename Value="..\..\server_service_soap.pas"/> <Filename Value="..\..\server_service_soap.pas"/>
<UnitName Value="server_service_soap"/> <UnitName Value="server_service_soap"/>
<CursorPos X="44" Y="196"/> <CursorPos X="1" Y="1"/>
<TopLine Value="79"/> <TopLine Value="1"/>
<EditorIndex Value="5"/> <EditorIndex Value="12"/>
<UsageCount Value="14"/> <UsageCount Value="27"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
@ -143,17 +149,17 @@
<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="7"/> <EditorIndex Value="14"/>
<UsageCount Value="14"/> <UsageCount Value="27"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
<Filename Value="..\..\server_service_imputils.pas"/> <Filename Value="..\..\server_service_imputils.pas"/>
<UnitName Value="server_service_imputils"/> <UnitName Value="server_service_imputils"/>
<CursorPos X="25" Y="94"/> <CursorPos X="1" Y="1"/>
<TopLine Value="68"/> <TopLine Value="1"/>
<EditorIndex Value="10"/> <EditorIndex Value="18"/>
<UsageCount Value="13"/> <UsageCount Value="26"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
@ -161,177 +167,189 @@
<UnitName Value="IdCustomHTTPServer"/> <UnitName Value="IdCustomHTTPServer"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="10"/> <UsageCount Value="8"/>
</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="10"/> <UsageCount Value="8"/>
</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="9"/> <UsageCount Value="7"/>
</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="10"/> <UsageCount Value="8"/>
</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="53" Y="177"/> <CursorPos X="1" Y="1"/>
<TopLine Value="152"/> <TopLine Value="1"/>
<EditorIndex Value="2"/> <EditorIndex Value="7"/>
<UsageCount Value="12"/> <UsageCount Value="25"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit18> </Unit18>
<Unit19> <Unit19>
<Filename Value="..\..\server_binary_formatter.pas"/> <Filename Value="..\..\server_binary_formatter.pas"/>
<UnitName Value="server_binary_formatter"/> <UnitName Value="server_binary_formatter"/>
<CursorPos X="50" Y="133"/> <CursorPos X="1" Y="1"/>
<TopLine Value="109"/> <TopLine Value="1"/>
<EditorIndex Value="6"/> <EditorIndex Value="13"/>
<UsageCount Value="10"/> <UsageCount Value="23"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit19> </Unit19>
<Unit20> <Unit20>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/> <Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<UnitName Value="base_xmlrpc_formatter"/> <UnitName Value="base_xmlrpc_formatter"/>
<CursorPos X="3" Y="30"/> <CursorPos X="18" Y="21"/>
<TopLine Value="15"/> <TopLine Value="1"/>
<EditorIndex Value="3"/> <EditorIndex Value="11"/>
<UsageCount Value="10"/> <UsageCount Value="23"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit20> </Unit20>
<Unit21>
<Filename Value="..\..\..\..\..\..\lazarus23_213\others_package\indy\indy-10.2.0.1\fpc\Core\IdSocketHandle.pas"/>
<UnitName Value="IdSocketHandle"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="8"/>
</Unit21>
<Unit22>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\lazarus\IdAboutVCL.pas"/>
<UnitName Value="IdAboutVCL"/>
<CursorPos X="19" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="9"/>
</Unit22>
<Unit23>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\others_package\indy\indy-10.2.0.1\fpc\System\IdGlobal.pas"/>
<UnitName Value="IdGlobal"/>
<CursorPos X="59" Y="982"/>
<TopLine Value="981"/>
<UsageCount Value="9"/>
</Unit23>
<Unit24>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
<CursorPos X="12" Y="852"/>
<TopLine Value="871"/>
<UsageCount Value="10"/>
</Unit24>
<Unit25>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\innr.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="42"/>
<UsageCount Value="9"/>
</Unit25>
<Unit26>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\i386\fastmove.inc"/>
<CursorPos X="11" Y="835"/>
<TopLine Value="821"/>
<UsageCount Value="10"/>
</Unit26>
<Unit27>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\system.inc"/>
<CursorPos X="11" Y="306"/>
<TopLine Value="285"/>
<EditorIndex Value="5"/>
<UsageCount Value="17"/>
<Loaded Value="True"/>
</Unit27>
<Unit28>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\generic.inc"/>
<CursorPos X="5" Y="1289"/>
<TopLine Value="1"/>
<UsageCount Value="16"/>
</Unit28>
<Unit29>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\system.fpd"/>
<CursorPos X="22" Y="17"/>
<TopLine Value="1"/>
<UsageCount Value="9"/>
</Unit29>
<Unit30>
<Filename Value="..\..\wst_fpc_xml.pas"/>
<UnitName Value="wst_fpc_xml"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="2"/>
<UsageCount Value="16"/>
<Loaded Value="True"/>
</Unit30>
<Unit31>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysstrh.inc"/>
<CursorPos X="11" Y="66"/>
<TopLine Value="52"/>
<EditorIndex Value="1"/>
<UsageCount Value="16"/>
<Loaded Value="True"/>
</Unit31>
<Unit32>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\sysutils\sysstr.inc"/>
<CursorPos X="6" Y="44"/>
<TopLine Value="30"/>
<UsageCount Value="9"/>
</Unit32>
<Unit33>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win\sysosh.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="51"/>
<UsageCount Value="9"/>
</Unit33>
<Unit34>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="322"/>
<UsageCount Value="9"/>
</Unit34>
<Unit35>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\varianth.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="9"/>
</Unit35>
<Unit36>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\rtti.inc"/>
<CursorPos X="21" Y="77"/>
<TopLine Value="77"/>
<EditorIndex Value="6"/>
<UsageCount Value="16"/>
<Loaded Value="True"/>
</Unit36>
<Unit37>
<Filename Value="..\..\metadata_service.pas"/>
<UnitName Value="metadata_service"/>
<CursorPos X="26" Y="13"/>
<TopLine Value="1"/>
<EditorIndex Value="9"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit37>
<Unit38>
<Filename Value="..\..\wst_rtti_filter\cursor_intf.pas"/>
<UnitName Value="cursor_intf"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="10"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit38>
<Unit39>
<Filename Value="..\user_service_intf.wst"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
<SyntaxHighlighter Value="None"/>
</Unit39>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="0" HistoryIndex="-1"/>
<Position1>
<Filename Value="..\..\base_service_intf.pas"/>
<Caret Line="2020" Column="1" TopLine="2004"/>
</Position1>
<Position2>
<Filename Value="..\..\base_service_intf.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position2>
<Position3>
<Filename Value="..\..\base_service_intf.pas"/>
<Caret Line="1188" Column="13" TopLine="1173"/>
</Position3>
<Position4>
<Filename Value="..\..\base_service_intf.pas"/>
<Caret Line="1272" Column="15" TopLine="1243"/>
</Position4>
<Position5>
<Filename Value="..\..\base_service_intf.pas"/>
<Caret Line="1424" Column="44" TopLine="1408"/>
</Position5>
<Position6>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="351" Column="33" TopLine="330"/>
</Position6>
<Position7>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="266" Column="15" TopLine="251"/>
</Position7>
<Position8>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="359" Column="1" TopLine="336"/>
</Position8>
<Position9>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position9>
<Position10>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="351" Column="1" TopLine="336"/>
</Position10>
<Position11>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="371" Column="63" TopLine="348"/>
</Position11>
<Position12>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="253" Column="70" TopLine="244"/>
</Position12>
<Position13>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="260" Column="18" TopLine="244"/>
</Position13>
<Position14>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="314" Column="16" TopLine="306"/>
</Position14>
<Position15>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="306" Column="29" TopLine="291"/>
</Position15>
<Position16>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="260" Column="56" TopLine="260"/>
</Position16>
<Position17>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="306" Column="41" TopLine="306"/>
</Position17>
<Position18>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="260" Column="25" TopLine="260"/>
</Position18>
<Position19>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="306" Column="46" TopLine="306"/>
</Position19>
<Position20>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="310" Column="27" TopLine="295"/>
</Position20>
<Position21>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="365" Column="10" TopLine="356"/>
</Position21>
<Position22>
<Filename Value="..\..\server_service_intf.pas"/>
<Caret Line="364" Column="30" TopLine="349"/>
</Position22>
<Position23>
<Filename Value="..\..\server_service_soap.pas"/>
<Caret Line="21" Column="18" TopLine="31"/>
</Position23>
<Position24>
<Filename Value="..\..\server_service_soap.pas"/>
<Caret Line="196" Column="38" TopLine="171"/>
</Position24>
<Position25>
<Filename Value="..\..\server_binary_formatter.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position25>
<Position26>
<Filename Value="..\..\server_binary_formatter.pas"/>
<Caret Line="132" Column="37" TopLine="108"/>
</Position26>
<Position27>
<Filename Value="..\..\server_service_soap.pas"/>
<Caret Line="196" Column="44" TopLine="171"/>
</Position27>
<Position28>
<Filename Value="..\..\server_binary_formatter.pas"/>
<Caret Line="26" Column="41" TopLine="15"/>
</Position28>
<Position29>
<Filename Value="..\..\server_service_xmlrpc.pas"/>
<Caret Line="51" Column="55" TopLine="40"/>
</Position29>
<Position30>
<Filename Value="..\..\server_service_xmlrpc.pas"/>
<Caret Line="177" Column="37" TopLine="152"/>
</Position30>
</JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
@ -340,8 +358,10 @@
<Filename Value="http_server"/> <Filename Value="http_server"/>
</Target> </Target>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="..\..\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Inc\"/>
<OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\"/> <OtherUnitFiles Value="..\;..\..\;..\..\wst_rtti_filter\"/>
<UnitOutputDirectory Value="obj"/> <UnitOutputDirectory Value="obj"/>
<SrcPath Value="$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Core\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\Protocols\;$(LazarusDir)\others_package\indy\indy-10.2.0.1\fpc\System\"/>
</SearchPaths> </SearchPaths>
<Parsing> <Parsing>
<SyntaxOptions> <SyntaxOptions>

View File

@ -1,7 +1,6 @@
{$INCLUDE wst_global.inc}
unit imp_helper; unit imp_helper;
{$mode objfpc}{$H+}
interface interface
uses uses

View File

@ -12,7 +12,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value=".\"/> <IconPath Value=".\"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/> <ActiveEditorIndexAtStart Value="13"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -30,24 +30,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="30"> <Units Count="35">
<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="40" Y="150"/> <CursorPos X="64" Y="30"/>
<TopLine Value="133"/> <TopLine Value="1"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="53"/> <UsageCount Value="64"/>
<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="1" Y="68"/> <CursorPos X="74" Y="12"/>
<TopLine Value="54"/> <TopLine Value="1"/>
<EditorIndex Value="6"/> <EditorIndex Value="7"/>
<UsageCount Value="25"/> <UsageCount Value="30"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
@ -55,26 +55,24 @@
<UnitName Value="synapse_tcp_protocol"/> <UnitName Value="synapse_tcp_protocol"/>
<CursorPos X="29" Y="132"/> <CursorPos X="29" Y="132"/>
<TopLine Value="101"/> <TopLine Value="101"/>
<EditorIndex Value="9"/> <EditorIndex Value="13"/>
<UsageCount Value="27"/> <UsageCount Value="32"/>
<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="3" Y="31"/> <CursorPos X="38" Y="2"/>
<TopLine Value="9"/> <TopLine Value="1"/>
<EditorIndex Value="4"/> <UsageCount Value="28"/>
<UsageCount Value="27"/>
<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="3" Y="3"/> <CursorPos X="53" Y="11"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="1"/> <EditorIndex Value="2"/>
<UsageCount Value="24"/> <UsageCount Value="29"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
@ -82,184 +80,345 @@
<UnitName Value="blcksock"/> <UnitName Value="blcksock"/>
<CursorPos X="60" Y="2413"/> <CursorPos X="60" Y="2413"/>
<TopLine Value="2393"/> <TopLine Value="2393"/>
<UsageCount Value="7"/> <UsageCount Value="6"/>
</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="3"/> <EditorIndex Value="4"/>
<UsageCount Value="27"/> <UsageCount Value="32"/>
<Loaded Value="True"/> <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="18" Y="5"/> <CursorPos X="1" Y="13"/>
<TopLine Value="26"/> <TopLine Value="1"/>
<UsageCount Value="15"/> <EditorIndex Value="5"/>
<UsageCount Value="20"/>
<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="7"/> <UsageCount Value="6"/>
</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="7"/> <UsageCount Value="6"/>
</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="7"/> <UsageCount Value="6"/>
</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="7"/> <UsageCount Value="6"/>
</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="7"/> <UsageCount Value="6"/>
</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="7"/> <UsageCount Value="6"/>
</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="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="22"/> <TopLine Value="22"/>
<UsageCount Value="15"/> <UsageCount Value="14"/>
</Unit14> </Unit14>
<Unit15> <Unit15>
<Filename Value="..\..\metadata_repository.pas"/> <Filename Value="..\..\metadata_repository.pas"/>
<UnitName Value="metadata_repository"/> <UnitName Value="metadata_repository"/>
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="15"/> <UsageCount Value="14"/>
</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="15"/> <UsageCount Value="14"/>
</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="10"/> <UsageCount Value="9"/>
</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="8"/> <UsageCount Value="7"/>
</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="8"/> <UsageCount Value="7"/>
</Unit19> </Unit19>
<Unit20> <Unit20>
<Filename Value="..\..\soap_formatter.pas"/> <Filename Value="..\..\soap_formatter.pas"/>
<UnitName Value="soap_formatter"/> <UnitName Value="soap_formatter"/>
<CursorPos X="21" Y="42"/> <CursorPos X="21" Y="42"/>
<TopLine Value="46"/> <TopLine Value="46"/>
<UsageCount Value="18"/> <UsageCount Value="17"/>
</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="18" Y="139"/> <CursorPos X="25" Y="72"/>
<TopLine Value="128"/> <TopLine Value="65"/>
<EditorIndex Value="5"/> <EditorIndex Value="6"/>
<UsageCount Value="39"/> <UsageCount Value="50"/>
<Loaded Value="True"/> <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="17" Y="23"/> <CursorPos X="20" Y="21"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<EditorIndex Value="8"/> <EditorIndex Value="9"/>
<UsageCount Value="20"/> <UsageCount Value="25"/>
<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="8"/> <UsageCount Value="7"/>
</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="1" Y="1323"/> <CursorPos X="20" Y="1346"/>
<TopLine Value="1309"/> <TopLine Value="1326"/>
<EditorIndex Value="7"/> <EditorIndex Value="8"/>
<UsageCount Value="20"/> <UsageCount Value="25"/>
<Loaded Value="True"/> <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="1" Y="1"/> <CursorPos X="56" Y="334"/>
<TopLine Value="1"/> <TopLine Value="319"/>
<EditorIndex Value="2"/> <EditorIndex Value="3"/>
<UsageCount Value="19"/> <UsageCount Value="24"/>
<Loaded Value="True"/> <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="13"/> <UsageCount Value="12"/>
</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="13"/> <UsageCount Value="12"/>
</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="13"/> <UsageCount Value="12"/>
</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="13"/> <UsageCount Value="12"/>
</Unit29> </Unit29>
<Unit30>
<Filename Value="..\..\imp_utils.pas"/>
<UnitName Value="imp_utils"/>
<CursorPos X="26" Y="13"/>
<TopLine Value="1"/>
<EditorIndex Value="1"/>
<UsageCount Value="15"/>
<Loaded Value="True"/>
</Unit30>
<Unit31>
<Filename Value="..\..\wst_fpc_xml.pas"/>
<UnitName Value="wst_fpc_xml"/>
<CursorPos X="34" Y="67"/>
<TopLine Value="54"/>
<EditorIndex Value="11"/>
<UsageCount Value="15"/>
<Loaded Value="True"/>
</Unit31>
<Unit32>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\typinfo.pp"/>
<UnitName Value="typinfo"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="34"/>
<UsageCount Value="9"/>
</Unit32>
<Unit33>
<Filename Value="..\..\base_binary_formatter.pas"/>
<UnitName Value="base_binary_formatter"/>
<CursorPos X="35" Y="1496"/>
<TopLine Value="1483"/>
<EditorIndex Value="10"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit33>
<Unit34>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<UnitName Value="DOM"/>
<CursorPos X="14" Y="287"/>
<TopLine Value="274"/>
<EditorIndex Value="12"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit34>
</Units> </Units>
<JumpHistory Count="1" HistoryIndex="0"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="user_client_console.pas"/> <Filename Value="..\..\wst_fpc_xml.pas"/>
<Caret Line="147" Column="27" TopLine="133"/> <Caret Line="67" Column="34" TopLine="54"/>
</Position1> </Position1>
<Position2>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="304" Column="36" TopLine="298"/>
</Position2>
<Position3>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="249" Column="54" TopLine="236"/>
</Position3>
<Position4>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="320" Column="63" TopLine="307"/>
</Position4>
<Position5>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="345" Column="58" TopLine="332"/>
</Position5>
<Position6>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="347" Column="60" TopLine="334"/>
</Position6>
<Position7>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="449" Column="66" TopLine="436"/>
</Position7>
<Position8>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="541" Column="58" TopLine="528"/>
</Position8>
<Position9>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="543" Column="62" TopLine="530"/>
</Position9>
<Position10>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="544" Column="62" TopLine="531"/>
</Position10>
<Position11>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="546" Column="66" TopLine="533"/>
</Position11>
<Position12>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="548" Column="58" TopLine="535"/>
</Position12>
<Position13>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="968" Column="3" TopLine="966"/>
</Position13>
<Position14>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="1357" Column="75" TopLine="1344"/>
</Position14>
<Position15>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="1360" Column="22" TopLine="1347"/>
</Position15>
<Position16>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="1465" Column="71" TopLine="1452"/>
</Position16>
<Position17>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="1532" Column="74" TopLine="1519"/>
</Position17>
<Position18>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="1862" Column="75" TopLine="1849"/>
</Position18>
<Position19>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="1864" Column="65" TopLine="1851"/>
</Position19>
<Position20>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2038" Column="66" TopLine="2025"/>
</Position20>
<Position21>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2045" Column="63" TopLine="2032"/>
</Position21>
<Position22>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2074" Column="12" TopLine="2061"/>
</Position22>
<Position23>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2104" Column="70" TopLine="2091"/>
</Position23>
<Position24>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2107" Column="65" TopLine="2094"/>
</Position24>
<Position25>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2148" Column="74" TopLine="2135"/>
</Position25>
<Position26>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2150" Column="65" TopLine="2137"/>
</Position26>
<Position27>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2159" Column="66" TopLine="2146"/>
</Position27>
<Position28>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2171" Column="22" TopLine="2170"/>
</Position28>
<Position29>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="2172" Column="26" TopLine="2158"/>
</Position29>
<Position30>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<Caret Line="258" Column="23" TopLine="245"/>
</Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -23,6 +23,10 @@ begin
WriteLn(' Category = ',GetEnumName(TypeInfo(TUserCategory),Ord(AUser.Category))); WriteLn(' Category = ',GetEnumName(TypeInfo(TUserCategory),Ord(AUser.Category)));
WriteLn(' e-Mail = ',AUser.eMail); WriteLn(' e-Mail = ',AUser.eMail);
WriteLn(' Preferences = ',AUser.Preferences); WriteLn(' Preferences = ',AUser.Preferences);
WriteLn(' Note');
WriteLn(' Header = ',AUser.Note.Header);
WriteLn(' Author = ',AUser.Note.Author);
WriteLn(' Date = ',AUser.Note.Date);
end else begin end else begin
WriteLn('<Empty User>'); WriteLn('<Empty User>');
end; end;
@ -89,6 +93,12 @@ begin
usr.Category:= Normal; usr.Category:= Normal;
usr.eMail := ReadItem('Enter user e-mail : ',False); usr.eMail := ReadItem('Enter user e-mail : ',False);
usr.Preferences := ReadItem('Enter user Preferences : ',False); usr.Preferences := ReadItem('Enter user Preferences : ',False);
buff := UpperCase(ReadItem('Do you want to add some notes : ',True));
if ( buff[1] = 'O' ) then begin
usr.Note.Header := ReadItem('Enter user Note.Header : ',False);
usr.Note.Author := ReadItem('Enter user Note.Author : ',False);
usr.Note.Date := ReadItem('Enter user Note.Date : ',False);
end;
if ( AType = atUpdate ) then if ( AType = atUpdate ) then
UserServiceInst.Update(usr) UserServiceInst.Update(usr)
else else

View File

@ -2,7 +2,7 @@
This unit has been produced by ws_helper. This unit has been produced by ws_helper.
Input unit name : "user_service_intf". Input unit name : "user_service_intf".
This unit name : "user_service_intf". This unit name : "user_service_intf".
Date : "26/06/2007 23:46:28". Date : "12/07/2007 10:55:02".
} }
unit user_service_intf; unit user_service_intf;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF} {$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
@ -18,6 +18,7 @@ type
TUserArray = class; TUserArray = class;
TUser_Type = class; TUser_Type = class;
TNote_Type = class;
TUserCategory_Type = ( TUserCategory_Type = (
Normal Normal
@ -30,11 +31,27 @@ type
FUserName : string; FUserName : string;
FeMail : string; FeMail : string;
FPreferences : string; FPreferences : string;
FNote : TNote_Type;
public
constructor Create();override;
destructor Destroy();override;
published published
property Category : TUserCategory_Type read FCategory write FCategory; property Category : TUserCategory_Type read FCategory write FCategory;
property UserName : string read FUserName write FUserName; property UserName : string read FUserName write FUserName;
property eMail : string read FeMail write FeMail; property eMail : string read FeMail write FeMail;
property Preferences : string read FPreferences write FPreferences; property Preferences : string read FPreferences write FPreferences;
property Note : TNote_Type read FNote write FNote;
end;
TNote_Type = class(TBaseComplexRemotable)
private
FHeader : string;
FAuthor : string;
FDate : string;
published
property Header : string read FHeader write FHeader;
property Author : string read FAuthor write FAuthor;
property Date : string read FDate write FDate;
end; end;
TUserArray = class(TBaseObjectArrayRemotable) TUserArray = class(TBaseObjectArrayRemotable)
@ -46,7 +63,7 @@ type
end; end;
UserService = interface(IInvokable) UserService = interface(IInvokable)
['{757DE451-CE83-454C-8757-6D72428EB1AA}'] ['{F49D8FA4-9BBC-4321-9869-5BA745070ABC}']
function GetList():TUserArray; function GetList():TUserArray;
procedure Add( procedure Add(
const AUser : TUser_Type const AUser : TUser_Type
@ -67,6 +84,21 @@ type
Implementation Implementation
uses metadata_repository; uses metadata_repository;
{ TUser_Type }
constructor TUser_Type.Create();
begin
inherited Create();
FNote := TNote_Type.Create();
end;
destructor TUser_Type.Destroy();
begin
if Assigned(FNote) then
FreeAndNil(FNote);
inherited Destroy();
end;
{ TUserArray } { TUserArray }
function TUserArray.GetItem(AIndex: Integer): TUser_Type; function TUserArray.GetItem(AIndex: Integer): TUser_Type;
@ -208,10 +240,11 @@ end;
initialization initialization
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUserCategory_Type),'TUserCategory'); GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUserCategory_Type),'TUserCategory');
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TUserCategory_Type)].RegisterExternalPropertyName('Normal','result');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUser_Type),'TUser'); GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUser_Type),'TUser');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TNote_Type),'TNote');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUserArray),'TUserArray'); GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUserArray),'TUserArray');
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TUserArray)].RegisterExternalPropertyName(sARRAY_ITEM,'item'); GetTypeRegistry().ItemByTypeInfo[TypeInfo(TUserArray)].RegisterExternalPropertyName(sARRAY_ITEM,'item');
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TUser_Type)].RegisterExternalPropertyName('Category','item');
End. End.

View File

@ -1,28 +1,32 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<definitions name="user_service_intf" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:UserService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:UserService"> <definitions name="urn:UserService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:UserService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:UserService">
<types> <types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:UserService"> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:UserService">
<xsd:complexType name="TUserArray">
<xsd:sequence><xsd:element name="item" type="tns:TUser" maxOccurs="unbounded" minOccurs="0"/></xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TUser">
<xsd:sequence>
<xsd:element name="Category" type="tns:TUserCategory" maxOccurs="1" minOccurs="1"/>
<xsd:element name="UserName" type="xsd:string" maxOccurs="1" minOccurs="1"/>
<xsd:element name="eMail" type="xsd:string" maxOccurs="1" minOccurs="1"/>
<xsd:element name="Preferences" type="xsd:string" maxOccurs="1" minOccurs="1"/>
<xsd:element name="Note" type="tns:TNote" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="TUserCategory"> <xsd:simpleType name="TUserCategory">
<xsd:restriction base="xsd:string"> <xsd:restriction base="xsd:string">
<xsd:enumeration value="Normal"/> <xsd:enumeration value="Normal"/>
<xsd:enumeration value="Admin"/> <xsd:enumeration value="Admin"/>
</xsd:restriction> </xsd:restriction>
</xsd:simpleType> </xsd:simpleType>
<xsd:element name="TUser"> <xsd:complexType name="TNote">
<xsd:complexType> <xsd:sequence>
<xsd:sequence> <xsd:element name="Header" type="xsd:string" maxOccurs="1" minOccurs="1"/>
<xsd:element name="Category" type="tns:TUserCategory" maxOccurs="1" minOccurs="1"/> <xsd:element name="Author" type="xsd:string" maxOccurs="1" minOccurs="1"/>
<xsd:element name="UserName" type="xsd:string" maxOccurs="1" minOccurs="1"/> <xsd:element name="Date" type="xsd:string" maxOccurs="1" minOccurs="1"/>
<xsd:element name="eMail" type="xsd:string" maxOccurs="1" minOccurs="1"/> </xsd:sequence>
<xsd:element name="Preferences" type="xsd:string" maxOccurs="1" minOccurs="1"/> </xsd:complexType>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="TUserArray">
<xsd:complexType>
<xsd:sequence><xsd:element name="item" type="tns:TUser" maxOccurs="unbounded" minOccurs="0"/></xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema> </xsd:schema>
</types> </types>
<message name="GetList"/> <message name="GetList"/>
@ -36,6 +40,7 @@
<message name="Delete"><part name="AName" type="xsd:string"/></message> <message name="Delete"><part name="AName" type="xsd:string"/></message>
<message name="DeleteResponse"><part name="result" type="xsd:boolean"/></message> <message name="DeleteResponse"><part name="result" type="xsd:boolean"/></message>
<portType name="UserService"> <portType name="UserService">
<document><GUID value="{F49D8FA4-9BBC-4321-9869-5BA745070ABC}"/></document>
<operation name="GetList"> <operation name="GetList">
<input message="tns:GetList"/> <input message="tns:GetList"/>
<output message="tns:GetListResponse"/> <output message="tns:GetListResponse"/>

View File

@ -250,11 +250,11 @@ end;
constructor TUserService_ServiceBinder.Create(); constructor TUserService_ServiceBinder.Create();
begin begin
inherited Create(GetServiceImplementationRegistry().FindFactory('UserService')); inherited Create(GetServiceImplementationRegistry().FindFactory('UserService'));
RegisterVerbHandler('GetList',@GetListHandler); RegisterVerbHandler('GetList',{$IFDEF FPC}@{$ENDIF}GetListHandler);
RegisterVerbHandler('Add',@AddHandler); RegisterVerbHandler('Add',{$IFDEF FPC}@{$ENDIF}AddHandler);
RegisterVerbHandler('Update',@UpdateHandler); RegisterVerbHandler('Update',{$IFDEF FPC}@{$ENDIF}UpdateHandler);
RegisterVerbHandler('Find',@FindHandler); RegisterVerbHandler('Find',{$IFDEF FPC}@{$ENDIF}FindHandler);
RegisterVerbHandler('Delete',@DeleteHandler); RegisterVerbHandler('Delete',{$IFDEF FPC}@{$ENDIF}DeleteHandler);
end; end;
@ -286,7 +286,7 @@ initialization
{$IF DECLARED(Register_user_service_intf_NameSpace)} {$IF DECLARED(Register_user_service_intf_NameSpace)}
Register_user_service_intf_NameSpace(); Register_user_service_intf_NameSpace();
{$ENDIF} {$IFEND}
{$i user_service_intf.wst} {$i user_service_intf.wst}

View File

@ -5,7 +5,7 @@ This unit has been produced by ws_helper.
Date : "30/04/2007 00:07". Date : "30/04/2007 00:07".
} }
Unit user_service_intf_imp; Unit user_service_intf_imp;
{$mode objfpc}{$H+} {$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
Interface Interface
Uses SysUtils, Classes, Uses SysUtils, Classes,

View File

@ -1,23 +1,40 @@
{
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 semaphore; unit semaphore;
{$mode objfpc}{$H+}
interface interface
uses uses
Classes, SysUtils, syncobjs; Classes, SysUtils, syncobjs{$IFNDEF FPC},Windows{$ENDIF};
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type type
ESemaphoreException = class(Exception); ESemaphoreException = class(Exception);
{ TSemaphoreObject } { TSemaphoreObject }
TSemaphoreObject = class TSemaphoreObject = class
private private
FHandle : PRTLEvent; FHandle : {$IFNDEF FPC}THandle{$ELSE}PRTLEvent{$ENDIF};
FLimit: Integer; FLimit: Integer;
{$IFDEF FPC}
FCurrentState : Integer; FCurrentState : Integer;
FCriticalSection : TCriticalSection; FCriticalSection : TCriticalSection;
{$ENDIF}
public public
constructor Create(const ALimit : Integer); constructor Create(const ALimit : Integer);
destructor Destroy(); override; destructor Destroy(); override;
@ -34,20 +51,42 @@ constructor TSemaphoreObject.Create(const ALimit: Integer);
begin begin
Assert(ALimit>0); Assert(ALimit>0);
FLimit := ALimit; FLimit := ALimit;
{$IFNDEF FPC}
FHandle := CreateSemaphore(nil,ALimit,ALimit,'');
{$ELSE}
FHandle := RTLEventCreate(); FHandle := RTLEventCreate();
FCriticalSection := TCriticalSection.Create(); FCriticalSection := TCriticalSection.Create();
FCurrentState := FLimit; FCurrentState := FLimit;
RTLeventSetEvent(FHandle); RTLeventSetEvent(FHandle);
{$ENDIF}
end; end;
destructor TSemaphoreObject.Destroy(); destructor TSemaphoreObject.Destroy();
begin begin
{$IFNDEF FPC}
CloseHandle(FHandle);
{$ELSE}
RTLeventdestroy(FHandle); RTLeventdestroy(FHandle);
FreeAndNil(FCriticalSection); FreeAndNil(FCriticalSection);
{$ENDIF}
inherited Destroy(); inherited Destroy();
end; end;
function TSemaphoreObject.WaitFor(ATimeout: Cardinal): TWaitResult; function TSemaphoreObject.WaitFor(ATimeout: Cardinal): TWaitResult;
{$IFNDEF FPC}
var
intRes : DWORD;
begin
intRes := WaitForSingleObject(FHandle,ATimeout);
case intRes of
WAIT_OBJECT_0 : Result := wrSignaled;
WAIT_TIMEOUT : Result := wrTimeout;
WAIT_ABANDONED : Result := wrAbandoned;
else
Result := wrTimeout;
end;
end;
{$ELSE}
var var
ok : Boolean; ok : Boolean;
begin begin
@ -79,9 +118,13 @@ begin
if ok then if ok then
Result := wrSignaled; Result := wrSignaled;
end; end;
{$ENDIF}
procedure TSemaphoreObject.Release(); procedure TSemaphoreObject.Release();
begin begin
{$IFNDEF FPC}
ReleaseSemaphore(FHandle,1,nil);
{$ELSE}
FCriticalSection.Acquire(); FCriticalSection.Acquire();
try try
if ( FCurrentState < Limit ) then begin if ( FCurrentState < Limit ) then begin
@ -93,6 +136,7 @@ begin
FCriticalSection.Release(); FCriticalSection.Release();
end; end;
RTLeventSetEvent(FHandle); RTLeventSetEvent(FHandle);
{$ENDIF}
end; end;
end. end.

View File

@ -10,10 +10,9 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit server_binary_formatter; unit server_binary_formatter;
{$INCLUDE wst.inc}
interface interface
uses uses
@ -21,6 +20,9 @@ uses
base_service_intf, server_service_intf, base_service_intf, server_service_intf,
base_binary_formatter; base_binary_formatter;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
const const
sBINARY_CONTENT_TYPE = 'binary'; sBINARY_CONTENT_TYPE = 'binary';
sPROTOCOL_NAME = sBINARY_CONTENT_TYPE; sPROTOCOL_NAME = sBINARY_CONTENT_TYPE;

View File

@ -10,15 +10,17 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit server_service_imputils; unit server_service_imputils;
{$mode objfpc}{$H+}
interface interface
uses uses
Classes, SysUtils, TypInfo, Classes, SysUtils, TypInfo,
server_service_intf; server_service_intf;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Type Type

View File

@ -10,16 +10,17 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit server_service_intf; unit server_service_intf;
{$INCLUDE wst.inc}
interface interface
uses uses
Classes, SysUtils, TypInfo, Contnrs, Classes, SysUtils, TypInfo, Contnrs,
base_service_intf; base_service_intf;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Type Type

View File

@ -10,17 +10,21 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst.inc} {$INCLUDE wst_global.inc}
unit server_service_soap; unit server_service_soap;
interface interface
uses uses
Classes, SysUtils, TypInfo, DOM, Classes, SysUtils, TypInfo,
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
base_service_intf, server_service_intf, server_service_imputils, base_service_intf, server_service_intf, server_service_imputils,
base_soap_formatter; base_soap_formatter;
Type {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type
{ TSOAPFormatter } { TSOAPFormatter }

View File

@ -10,23 +10,26 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit server_service_xmlrpc; unit server_service_xmlrpc;
{$INCLUDE wst.inc}
interface interface
uses uses
Classes, SysUtils, TypInfo, DOM, Classes, SysUtils, TypInfo,
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
base_service_intf, server_service_intf, base_service_intf, server_service_intf,
base_xmlrpc_formatter; base_xmlrpc_formatter;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type type
{$M+} {$M+}
{ TXmlRpcFormatter } { TXmlRpcFormatter }
TXmlRpcFormatter = class(TXmlRpcBaseFormatter,IFormatterBase,IFormatterResponse) TXmlRpcFormatter = class(TXmlRpcBaseFormatter,IFormatterBase,IFormatterResponse)
private private
FCallProcedureName : string; FCallProcedureName : string;
@ -51,6 +54,7 @@ type
procedure Server_service_RegisterXmlRpcFormat(); procedure Server_service_RegisterXmlRpcFormat();
implementation implementation
{$IFDEF FPC}uses wst_fpc_xml;{$ENDIF}
{ TXmlRpcFormatter } { TXmlRpcFormatter }
@ -86,14 +90,14 @@ begin
if not SameText(sMETHOD_CALL,callNode.NodeName) then if not SameText(sMETHOD_CALL,callNode.NodeName) then
Error('XML root node must be "%s".',[sMETHOD_CALL]); Error('XML root node must be "%s".',[sMETHOD_CALL]);
tmpNode := callNode.FindNode(sMETHOD_NAME); tmpNode := FindNode(callNode,sMETHOD_NAME);
if not Assigned(tmpNode) then if not Assigned(tmpNode) then
Error('Node not found : "%s".',[sMETHOD_NAME]); Error('Node not found : "%s".',[sMETHOD_NAME]);
if not tmpNode.HasChildNodes() then if not tmpNode.HasChildNodes() then
Error('"%s" does not provide value node.',[sMETHOD_NAME]); Error('"%s" does not provide value node.',[sMETHOD_NAME]);
FCallProcedureName := Trim(tmpNode.FirstChild.NodeValue); FCallProcedureName := Trim(tmpNode.FirstChild.NodeValue);
tmpNode := callNode.FindNode(sPARAMS); tmpNode := FindNode(callNode,sPARAMS);
if not Assigned(tmpNode) then if not Assigned(tmpNode) then
Error('Node not found : "%s".',[sPARAMS]); Error('Node not found : "%s".',[sPARAMS]);
PushStackParams(tmpNode); PushStackParams(tmpNode);

View File

@ -12,7 +12,7 @@
} }
{ Base service interface } { Base service interface }
{$INCLUDE wst_global.inc}
unit service_intf; unit service_intf;
interface interface
@ -22,6 +22,7 @@ uses
base_service_intf; base_service_intf;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Const Const
sTARGET = 'target'; sTARGET = 'target';

View File

@ -10,19 +10,20 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit soap_formatter; unit soap_formatter;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
interface interface
uses uses
Classes, SysUtils, TypInfo, DOM, Classes, SysUtils, TypInfo,
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
base_service_intf, service_intf, imp_utils, base_soap_formatter; base_service_intf, service_intf, imp_utils, base_soap_formatter;
Type {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type
{ TSOAPFormatter } { TSOAPFormatter }

View File

@ -10,9 +10,10 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit synapse_http_protocol; unit synapse_http_protocol;
//{$DEFINE WST_DBG} {$DEFINE WST_DBG}
interface interface
@ -22,6 +23,7 @@ uses
httpsend; httpsend;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
Const Const
sTRANSPORT_NAME = 'HTTP'; sTRANSPORT_NAME = 'HTTP';
@ -170,8 +172,8 @@ begin
TMemoryStream(AResponse).SaveToFile('response.log'); TMemoryStream(AResponse).SaveToFile('response.log');
if IsConsole then if IsConsole then
WriteLn(s) WriteLn(s)
else {else
ShowMessage(s); ShowMessage(s)};
{$ENDIF} {$ENDIF}
end; end;

View File

@ -10,6 +10,7 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit synapse_tcp_protocol; unit synapse_tcp_protocol;
interface interface
@ -20,6 +21,7 @@ uses
blcksock; blcksock;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
{$DEFINE WST_DBG} {$DEFINE WST_DBG}

View File

@ -10,15 +10,17 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit synapse_tcp_server; unit synapse_tcp_server;
{$INCLUDE wst.inc}
interface interface
uses uses
Classes, SysUtils, blcksock, synsock; Classes, SysUtils, blcksock, synsock;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
const const
sSERVER_PORT = '1234'; sSERVER_PORT = '1234';
@ -75,7 +77,8 @@ type
function SetLogger(ALogger : ILogger):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;
var FLoggerInst : ILogger = nil; var FLoggerInst : ILogger = nil;
function SetLogger(ALogger : ILogger):ILogger ; function SetLogger(ALogger : ILogger):ILogger ;
@ -163,6 +166,15 @@ begin
inherited Destroy(); inherited Destroy();
end; end;
function GetFormatForContentType(const AContentType : string):string ;
begin
Result := Trim(AContentType);
if AnsiSameText(Result,'text/xml') then
Result := 'soap'
else
Result := 'binary';
end;
procedure TClientHandlerThread.Execute(); procedure TClientHandlerThread.Execute();
var var
wrtr : IDataStore; wrtr : IDataStore;
@ -171,46 +183,55 @@ var
rqst : IRequestBuffer; rqst : IRequestBuffer;
i : PtrUInt; i : PtrUInt;
begin begin
FInputStream := TMemoryStream.Create(); {$IFNDEF FPC}
FOutputStream := TMemoryStream.Create(); CoInitialize(nil);
FSocketObject := TTCPBlockSocket.Create();
try try
FSocketObject.RaiseExcept := True; {$ENDIF}
FInputStream := TMemoryStream.Create();
FOutputStream := TMemoryStream.Create();
FSocketObject := TTCPBlockSocket.Create();
try try
FSocketObject.Socket := FSocketHandle; FSocketObject.RaiseExcept := True;
FSocketObject.GetSins(); try
while not Terminated do begin FSocketObject.Socket := FSocketHandle;
FOutputStream.Size := 0; FSocketObject.GetSins();
if ( ReadInputBuffer() >= SizeOf(LongInt) ) then begin while not Terminated do begin
rdr := CreateBinaryReader(FInputStream);
trgt := rdr.ReadStr();
ctntyp := rdr.ReadStr();
buff := rdr.ReadStr(); WriteLn();WriteLn('ContentType=',ctntyp,', ','Target = ',trgt);WriteLn();WriteLn(buff);
rdr := nil;
FInputStream.Size := 0;
FInputStream.Write(buff[1],Length(buff));
FInputStream.Position := 0;
rqst := TRequestBuffer.Create(trgt,ctntyp,FInputStream,FOutputStream);
HandleServiceRequest(rqst);
i := FOutputStream.Size;
SetLength(buff,i);
FOutputStream.Position := 0;
FOutputStream.Read(buff[1],i);
FOutputStream.Size := 0; FOutputStream.Size := 0;
wrtr := CreateBinaryWriter(FOutputStream); if ( ReadInputBuffer() >= SizeOf(LongInt) ) then begin
wrtr.WriteStr(buff); rdr := CreateBinaryReader(FInputStream);
SendOutputBuffer(); trgt := rdr.ReadStr();
ClearBuffers(); ctntyp := rdr.ReadStr();
buff := rdr.ReadStr(); WriteLn;WriteLn('ContentType=',ctntyp,', ','Target = ',trgt);WriteLn;WriteLn(buff);
rdr := nil;
FInputStream.Size := 0;
FInputStream.Write(buff[1],Length(buff));
FInputStream.Position := 0;
rqst := TRequestBuffer.Create(trgt,ctntyp,FInputStream,FOutputStream,GetFormatForContentType(ctntyp));
HandleServiceRequest(rqst);
i := FOutputStream.Size;
SetLength(buff,i);
FOutputStream.Position := 0;
FOutputStream.Read(buff[1],i);
FOutputStream.Size := 0;
wrtr := CreateBinaryWriter(FOutputStream);
wrtr.WriteStr(buff);
SendOutputBuffer();
ClearBuffers();
end;
end;
except
on e : Exception do begin
Logger().Log('Error : ThreadID = %d; Message = %s',[Self.ThreadID,e.Message]);
end; end;
end; end;
except finally
on e : Exception do begin FreeAndNil(FSocketObject);
Logger().Log('Error : ThreadID = %d; Message = %s',[Self.ThreadID,e.Message]);
end;
end; end;
{$IFNDEF FPC}
finally finally
FreeAndNil(FSocketObject); CoUninitialize();
end; end;
{$ENDIF}
end; end;
{ TServerListnerThread } { TServerListnerThread }
@ -233,24 +254,33 @@ procedure TServerListnerThread.Execute();
var var
ClientSock : TSocket; ClientSock : TSocket;
begin begin
{$IFNDEF FPC}
CoInitialize(nil);
try try
FSocketObject.RaiseExcept := True; {$ENDIF}
FSocketObject.CreateSocket(); try
FSocketObject.SetLinger(True,10); FSocketObject.RaiseExcept := True;
FSocketObject.Bind('127.0.0.1',sSERVER_PORT); FSocketObject.CreateSocket();
FSocketObject.Listen(); FSocketObject.SetLinger(True,10);
while not Terminated do begin FSocketObject.Bind('127.0.0.1',sSERVER_PORT);
if FSocketObject.CanRead(DefaultTimeOut) then begin FSocketObject.Listen();
ClientSock := FSocketObject.Accept(); while not Terminated do begin
TClientHandlerThread.Create(ClientSock); if FSocketObject.CanRead(DefaultTimeOut) then begin
ClientSock := FSocketObject.Accept();
TClientHandlerThread.Create(ClientSock);
end;
end;
except
on e : Exception do begin
Logger().Log('Listner Thread Error : ThreadID = %d; Message = %s',[Self.ThreadID,e.Message]);
Logger().Log('Listner stoped.');
end; end;
end; end;
except {$IFNDEF FPC}
on e : Exception do begin finally
Logger().Log('Listner Thread Error : ThreadID = %d; Message = %s',[Self.ThreadID,e.Message]); CoUninitialize();
Logger().Log('Listner stoped.');
end;
end; end;
{$ENDIF}
end; end;
end. end.

View File

@ -0,0 +1,172 @@
{
This unit has been produced by ws_helper.
Input unit name : "SDMTabularService".
This unit name : "SDMTabularService".
Date : "11/07/2007 23:11:05".
}
unit SDMTabularService;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
interface
uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;
const
sNAME_SPACE = 'http://SDMDataAccess.nrcs.usda.gov/Tabular/SDMTabularService.asmx';
sUNIT_NAME = 'SDMTabularService';
type
schema_Type = class(TStringBufferRemotable) end;
//diffgram_Type = class(TStringBufferRemotable);
RunQueryType = class;
RunQueryResponse_RunQueryResult_Type = class;
RunQueryResponse = class;
RunQueryType = class(TBaseComplexRemotable)
private
FQuery : string;
private
function HasQuery() : Boolean;
published
property Query : string read FQuery write FQuery stored HasQuery;
end;
{ RunQueryResponse_RunQueryResult_Type }
RunQueryResponse_RunQueryResult_Type = class(TBaseComplexRemotable)
private
Fdiffgram : schema_Type;
Fschema : schema_Type;
function Hasdiffgram : boolean;
public
constructor Create();override;
Destructor Destroy();override;
published
property schema : schema_Type read Fschema write Fschema;
property diffgram : schema_Type read Fdiffgram write Fdiffgram stored Hasdiffgram;
end;
RunQueryResponse = class(TBaseComplexRemotable)
private
FRunQueryResult : RunQueryResponse_RunQueryResult_Type;
private
function HasRunQueryResult() : Boolean;
public
constructor Create();override;
destructor Destroy();override;
published
property RunQueryResult : RunQueryResponse_RunQueryResult_Type read FRunQueryResult write FRunQueryResult stored HasRunQueryResult;
end;
SDMTabularServiceSoap = interface(IInvokable)
['{6F9CD0B5-85E3-43A5-9265-5F6AD11B3742}']
function RunQuery(
Const RunQueryParam : RunQueryType
):RunQueryResponse;
end;
procedure Register_SDMTabularService_ServiceMetadata();
Implementation
uses metadata_repository;
{ RunQueryType }
function RunQueryType.HasQuery() : Boolean;
begin
Result := True;
end;
{ RunQueryResponse }
destructor RunQueryResponse.Destroy();
begin
if Assigned(FRunQueryResult) then
FreeAndNil(FRunQueryResult);
inherited Destroy();
end;
function RunQueryResponse.HasRunQueryResult() : Boolean;
begin
Result := True;
end;
constructor RunQueryResponse.Create();
begin
inherited Create();
FRunQueryResult := RunQueryResponse_RunQueryResult_Type.Create();
end;
procedure Register_SDMTabularService_ServiceMetadata();
var
mm : IModuleMetadataMngr;
begin
mm := GetModuleMetadataMngr();
mm.SetRepositoryNameSpace(sUNIT_NAME, sNAME_SPACE);
mm.SetServiceCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'TRANSPORT_Address',
'http://sdmdataaccess.nrcs.usda.gov/Tabular/SDMTabularService.asmx'
);
mm.SetServiceCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'FORMAT_Style',
'document'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'RunQuery',
'TRANSPORT_soapAction',
'http://SDMDataAccess.nrcs.usda.gov/Tabular/SDMTabularService.asmx/RunQuery'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'RunQuery',
'FORMAT_Input_EncodingStyle',
'literal'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'SDMTabularServiceSoap',
'RunQuery',
'FORMAT_OutputEncodingStyle',
'literal'
);
end;
{ RunQueryResponse_RunQueryResult_Type }
function RunQueryResponse_RunQueryResult_Type.Hasdiffgram : boolean;
begin
Result := ( diffgram <> nil );
end;
constructor RunQueryResponse_RunQueryResult_Type.Create();
begin
inherited Create();
Fschema := schema_Type.Create();
Fdiffgram := schema_Type.Create();
end;
destructor RunQueryResponse_RunQueryResult_Type.Destroy();
begin
FreeAndNil(Fdiffgram);
FreeAndNil(Fschema);
inherited Destroy();
end;
initialization
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RunQueryType),'RunQuery');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RunQueryResponse_RunQueryResult_Type),'RunQueryResponse_RunQueryResult_Type').RegisterExternalPropertyName('schema','xs:schema');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RunQueryResponse_RunQueryResult_Type),'RunQueryResponse_RunQueryResult_Type').RegisterExternalPropertyName('diffgram','diffgr:diffgram');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(RunQueryResponse),'RunQueryResponse');
End.

View File

@ -0,0 +1,6 @@
GetWSTResourceManager().AddResource('SDMTABULARSERVICE',
#0#0#0#20'WST_METADATA_0.2.2.0'#0#0#0#17'SDMTabularService'#1#0#0#0#21'SDMTa'
+'bularServiceSoap'#1#0#0#0#8'RunQuery'#2#0#0#0#8'RunQuery'#0#0#0#8'RunQuery'#0
+#0#0#0#0#0#0#1#0#0#0#16'RunQueryResponse'#0#0#0#16'RunQueryResponse'#0#0#0#0
+#0#0#0#3''
);

View File

@ -0,0 +1,75 @@
{
This unit has been produced by ws_helper.
Input unit name : "SDMTabularService".
This unit name : "SDMTabularService_proxy".
Date : "11/07/2007 23:11:05".
}
Unit SDMTabularService_proxy;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
Interface
Uses SysUtils, Classes, TypInfo, base_service_intf, service_intf, SDMTabularService;
Type
TSDMTabularServiceSoap_Proxy=class(TBaseProxy,SDMTabularServiceSoap)
Protected
class function GetServiceType() : PTypeInfo;override;
function RunQuery(
Const RunQueryParam : RunQueryType
):RunQueryResponse;
End;
Function wst_CreateInstance_SDMTabularServiceSoap(const AFormat : string = 'SOAP:'; const ATransport : string = 'HTTP:'):SDMTabularServiceSoap;
Implementation
uses wst_resources_imp, metadata_repository;
Function wst_CreateInstance_SDMTabularServiceSoap(const AFormat : string; const ATransport : string):SDMTabularServiceSoap;
Begin
Result := TSDMTabularServiceSoap_Proxy.Create('SDMTabularServiceSoap',AFormat+GetServiceDefaultFormatProperties(TypeInfo(SDMTabularServiceSoap)),ATransport + 'address=' + GetServiceDefaultAddress(TypeInfo(SDMTabularServiceSoap)));
End;
{ TSDMTabularServiceSoap_Proxy implementation }
class function TSDMTabularServiceSoap_Proxy.GetServiceType() : PTypeInfo;
begin
result := TypeInfo(SDMTabularServiceSoap);
end;
function TSDMTabularServiceSoap_Proxy.RunQuery(
Const RunQueryParam : RunQueryType
):RunQueryResponse;
Var
locSerializer : IFormatterClient;
strPrmName : string;
Begin
locSerializer := GetSerializer();
Try
locSerializer.BeginCall('RunQuery', GetTarget(),(Self as ICallContext));
locSerializer.Put('RunQuery', TypeInfo(RunQueryType), RunQueryParam);
locSerializer.EndCall();
MakeCall();
locSerializer.BeginCallRead((Self as ICallContext));
TObject(Result) := Nil;
strPrmName := 'RunQueryResponse';
locSerializer.Get(TypeInfo(RunQueryResponse), strPrmName, Result);
Finally
locSerializer.Clear();
End;
End;
initialization
{$i SDMTabularService.wst}
{$IF DECLARED(Register_SDMTabularService_ServiceMetadata)}
Register_SDMTabularService_ServiceMetadata();
{$IFEND}
End.

View File

@ -0,0 +1,43 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-N"obj"
-LE"c:\program files\borland\delphi7\Projects\Bpl"
-LN"c:\program files\borland\delphi7\Projects\Bpl"
-U"..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\"
-O"..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\"
-I"..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\"
-R"..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\"
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST

View File

@ -0,0 +1,162 @@
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=0
UnsafeCode=0
UnsafeCast=0
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=obj
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;FIBDBMidas7;Jcl;JclVcl;JvCoreD7R;JvSystemD7R;JvStdCtrlsD7R;JvAppFrmD7R;JvBandsD7R;JvDBD7R;JvDlgsD7R;JvBDED7R;JvCmpD7R;JvCryptD7R;JvCtrlsD7R;JvCustomD7R;JvDockingD7R;JvDotNetCtrlsD7R;JvEDID7R;JvGlobusD7R;JvHMID7R;JvInterpreterD7R;JvJansD7R;JvManagedThreadsD7R;JvMMD7R;JvNetD7R;JvPageCompsD7R;JvPluginD7R;JvPrintPreviewD7R;JvRuntimeDesignD7R;JvTimeFrameworkD7R;JvUIBD7R;JvValidatorsD7R;JvWizardD7R;JvXPCtrlsD7R;dxForumLibD7;cxLibraryVCLD7;cxPageControlVCLD7;dxBarD7;dxComnD7;dxBarDBNavD7;dxBarExtItemsD7;dxBarExtDBItemsD7;dxsbD7;dxmdsD7;dxdbtrD7;dxtrmdD7;dxorgcD7;dxdborD7;dxEdtrD7;EQTLD7;ECQDBCD7;EQDBTLD7;EQGridD7;dxGrEdD7;dxExELD7;dxELibD7;cxEditorsVCLD7;cxGridVCLD7;dxThemeD7;cxDataD7;cxGridUtilsVCLD7;dxPSCoreD7;dxPsPrVwAdvD7;dxPSLnksD7;dxPSTeeChartD7;dxPSDBTeeChartD7;dxPSdxDBTVLnkD7;dxPSdxOCLnkD7;dxPSdxDBOCLnkD7;dxPScxGridLnkD7;dxPSTLLnkD7;qrpt
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=C:\Program Files\Borland\Delphi7\Bin\
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1036
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[Excluded Packages]
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxDBTLLnkD7.bpl=ExpressPrinting System ReportLink for ExpressQuantumDBTreeList by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxDBGrLnkD7.bpl=ExpressPrinting System ReportLink for ExpressQuantumGrid by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxInsLnkD7.bpl=ExpressPrinting System ReportLink for ExpressInspector by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxOILnkD7.bpl=ExpressPrinting System ReportLink for ExpressRTTIInspector by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxMVLnkD7.bpl=ExpressPrinting System ReportLink for ExpressMasterView by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPSdxFCLnkD7.bpl=ExpressPrinting System ReportLinks for ExpressFlowChart by Developer Express Inc.
C:\Program Files\Developer Express Inc\ExpressPrinting System\Delphi 7\Lib\dxPScxSSLnkD7.bpl=ExpressPrinting System ReportLink for ExpressSpreadSheet by Developer Express Inc.
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
[HistoryLists\hlSearchPath]
Count=10
Item0=..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\
Item1=..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\
Item2=..\..\..\;..\..\..\ws_helper\;C:\Program Files\Borland\Delphi7\plate_forme\synapse
Item3=..\..\..\;..\..\..\ws_helper\
Item4=$(DELPHI)\Lib\Debug;C:\PROGRA~1\Borland\Delphi7\MyTools\JVCL\3.20\jcl\lib\d7\debug;..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\
Item5=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse;..\..\..\..\
Item6=..\..\;..\..\..\;C:\Program Files\Borland\Delphi7\plate_forme\synapse
Item7=..\..\;..\..\..\
Item8=..\..\
Item9=..\
[HistoryLists\hlUnitOutputDirectory]
Count=1
Item0=obj

View File

@ -0,0 +1,84 @@
program test_prj;
{$APPTYPE CONSOLE}
uses
SysUtils, ActiveX,
synapse_http_protocol,
soap_formatter,
SDMTabularService,
SDMTabularService_proxy;
var
SDMSoap : SDMTabularServiceSoap;
QueryBuffer : RunQueryType;
QryResult : RunQueryResponse;
XmlFileVar : TextFile;
begin
CoInitialize(nil);
try
SYNAPSE_RegisterHTTP_Transport();
// if Assigned(InitProc) then
// TProcedure(InitProc);
QueryBuffer := RunQueryType.Create();
try
SDMSoap := wst_CreateInstance_SDMTabularServiceSoap();
if not Assigned(SDMSoap) then
begin
WriteLn('Service not assigned');
Exit;
end;
QueryBuffer.Query :=
'SELECT ' +
'saversion, saverest, ' +
'l.areasymbol, l.areaname, l.lkey, ' +
'mu.musym, mu.muname, museq, mu.mukey, ' +
'textcat, textsubcat, ' +
'flodfreqdcd, wtdepannmin, ' +
'comppct_r, compname, localphase, slope_r, slope_l, slope_h, hydgrp, tfact, runoff, drainagecl, wei, majcompflag, slopelenusle_r, c.cokey, ' +
'reskind, resdept_r, ' +
'hzdept_r, hzdepb_r, om_l, om_h, kffact, kwfact, ch.chkey, ' +
'texture ' +
'FROM sacatalog sac ' +
'INNER JOIN legend l ON l.areasymbol = sac.areasymbol AND l.areasymbol = ''IN001'' ' +
'INNER JOIN mapunit mu ON mu.lkey = l.lkey ' +
'LEFT OUTER JOIN mutext mutx ON mutx.mukey = mu.mukey AND mutx.textcat = ''innitrate'' ' +
'LEFT OUTER JOIN muaggatt muag ON muag.mukey = mu.mukey ' +
'LEFT OUTER JOIN component c ON c.mukey = mu.mukey AND c.majcompflag = ''Yes'' ' +
'LEFT OUTER JOIN corestrictions core on core.cokey = c.cokey AND core.reskind IN (''Densic bedrock'', ''Lithic bedrock'', ''Paralithic bedrock'') ' +
'LEFT OUTER JOIN chorizon ch ON ch.cokey = c.cokey AND ch.hzdept_r = ''0'' ' +
'LEFT OUTER JOIN chtexturegrp chtg ON chtg.chkey = ch.chkey ' +
'ORDER BY l.areasymbol, museq, comppct_r DESC, compname, hydgrp, texture';
// WriteLn(QueryStr);
try
QryResult := SDMSoap.RunQuery(QueryBuffer);
if not Assigned(QryResult) then
WriteLn('QryResult not assigned');
except on E:Exception do
begin
WriteLn(E.Message);
Exit;
end;
end;
// WriteLn(QryResult.s_schema);
WriteLn(Copy(QryResult.RunQueryResult.schema.Data, 1, 500));
AssignFile(XmlFileVar, 'junk.xml');
Rewrite(XmlFileVar);
WriteLn(XmlFileVar, QryResult.RunQueryResult.diffgram.Data);
CloseFile(XmlFileVar);
finally
QueryBuffer.Free();
end;
finally
CoUninitialize();
end;
end.

View File

@ -0,0 +1 @@
..\..\ws_helper\ws_helper.exe -uA -p -o. SDMTabularService.wsdl >parsing.res.txt

View File

@ -0,0 +1,207 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="5"/>
<General>
<Flags>
<MainUnitHasUsesSectionForAllUnits Value="False"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
</Flags>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
<Language Value=""/>
<CharSet Value=""/>
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<Units Count="17">
<Unit0>
<Filename Value="test_prj.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="test_prj"/>
<CursorPos X="1" Y="69"/>
<TopLine Value="52"/>
<EditorIndex Value="0"/>
<UsageCount Value="25"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
<Filename Value="SDMTabularService.pas"/>
<UnitName Value="SDMTabularService"/>
<CursorPos X="3" Y="154"/>
<TopLine Value="145"/>
<EditorIndex Value="10"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
<Filename Value="SDMTabularService_proxy.pas"/>
<UnitName Value="SDMTabularService_proxy"/>
<CursorPos X="70" Y="12"/>
<TopLine Value="1"/>
<EditorIndex Value="8"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\systemh.inc"/>
<CursorPos X="4" Y="345"/>
<TopLine Value="345"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<Filename Value="..\..\binary_streamer.pas"/>
<UnitName Value="binary_streamer"/>
<CursorPos X="95" Y="107"/>
<TopLine Value="6"/>
<EditorIndex Value="6"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
<Filename Value="..\..\wst_fpc_xml.pas"/>
<UnitName Value="wst_fpc_xml"/>
<CursorPos X="46" Y="10"/>
<TopLine Value="5"/>
<EditorIndex Value="4"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit5>
<Unit6>
<Filename Value="..\..\wst_global.inc"/>
<CursorPos X="11" Y="4"/>
<TopLine Value="1"/>
<EditorIndex Value="7"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit6>
<Unit7>
<Filename Value="..\..\service_intf.pas"/>
<UnitName Value="service_intf"/>
<CursorPos X="28" Y="212"/>
<TopLine Value="201"/>
<EditorIndex Value="9"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit7>
<Unit8>
<Filename Value="..\..\soap_formatter.pas"/>
<UnitName Value="soap_formatter"/>
<CursorPos X="1" Y="94"/>
<TopLine Value="6"/>
<EditorIndex Value="2"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit8>
<Unit9>
<Filename Value="..\..\synapse_http_protocol.pas"/>
<UnitName Value="synapse_http_protocol"/>
<CursorPos X="30" Y="176"/>
<TopLine Value="142"/>
<EditorIndex Value="1"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
<Filename Value="..\..\base_soap_formatter.pas"/>
<UnitName Value="base_soap_formatter"/>
<CursorPos X="28" Y="392"/>
<TopLine Value="387"/>
<EditorIndex Value="3"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit10>
<Unit11>
<Filename Value="..\..\base_service_intf.pas"/>
<UnitName Value="base_service_intf"/>
<CursorPos X="51" Y="4446"/>
<TopLine Value="4425"/>
<EditorIndex Value="11"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit11>
<Unit12>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\extra\univint\Dialogs.pas"/>
<UnitName Value="Dialogs"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1055"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="..\..\wst.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="5"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit13>
<Unit14>
<Filename Value="..\..\wst_delphi.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit14>
<Unit15>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="14" Y="692"/>
<TopLine Value="678"/>
<UsageCount Value="10"/>
</Unit15>
<Unit16>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<UnitName Value="DOM"/>
<CursorPos X="10" Y="971"/>
<TopLine Value="957"/>
<UsageCount Value="10"/>
</Unit16>
</Units>
<JumpHistory Count="0" HistoryIndex="-1"/>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<OtherUnitFiles Value="..\..\;$(LazarusDir)\others_package\synapse\"/>
<UnitOutputDirectory Value="obj"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<BreakPoints Count="1">
<Item1>
<Source Value="..\..\ws_helper\wsdl2pas_imp.pas"/>
<Line Value="1346"/>
</Item1>
</BreakPoints>
<Exceptions Count="2">
<Item1>
<Name Value="ECodetoolError"/>
</Item1>
<Item2>
<Name Value="EFOpenError"/>
</Item2>
</Exceptions>
</Debugging>
</CONFIG>

View File

@ -0,0 +1,79 @@
program test_prj;
{$mode objfpc}{$H+}
uses
SysUtils,
synapse_http_protocol,
soap_formatter,
SDMTabularService, SDMTabularService_proxy;
var
SDMSoap : SDMTabularServiceSoap;
QueryBuffer : RunQueryType;
QryResult : RunQueryResponse;
XmlFileVar : TextFile;
begin
SYNAPSE_RegisterHTTP_Transport();
// if Assigned(InitProc) then
// TProcedure(InitProc);
QueryBuffer := RunQueryType.Create();
try
SDMSoap := wst_CreateInstance_SDMTabularServiceSoap();
if not Assigned(SDMSoap) then
begin
WriteLn('Service not assigned');
Exit;
end;
QueryBuffer.Query :=
'SELECT ' +
'saversion, saverest, ' +
'l.areasymbol, l.areaname, l.lkey, ' +
'mu.musym, mu.muname, museq, mu.mukey, ' +
'textcat, textsubcat, ' +
'flodfreqdcd, wtdepannmin, ' +
'comppct_r, compname, localphase, slope_r, slope_l, slope_h, hydgrp, tfact, runoff, drainagecl, wei, majcompflag, slopelenusle_r, c.cokey, ' +
'reskind, resdept_r, ' +
'hzdept_r, hzdepb_r, om_l, om_h, kffact, kwfact, ch.chkey, ' +
'texture ' +
'FROM sacatalog sac ' +
'INNER JOIN legend l ON l.areasymbol = sac.areasymbol AND l.areasymbol = ''IN001'' ' +
'INNER JOIN mapunit mu ON mu.lkey = l.lkey ' +
'LEFT OUTER JOIN mutext mutx ON mutx.mukey = mu.mukey AND mutx.textcat = ''innitrate'' ' +
'LEFT OUTER JOIN muaggatt muag ON muag.mukey = mu.mukey ' +
'LEFT OUTER JOIN component c ON c.mukey = mu.mukey AND c.majcompflag = ''Yes'' ' +
'LEFT OUTER JOIN corestrictions core on core.cokey = c.cokey AND core.reskind IN (''Densic bedrock'', ''Lithic bedrock'', ''Paralithic bedrock'') ' +
'LEFT OUTER JOIN chorizon ch ON ch.cokey = c.cokey AND ch.hzdept_r = ''0'' ' +
'LEFT OUTER JOIN chtexturegrp chtg ON chtg.chkey = ch.chkey ' +
'ORDER BY l.areasymbol, museq, comppct_r DESC, compname, hydgrp, texture';
// WriteLn(QueryStr);
try
QryResult := SDMSoap.RunQuery(QueryBuffer);
if not Assigned(QryResult) then
WriteLn('QryResult not assigned');
except on E:Exception do
begin
WriteLn(E.Message);
Exit;
end;
end;
// WriteLn(QryResult.s_schema);
WriteLn(Copy(QryResult.RunQueryResult.schema.Data, 1, 500));
AssignFile(XmlFileVar, 'junk.xml');
Rewrite(XmlFileVar);
WriteLn(XmlFileVar, QryResult.RunQueryResult.diffgram.Data);
CloseFile(XmlFileVar);
finally
QueryBuffer.Free();
end;
end.

View File

@ -10,11 +10,9 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit testformatter_unit; unit testformatter_unit;
{$mode objfpc}{$H+}
interface interface
uses uses
@ -1654,7 +1652,7 @@ begin
f.Put('a',TypeInfo(TArrayOfStringRemotable),a); f.Put('a',TypeInfo(TArrayOfStringRemotable),a);
f.EndScope(); f.EndScope();
s := TMemoryStream.Create(); s := TMemoryStream.Create();
f.SaveToStream(s); f.SaveToStream(s); s.SaveToFile(ClassName + '.Test_StringArray.xml');
FreeAndNil(a); FreeAndNil(a);
a := TArrayOfStringRemotable.Create(); a := TArrayOfStringRemotable.Create();
a.SetLength(0); a.SetLength(0);

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/> <IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="7"/> <ActiveEditorIndexAtStart Value="13"/>
</General> </General>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
@ -27,12 +27,12 @@
<PackageName Value="FPCUnitTestRunner"/> <PackageName Value="FPCUnitTestRunner"/>
</Item1> </Item1>
</RequiredPackages> </RequiredPackages>
<Units Count="46"> <Units Count="57">
<Unit0> <Unit0>
<Filename Value="wst_test_suite.lpr"/> <Filename Value="wst_test_suite.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="wst_test_suite"/> <UnitName Value="wst_test_suite"/>
<CursorPos X="33" Y="11"/> <CursorPos X="8" Y="6"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
</Unit0> </Unit0>
@ -40,9 +40,9 @@
<Filename Value="testformatter_unit.pas"/> <Filename Value="testformatter_unit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="testformatter_unit"/> <UnitName Value="testformatter_unit"/>
<CursorPos X="31" Y="297"/> <CursorPos X="22" Y="13"/>
<TopLine Value="290"/> <TopLine Value="1"/>
<EditorIndex Value="7"/> <EditorIndex Value="12"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
@ -58,16 +58,18 @@
<Filename Value="..\..\soap_formatter.pas"/> <Filename Value="..\..\soap_formatter.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="soap_formatter"/> <UnitName Value="soap_formatter"/>
<CursorPos X="37" Y="29"/> <CursorPos X="26" Y="13"/>
<TopLine Value="23"/> <TopLine Value="1"/>
<EditorIndex Value="6"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="..\..\base_binary_formatter.pas"/> <Filename Value="..\..\base_binary_formatter.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="base_binary_formatter"/> <UnitName Value="base_binary_formatter"/>
<CursorPos X="45" Y="93"/> <CursorPos X="3" Y="11"/>
<TopLine Value="138"/> <TopLine Value="1"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -76,13 +78,13 @@
<Filename Value="..\..\base_service_intf.pas"/> <Filename Value="..\..\base_service_intf.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="base_service_intf"/> <UnitName Value="base_service_intf"/>
<CursorPos X="3" Y="122"/> <CursorPos X="1" Y="1"/>
<TopLine Value="186"/> <TopLine Value="1"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Bookmarks Count="2"> <Bookmarks Count="2">
<Item0 X="33" Y="1126" ID="0"/> <Item0 X="33" Y="1127" ID="0"/>
<Item1 X="5" Y="1180" ID="1"/> <Item1 X="5" Y="1181" ID="1"/>
</Bookmarks> </Bookmarks>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit5> </Unit5>
@ -90,8 +92,8 @@
<Filename Value="..\..\base_soap_formatter.pas"/> <Filename Value="..\..\base_soap_formatter.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="base_soap_formatter"/> <UnitName Value="base_soap_formatter"/>
<CursorPos X="3" Y="1645"/> <CursorPos X="26" Y="13"/>
<TopLine Value="1641"/> <TopLine Value="1"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -108,20 +110,22 @@
<Filename Value="..\..\binary_streamer.pas"/> <Filename Value="..\..\binary_streamer.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="binary_streamer"/> <UnitName Value="binary_streamer"/>
<CursorPos X="1" Y="488"/> <CursorPos X="26" Y="13"/>
<TopLine Value="476"/> <TopLine Value="1"/>
<EditorIndex Value="8"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="38" Y="488" ID="2"/> <Item0 X="38" Y="489" ID="2"/>
</Bookmarks> </Bookmarks>
<Loaded Value="True"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
<Filename Value="..\..\server_binary_formatter.pas"/> <Filename Value="..\..\server_binary_formatter.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="server_binary_formatter"/> <UnitName Value="server_binary_formatter"/>
<CursorPos X="22" Y="100"/> <CursorPos X="26" Y="13"/>
<TopLine Value="86"/> <TopLine Value="1"/>
<EditorIndex Value="6"/> <EditorIndex Value="11"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit9> </Unit9>
@ -139,17 +143,15 @@
<UnitName Value="testmetadata_unit"/> <UnitName Value="testmetadata_unit"/>
<CursorPos X="44" Y="180"/> <CursorPos X="44" Y="180"/>
<TopLine Value="153"/> <TopLine Value="153"/>
<EditorIndex Value="4"/>
<UsageCount Value="202"/> <UsageCount Value="202"/>
<Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
<Filename Value="..\..\ws_helper\metadata_generator.pas"/> <Filename Value="..\..\ws_helper\metadata_generator.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="metadata_generator"/> <UnitName Value="metadata_generator"/>
<CursorPos X="17" Y="85"/> <CursorPos X="1" Y="19"/>
<TopLine Value="76"/> <TopLine Value="1"/>
<EditorIndex Value="5"/> <EditorIndex Value="10"/>
<UsageCount Value="202"/> <UsageCount Value="202"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit12> </Unit12>
@ -169,9 +171,11 @@
<Filename Value="..\..\metadata_wsdl.pas"/> <Filename Value="..\..\metadata_wsdl.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="metadata_wsdl"/> <UnitName Value="metadata_wsdl"/>
<CursorPos X="71" Y="293"/> <CursorPos X="44" Y="21"/>
<TopLine Value="280"/> <TopLine Value="209"/>
<EditorIndex Value="13"/>
<UsageCount Value="206"/> <UsageCount Value="206"/>
<Loaded Value="True"/>
</Unit14> </Unit14>
<Unit15> <Unit15>
<Filename Value="D:\Lazarus\fpcsrc\fcl\xml\dom.pp"/> <Filename Value="D:\Lazarus\fpcsrc\fcl\xml\dom.pp"/>
@ -281,7 +285,7 @@
<UnitName Value="test_parserdef"/> <UnitName Value="test_parserdef"/>
<CursorPos X="93" Y="76"/> <CursorPos X="93" Y="76"/>
<TopLine Value="11"/> <TopLine Value="11"/>
<UsageCount Value="130"/> <UsageCount Value="144"/>
</Unit30> </Unit30>
<Unit31> <Unit31>
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/> <Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\inc\objpash.inc"/>
@ -291,9 +295,11 @@
</Unit31> </Unit31>
<Unit32> <Unit32>
<Filename Value="..\..\wst.inc"/> <Filename Value="..\..\wst.inc"/>
<CursorPos X="21" Y="7"/> <CursorPos X="1" Y="1"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="9"/> <EditorIndex Value="5"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit32> </Unit32>
<Unit33> <Unit33>
<Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\objpas.pp"/> <Filename Value="..\..\..\..\..\lazarusClean\fpc\2.0.4\source\rtl\objpas\objpas.pp"/>
@ -319,10 +325,10 @@
<Filename Value="..\..\base_xmlrpc_formatter.pas"/> <Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="base_xmlrpc_formatter"/> <UnitName Value="base_xmlrpc_formatter"/>
<CursorPos X="48" Y="406"/> <CursorPos X="26" Y="13"/>
<TopLine Value="386"/> <TopLine Value="1"/>
<EditorIndex Value="3"/> <EditorIndex Value="7"/>
<UsageCount Value="68"/> <UsageCount Value="82"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit36> </Unit36>
<Unit37> <Unit37>
@ -386,109 +392,88 @@
<TopLine Value="95"/> <TopLine Value="95"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit45> </Unit45>
<Unit46>
<Filename Value="..\..\semaphore.pas"/>
<UnitName Value="semaphore"/>
<CursorPos X="44" Y="6"/>
<TopLine Value="1"/>
<UsageCount Value="12"/>
</Unit46>
<Unit47>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-xml\src\dom.pp"/>
<UnitName Value="DOM"/>
<CursorPos X="19" Y="328"/>
<TopLine Value="313"/>
<UsageCount Value="13"/>
</Unit47>
<Unit48>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\win32\system.pp"/>
<UnitName Value="System"/>
<CursorPos X="22" Y="33"/>
<TopLine Value="18"/>
<UsageCount Value="11"/>
</Unit48>
<Unit49>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\contnrs.pp"/>
<UnitName Value="contnrs"/>
<CursorPos X="3" Y="964"/>
<TopLine Value="962"/>
<UsageCount Value="10"/>
</Unit49>
<Unit50>
<Filename Value="..\..\wst_delphi.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="4"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit50>
<Unit51>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\objpas\strutils.pp"/>
<UnitName Value="strutils"/>
<CursorPos X="10" Y="29"/>
<TopLine Value="14"/>
<UsageCount Value="10"/>
</Unit51>
<Unit52>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
<CursorPos X="20" Y="168"/>
<TopLine Value="166"/>
<UsageCount Value="10"/>
</Unit52>
<Unit53>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpas.inc"/>
<CursorPos X="11" Y="442"/>
<TopLine Value="556"/>
<UsageCount Value="10"/>
</Unit53>
<Unit54>
<Filename Value="..\..\wst_fpc_xml.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="wst_fpc_xml"/>
<CursorPos X="8" Y="38"/>
<TopLine Value="11"/>
<EditorIndex Value="3"/>
<UsageCount Value="28"/>
<Loaded Value="True"/>
</Unit54>
<Unit55>
<Filename Value="..\..\wst_global.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="9"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit55>
<Unit56>
<Filename Value="..\..\..\..\..\..\lazarus_23_215XX\fpc\source\packages\fcl-base\src\inc\custapp.pp"/>
<UnitName Value="CustApp"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit56>
</Units> </Units>
<JumpHistory Count="25" HistoryIndex="24"> <JumpHistory Count="0" HistoryIndex="-1"/>
<Position1>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3097" Column="1" TopLine="3065"/>
</Position1>
<Position2>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3133" Column="31" TopLine="3110"/>
</Position2>
<Position3>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="384" Column="38" TopLine="372"/>
</Position3>
<Position4>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="960" Column="31" TopLine="943"/>
</Position4>
<Position5>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="84" Column="28" TopLine="141"/>
</Position5>
<Position6>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3133" Column="28" TopLine="3111"/>
</Position6>
<Position7>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="384" Column="36" TopLine="372"/>
</Position7>
<Position8>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="456" Column="16" TopLine="437"/>
</Position8>
<Position9>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="458" Column="11" TopLine="436"/>
</Position9>
<Position10>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position10>
<Position11>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="458" Column="38" TopLine="436"/>
</Position11>
<Position12>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="464" Column="38" TopLine="442"/>
</Position12>
<Position13>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="1312" Column="36" TopLine="1290"/>
</Position13>
<Position14>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="1364" Column="1" TopLine="1333"/>
</Position14>
<Position15>
<Filename Value="..\..\base_xmlrpc_formatter.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position15>
<Position16>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="1647" Column="21" TopLine="1622"/>
</Position16>
<Position17>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="454" Column="1" TopLine="405"/>
</Position17>
<Position18>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3107" Column="5" TopLine="3058"/>
</Position18>
<Position19>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="385" Column="42" TopLine="366"/>
</Position19>
<Position20>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="2446" Column="30" TopLine="2434"/>
</Position20>
<Position21>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position21>
<Position22>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="459" Column="5" TopLine="430"/>
</Position22>
<Position23>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="288" Column="36" TopLine="276"/>
</Position23>
<Position24>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="3139" Column="5" TopLine="3110"/>
</Position24>
<Position25>
<Filename Value="testformatter_unit.pas"/>
<Caret Line="386" Column="42" TopLine="378"/>
</Position25>
</JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
@ -497,6 +482,7 @@
<Filename Value="wst_test_suite.exe"/> <Filename Value="wst_test_suite.exe"/>
</Target> </Target>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="..\..\"/>
<OtherUnitFiles Value="..\..\;..\..\ws_helper\"/> <OtherUnitFiles Value="..\..\;..\..\ws_helper\"/>
<UnitOutputDirectory Value="obj"/> <UnitOutputDirectory Value="obj"/>
</SearchPaths> </SearchPaths>

View File

@ -9,7 +9,7 @@ uses
base_service_intf, base_soap_formatter, binary_formatter, binary_streamer, base_service_intf, base_soap_formatter, binary_formatter, binary_streamer,
server_binary_formatter, metadata_repository, server_binary_formatter, metadata_repository,
metadata_generator, parserdefs, server_service_intf, metadata_wsdl, metadata_generator, parserdefs, server_service_intf, metadata_wsdl,
test_parserdef, base_xmlrpc_formatter; test_parserdef, base_xmlrpc_formatter, wst_fpc_xml;
Const Const
ShortOpts = 'alh'; ShortOpts = 'alh';

View File

@ -33,6 +33,10 @@ type
AObject : TPasElement; AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;virtual;abstract; ):Boolean;virtual;abstract;
class procedure DeleteObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
);virtual;
end; end;
TObjectUpdaterClass = class of TObjectUpdater; TObjectUpdaterClass = class of TObjectUpdater;
@ -55,6 +59,10 @@ type
AObject : TPasElement; AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean; ):Boolean;
procedure DeleteObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
);
procedure FillList(ALs : TStrings;AContainer : TwstPasTreeContainer); procedure FillList(ALs : TStrings;AContainer : TwstPasTreeContainer);
procedure FillTypeList( procedure FillTypeList(
@ -118,6 +126,19 @@ begin
Result := h.UpdateObject(AObject,ASymbolTable); Result := h.UpdateObject(AObject,ASymbolTable);
end; end;
procedure DeleteObject(
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
);
var
h : TObjectUpdaterClass;
begin
if not UpdaterRegistryInst.FindHandler(AObject,h) then begin
raise Exception.Create('No handler found.');
end;
h.DeleteObject(AObject,ASymbolTable);
end;
type type
{ TEnumUpdater } { TEnumUpdater }
@ -479,6 +500,22 @@ begin
Result := Assigned(AObject); Result := Assigned(AObject);
end; end;
class procedure TObjectUpdater.DeleteObject (
AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer
);
var
sct : TPasSection;
begin
if ( AObject <> nil ) then begin
sct := ASymbolTable.CurrentModule.InterfaceSection;
sct.Declarations.Extract(AObject);
sct.Types.Extract(AObject);
sct.Classes.Extract(AObject);
AObject.Release();
end;
end;
procedure InternalFillList( procedure InternalFillList(
ALs : TStrings; ALs : TStrings;
AContainer : TwstPasTreeContainer AContainer : TwstPasTreeContainer

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="1"/>
</General> </General>
<VersionInfo> <VersionInfo>
<ProjectVersion Value=""/> <ProjectVersion Value=""/>
@ -32,13 +32,13 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item2> </Item2>
</RequiredPackages> </RequiredPackages>
<Units Count="70"> <Units Count="71">
<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="24" Y="11"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<UsageCount Value="186"/> <UsageCount Value="189"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="uwsttypelibraryedit.pas"/> <Filename Value="uwsttypelibraryedit.pas"/>
@ -47,10 +47,10 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="uwsttypelibraryedit.lrs"/> <ResourceFilename Value="uwsttypelibraryedit.lrs"/>
<UnitName Value="uwsttypelibraryedit"/> <UnitName Value="uwsttypelibraryedit"/>
<CursorPos X="24" Y="535"/> <CursorPos X="38" Y="333"/>
<TopLine Value="531"/> <TopLine Value="288"/>
<EditorIndex Value="0"/> <EditorIndex Value="0"/>
<UsageCount Value="186"/> <UsageCount Value="189"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
@ -63,10 +63,10 @@
<Unit3> <Unit3>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/> <Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<UnitName Value="wsdl2pas_imp"/> <UnitName Value="wsdl2pas_imp"/>
<CursorPos X="8" Y="2027"/> <CursorPos X="38" Y="805"/>
<TopLine Value="2017"/> <TopLine Value="792"/>
<EditorIndex Value="7"/> <EditorIndex Value="6"/>
<UsageCount Value="77"/> <UsageCount Value="79"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="65" Y="750" ID="2"/> <Item0 X="65" Y="750" ID="2"/>
</Bookmarks> </Bookmarks>
@ -78,8 +78,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="9"/> <EditorIndex Value="12"/>
<UsageCount Value="186"/> <UsageCount Value="189"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="49" Y="446" ID="1"/> <Item0 X="49" Y="446" ID="1"/>
</Bookmarks> </Bookmarks>
@ -94,7 +94,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="186"/> <UsageCount Value="189"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="ufenumedit.pas"/> <Filename Value="ufenumedit.pas"/>
@ -103,18 +103,20 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="ufenumedit.lrs"/> <ResourceFilename Value="ufenumedit.lrs"/>
<UnitName Value="ufEnumedit"/> <UnitName Value="ufEnumedit"/>
<CursorPos X="2" Y="12"/> <CursorPos X="1" Y="77"/>
<TopLine Value="1"/> <TopLine Value="58"/>
<UsageCount Value="186"/> <EditorIndex Value="7"/>
<UsageCount Value="189"/>
<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="31" Y="535"/>
<TopLine Value="532"/> <TopLine Value="16"/>
<EditorIndex Value="6"/> <EditorIndex Value="5"/>
<UsageCount Value="186"/> <UsageCount Value="189"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
@ -123,16 +125,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="186"/> <UsageCount Value="189"/>
</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="68" Y="504"/> <CursorPos X="44" Y="519"/>
<TopLine Value="483"/> <TopLine Value="5"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="186"/> <UsageCount Value="189"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit9> </Unit9>
<Unit10> <Unit10>
@ -142,10 +144,10 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="ufclassedit.lrs"/> <ResourceFilename Value="ufclassedit.lrs"/>
<UnitName Value="ufclassedit"/> <UnitName Value="ufclassedit"/>
<CursorPos X="52" Y="175"/> <CursorPos X="29" Y="158"/>
<TopLine Value="154"/> <TopLine Value="121"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<UsageCount Value="186"/> <UsageCount Value="189"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit10> </Unit10>
<Unit11> <Unit11>
@ -154,11 +156,9 @@
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="ufpropedit.lrs"/> <ResourceFilename Value="ufpropedit.lrs"/>
<UnitName Value="ufpropedit"/> <UnitName Value="ufpropedit"/>
<CursorPos X="32" Y="149"/> <CursorPos X="3" Y="154"/>
<TopLine Value="140"/> <TopLine Value="140"/>
<EditorIndex Value="3"/> <UsageCount Value="189"/>
<UsageCount Value="186"/>
<Loaded Value="True"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
<Filename Value="..\..\..\..\lazarus23_213\lcl\comctrls.pp"/> <Filename Value="..\..\..\..\lazarus23_213\lcl\comctrls.pp"/>
@ -172,8 +172,8 @@
<UnitName Value="parserutils"/> <UnitName Value="parserutils"/>
<CursorPos X="1" Y="93"/> <CursorPos X="1" Y="93"/>
<TopLine Value="54"/> <TopLine Value="54"/>
<EditorIndex Value="4"/> <EditorIndex Value="3"/>
<UsageCount Value="64"/> <UsageCount Value="66"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
@ -259,7 +259,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="150"/> <UsageCount Value="153"/>
</Unit26> </Unit26>
<Unit27> <Unit27>
<Filename Value="uinterfaceedit.lfm"/> <Filename Value="uinterfaceedit.lfm"/>
@ -276,7 +276,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="145"/> <UsageCount Value="148"/>
</Unit28> </Unit28>
<Unit29> <Unit29>
<Filename Value="..\..\..\..\lazarus23_213\lcl\include\treeview.inc"/> <Filename Value="..\..\..\..\lazarus23_213\lcl\include\treeview.inc"/>
@ -288,10 +288,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="73" Y="148"/> <CursorPos X="37" Y="446"/>
<TopLine Value="156"/> <TopLine Value="436"/>
<EditorIndex Value="8"/> <EditorIndex Value="11"/>
<UsageCount Value="108"/> <UsageCount Value="111"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit30> </Unit30>
<Unit31> <Unit31>
@ -300,7 +300,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="108"/> <UsageCount Value="111"/>
</Unit31> </Unit31>
<Unit32> <Unit32>
<Filename Value="..\ws_helper\logger_intf.pas"/> <Filename Value="..\ws_helper\logger_intf.pas"/>
@ -315,7 +315,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="108"/> <UsageCount Value="111"/>
</Unit33> </Unit33>
<Unit34> <Unit34>
<Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/> <Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/>
@ -338,25 +338,29 @@
<Unit37> <Unit37>
<Filename Value="..\wst_rtti_filter\rtti_filters.pas"/> <Filename Value="..\wst_rtti_filter\rtti_filters.pas"/>
<UnitName Value="rtti_filters"/> <UnitName Value="rtti_filters"/>
<CursorPos X="2" Y="12"/> <CursorPos X="1" Y="236"/>
<TopLine Value="1"/> <TopLine Value="219"/>
<UsageCount Value="24"/> <EditorIndex Value="8"/>
<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="5"/> <EditorIndex Value="4"/>
<UsageCount Value="27"/> <UsageCount Value="29"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit38> </Unit38>
<Unit39> <Unit39>
<Filename Value="..\wst_rtti_filter\dom_cursors.pas"/> <Filename Value="..\wst_rtti_filter\dom_cursors.pas"/>
<UnitName Value="dom_cursors"/> <UnitName Value="dom_cursors"/>
<CursorPos X="2" Y="12"/> <CursorPos X="1" Y="239"/>
<TopLine Value="1"/> <TopLine Value="222"/>
<UsageCount Value="21"/> <EditorIndex Value="10"/>
<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"/>
@ -405,8 +409,8 @@
<ComponentName Value="formImport"/> <ComponentName Value="formImport"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<UnitName Value="wstimportdlg"/> <UnitName Value="wstimportdlg"/>
<CursorPos X="42" Y="71"/> <CursorPos X="29" Y="60"/>
<TopLine Value="52"/> <TopLine Value="154"/>
<UsageCount Value="12"/> <UsageCount Value="12"/>
</Unit46> </Unit46>
<Unit47> <Unit47>
@ -438,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="64"/> <UsageCount Value="67"/>
</Unit50> </Unit50>
<Unit51> <Unit51>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/>
@ -453,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="62"/> <UsageCount Value="65"/>
</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"/>
@ -470,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="55"/> <UsageCount Value="58"/>
</Unit54> </Unit54>
<Unit55> <Unit55>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/>
@ -494,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="47"/> <UsageCount Value="50"/>
</Unit57> </Unit57>
<Unit58> <Unit58>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/>
@ -511,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="37"/> <UsageCount Value="40"/>
</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"/>
@ -552,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="33"/> <UsageCount Value="36"/>
</Unit65> </Unit65>
<Unit66> <Unit66>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/>
@ -571,9 +575,11 @@
<Unit68> <Unit68>
<Filename Value="..\wst_rtti_filter\cursor_intf.pas"/> <Filename Value="..\wst_rtti_filter\cursor_intf.pas"/>
<UnitName Value="cursor_intf"/> <UnitName Value="cursor_intf"/>
<CursorPos X="2" Y="12"/> <CursorPos X="2" Y="90"/>
<TopLine Value="1"/> <TopLine Value="71"/>
<UsageCount Value="10"/> <EditorIndex Value="9"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit68> </Unit68>
<Unit69> <Unit69>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\control.inc"/> <Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\control.inc"/>
@ -581,128 +587,18 @@
<TopLine Value="2390"/> <TopLine Value="2390"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit69> </Unit69>
<Unit70>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\customform.inc"/>
<CursorPos X="1" Y="1417"/>
<TopLine Value="1398"/>
<UsageCount Value="10"/>
</Unit70>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="1" HistoryIndex="0">
<Position1> <Position1>
<Filename Value="wsdl_generator.pas"/> <Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="654" Column="34" TopLine="650"/> <Caret Line="595" Column="20" TopLine="575"/>
</Position1> </Position1>
<Position2>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="694" Column="32" TopLine="675"/>
</Position2>
<Position3>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="149" Column="42" TopLine="136"/>
</Position3>
<Position4>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="695" Column="19" TopLine="677"/>
</Position4>
<Position5>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="289" Column="20" TopLine="274"/>
</Position5>
<Position6>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="693" Column="81" TopLine="651"/>
</Position6>
<Position7>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position7>
<Position8>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="154" Column="30" TopLine="139"/>
</Position8>
<Position9>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="448" Column="23" TopLine="432"/>
</Position9>
<Position10>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="289" Column="10" TopLine="274"/>
</Position10>
<Position11>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="447" Column="40" TopLine="432"/>
</Position11>
<Position12>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position12>
<Position13>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="155" Column="33" TopLine="140"/>
</Position13>
<Position14>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2062" Column="14" TopLine="2033"/>
</Position14>
<Position15>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="73" Column="35" TopLine="65"/>
</Position15>
<Position16>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2336" Column="16" TopLine="2329"/>
</Position16>
<Position17>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="682" Column="3" TopLine="735"/>
</Position17>
<Position18>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position18>
<Position19>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2100" Column="3" TopLine="2012"/>
</Position19>
<Position20>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="186" Column="55" TopLine="164"/>
</Position20>
<Position21>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2044" Column="46" TopLine="2011"/>
</Position21>
<Position22>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position22>
<Position23>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="181" Column="45" TopLine="164"/>
</Position23>
<Position24>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="149" Column="44" TopLine="148"/>
</Position24>
<Position25>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="155" Column="33" TopLine="133"/>
</Position25>
<Position26>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2092" Column="80" TopLine="2062"/>
</Position26>
<Position27>
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
<Caret Line="269" Column="16" TopLine="234"/>
</Position27>
<Position28>
<Filename Value="edit_helper.pas"/>
<Caret Line="564" Column="16" TopLine="553"/>
</Position28>
<Position29>
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
<Caret Line="139" Column="35" TopLine="125"/>
</Position29>
<Position30>
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
<Caret Line="145" Column="49" TopLine="130"/>
</Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -1,7 +1,7 @@
object fWstTypeLibraryEdit: TfWstTypeLibraryEdit object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Left = 217 Left = 137
Height = 644 Height = 644
Top = 507 Top = 257
Width = 833 Width = 833
HorzScrollBar.Page = 832 HorzScrollBar.Page = 832
VertScrollBar.Page = 623 VertScrollBar.Page = 623
@ -78,9 +78,11 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 81 BookMarkOptions.Xoffset = 81
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5 Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True Gutter.ShowCodeFolding = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1 Highlighter = SynPasSyn1
Keystrokes = < Keystrokes = <
@ -405,6 +407,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsWSDL: TTabSheet object tsWSDL: TTabSheet
@ -424,7 +427,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 54 BookMarkOptions.Xoffset = 54
BookMarkOptions.OnChange = nil
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynXMLSyn1 Highlighter = SynXMLSyn1
Keystrokes = < Keystrokes = <
@ -749,6 +754,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsProxy: TTabSheet object tsProxy: TTabSheet
@ -768,11 +774,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 81 BookMarkOptions.Xoffset = 81
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5 Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True Gutter.ShowCodeFolding = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1 Highlighter = SynPasSyn1
Keystrokes = < Keystrokes = <
@ -1097,7 +1101,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsImp: TTabSheet object tsImp: TTabSheet
@ -1117,11 +1120,9 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 81 BookMarkOptions.Xoffset = 81
BookMarkOptions.OnChange = nil
Gutter.DigitCount = 5 Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True Gutter.ShowCodeFolding = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1 Highlighter = SynPasSyn1
Keystrokes = < Keystrokes = <
@ -1446,7 +1447,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsBinder: TTabSheet object tsBinder: TTabSheet
@ -1466,12 +1466,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
PopupMenu = PopupMenu2 PopupMenu = PopupMenu2
TabOrder = 0 TabOrder = 0
BookMarkOptions.Xoffset = 81 BookMarkOptions.Xoffset = 81
BookMarkOptions.OnChange = nil
Gutter.AutoSize = True Gutter.AutoSize = True
Gutter.DigitCount = 5 Gutter.DigitCount = 5
Gutter.ShowLineNumbers = True Gutter.ShowLineNumbers = True
Gutter.ShowCodeFolding = True Gutter.ShowCodeFolding = True
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14 Gutter.CodeFoldingWidth = 14
Highlighter = SynPasSyn1 Highlighter = SynPasSyn1
Keystrokes = < Keystrokes = <
@ -1796,7 +1794,6 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
ShortCut = 24642 ShortCut = 24642
end> end>
ReadOnly = True ReadOnly = True
SelectedColor.OnChange = nil
end end
end end
object tsLog: TTabSheet object tsLog: TTabSheet
@ -1899,6 +1896,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Caption = 'Update Object' Caption = 'Update Object'
OnClick = actUpdateObjectExecute OnClick = actUpdateObjectExecute
end end
object MenuItem34: TMenuItem
Action = actDelete
OnClick = actDeleteExecute
end
end end
object MenuItem6: TMenuItem object MenuItem6: TMenuItem
Action = actAbout Action = actAbout
@ -1982,6 +1983,12 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
DisableIfNoHandler = True DisableIfNoHandler = True
OnExecute = actSaveExecute OnExecute = actSaveExecute
end end
object actDelete: TAction
Caption = 'Delete'
DisableIfNoHandler = True
OnExecute = actDeleteExecute
OnUpdate = actUpdateObjectUpdate
end
end end
object OD: TOpenDialog object OD: TOpenDialog
Title = 'Ouvrir un fichier existant' Title = 'Ouvrir un fichier existant'
@ -2046,6 +2053,10 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Action = actUpdateObject Action = actUpdateObject
OnClick = actUpdateObjectExecute OnClick = actUpdateObjectExecute
end end
object MenuItem33: TMenuItem
Action = actDelete
OnClick = actDeleteExecute
end
end end
object PopupMenu2: TPopupMenu object PopupMenu2: TPopupMenu
left = 528 left = 528

View File

@ -1,8 +1,8 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus } { Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#217#0#6'Hei' 'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#137#0#6'Hei'
+'ght'#3#132#2#3'Top'#3#251#1#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18 +'ght'#3#132#2#3'Top'#3#1#1#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18
+'VertScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+[' +'VertScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+['
+'Web Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'Clie' +'Web Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'Clie'
+'ntWidth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7 +'ntWidth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7
@ -22,61 +22,63 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHA' +'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHA'
+'RSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Co' +'RSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Co'
+'urier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'Popu' +'urier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'Popu'
+'pMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.DigitCou' +'pMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions'
+'nt'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter' +'.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gut'
+'.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1 +'ter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2
+#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7 +#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'Sh'
+'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7 +'ortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8
+'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1 +'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'S'
+#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7 +'hortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8
+'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7 +'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'S'
+'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7 +'hortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'S'
+'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7 +'hortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8
+'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7 +'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10
+'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7 +#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8
+'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C' +'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8
+'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7 +'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C' +'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7 +'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C' +'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7 +'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0 +'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2 +#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
+'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu' +'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S' +'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command' +'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7 +#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@' +'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3 +#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short' +'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8 +'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251 +#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command' +'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm' +'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7 +'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0 +#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
+#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5' +'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut' +'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short' +'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8 +#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b' +#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3 +'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman' +'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C' +'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0 +#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3 +'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
,'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut' ,'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T' +'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
+'TabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#12'ClientHeight'#3'='#2#11'Client' +#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnC'
+'Width'#3#245#1#0#8'TSynEdit'#7'srcWSDL'#6'Height'#3'='#2#5'Width'#3#245#1#5 +'hange'#13#0#0#0#9'TTabSheet'#6'tsWSDL'#7'Caption'#6#5'&WSDL'#12'ClientHeigh'
+'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7 +'t'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#7'srcWSDL'#6'Height'#3'='#2
+'clBlack'#11'Font.Height'#2#233#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7 +#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'
+'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23 +#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#233#9'Font.Name'#6#7'Courier'
+'BookMarkOptions.Xoffset'#2'6'#22'Gutter.ShowLineNumbers'#9#23'Gutter.CodeFo' +#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'
+'ldingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Com' +#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'6'#24'BookMarkOptions.OnChang'
+'mand'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comm' +'e'#13#22'Gutter.ShowLineNumbers'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFol'
+'and'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Co' +'dingWidth'#2#14#11'Highlighter'#7#10'SynXMLSyn1'#10'Keystrokes'#14#1#7'Comm'
+'mmand'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7 +'and'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comma'
+'nd'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Com'
+'mand'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7
+'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'C' +'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'C'
+'ommand'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'C' +'ommand'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'C'
+'ommand'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7 +'ommand'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7
@ -115,242 +117,243 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0 +'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3 +#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut' +'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T'
+'TabSheet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#12'ClientHeight'#3'='#2#11'Clie'
+'ntWidth'#3#245#1#0#8'TSynEdit'#8'srcProxy'#6'Height'#3'='#2#5'Width'#3#245#1
+#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7
+#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7
+#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0
+#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions.OnChange'#13#17'Gutter.'
+'DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15
+'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'S'
+'ynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Comman'
+'d'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Co'
+'mmand'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Com'
+'mand'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'C'
+'ommand'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'C'
,'ommand'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'C'
+'ommand'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7
+'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7
+'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7
+'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'C'
+'ommand'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7
+'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'C'
+'ommand'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7
+'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'C'
+'ommand'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7
+'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1
+#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '
+#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3
+'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'C'
+'ommand'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0
+#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3
+'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'Short'
+'Cut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8
+'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['
+#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'
+#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Com'
+'mand'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7
+'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0
+#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4'
+'@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'
+#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'Short'
+'Cut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8
+'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'
+#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3
+'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Comman'
+'d'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'C'
+'ommand'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1
+#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C'
+'`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCu'
+'t'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'Sh'
+'ortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'#13#0#0#0#9'TTabS'
+'heet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#12'ClientHeight'#3
+'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#6'srcImp'#6'Height'#3'='#2#5'Wid'
+'th'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'F'
+'ont.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10
+'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8
+'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions.OnChange'
+#13#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCod'
+'eFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14#11'High'
+'lighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2
+'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'
+#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3
+'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'
+#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3
+'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2
+''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3
+'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'
+#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3
+'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2
+'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3
+'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2
+'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3
+'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2
+'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3
+'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'
+#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'Short'
+'Cut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8
,'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245
+#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Comman'
+'d'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160
+#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortC'
+'ut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8
+'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3
+#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Comm'
+'and'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7
+'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0
+#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3
+'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCu'
+'t'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'Sh'
+'ortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1
+#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3
+'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Comman'
+'d'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'C'
+'ommand'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1
+#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'
+#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3
+'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCu'
+'t'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'Sh'
+'ortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232
+#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'
+#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Comma'
+'nd'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnChange'
+#13#0#0#0#9'TTabSheet'#8'tsBinder'#7'Caption'#6#7'&Binder'#12'ClientHeight'#3
+'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#9'srcBinder'#6'Height'#3'='#2#5
+'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10
+'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10
+'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8
+'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions.OnChange'
+#13#15'Gutter.AutoSize'#9#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumber'
+'s'#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFold'
+'ingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Comma'
+'nd'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Comman'
+'d'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Comm'
+'and'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7
+'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'C'
+'ommand'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'C'
+'ommand'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7
+'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7
+'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
,#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select' +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#5'tsLog'#7'Caption'#6#4'&Log'#12'Cl' +'edColor.OnChange'#13#0#0#0#9'TTabSheet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#12
+'ientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#5'TMemo'#6'mmoLog'#6'Height'#3 +'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#8'srcProxy'#6'He'
+'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#13'Lines.Strings'#1#6#0#0#10'S' +'ight'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12
+'crollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#0#0#9'TSplitter'#9'Splitter1'#4 +'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'
+'Left'#3':'#1#6'Height'#3'Y'#2#5'Width'#2#8#5'Color'#7#7'clBlack'#11'ParentC' +#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10
+'olor'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuI' +'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.Digi'
+'tem'#9'MenuItem1'#7'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Ac' +'tCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gu'
+'tion'#7#10'actNewFile'#7'OnClick'#7#17'actNewFileExecute'#0#0#9'TMenuItem'#9 +'tter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'
+'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#11'a' +#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0
+'ctOpenFile'#7'OnClick'#7#18'actOpenFileExecute'#0#0#9'TMenuItem'#9'MenuItem' +#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0
+'3'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportExecute'#0#0#9'TMenuIt' +#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'
+'em'#9'MenuItem7'#6'Action'#7#7'actSave'#7'OnClick'#7#14'actSaveExecute'#0#0 ,#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0
+#9'TMenuItem'#10'MenuItem32'#6'Action'#7#9'actSaveAs'#7'OnClick'#7#16'actSav' +#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1
+'eAsExecute'#0#0#9'TMenuItem'#10'MenuItem17'#7'Caption'#6#1'-'#0#0#9'TMenuIt' +#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1
+'em'#9'MenuItem4'#6'Action'#7#7'actExit'#7'OnClick'#7#14'actExitExecute'#0#0 +#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1
+#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5'&View'#0#9'TMenuItem'#10'MenuI' +#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'tem15'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefreshViewExecute' +'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuI' +'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'tem30'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0 +'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+#0#9'TMenuItem'#10'MenuItem31'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7 +'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+#22'actFullCollapseExecute'#0#0#0#9'TMenuItem'#10'MenuItem10'#7'Caption'#6#8 +'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'&Edition'#0#9'TMenuItem'#10'MenuItem11'#6'Action'#7#13'actEnumCreate'#7'OnC' +'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'lick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem23'#6'Action'#7 +'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExecute'#0#0#9'TMenu' +'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+'Item'#10'MenuItem25'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfC' +#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+'reateExecute'#0#0#9'TMenuItem'#10'MenuItem12'#7'Caption'#6#1'-'#0#0#9'TMenu' +'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'Item'#10'MenuItem13'#6'Action'#7#15'actUpdateObject'#7'Caption'#6#13'Update' +'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+' Object'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#0#9'TMenuItem'#9'MenuI' +'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+'tem6'#6'Action'#7#8'actAbout'#7'Caption'#6#6'&About'#7'OnClick'#7#15'actAbo' +#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'utExecute'#0#0#0#11'TActionList'#2'AL'#4'left'#3'X'#1#3'top'#2'8'#0#7'TActi' +'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+'on'#11'actOpenFile'#7'Caption'#6#9'Open File'#18'DisableIfNoHandler'#9#9'On' +#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'Execute'#7#18'actOpenFileExecute'#0#0#7'TAction'#7'actExit'#7'Caption'#6#4 +'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Exit'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actExitExecute'#0#0#7'TAct' +'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+'ion'#9'actExport'#7'Caption'#6#24'Save generated files ...'#18'DisableIfNoH' +'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+'andler'#9#9'OnExecute'#7#16'actExportExecute'#8'OnUpdate'#7#15'actExportUpd' +#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+'ate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'About'#18'DisableIfNoHandler' +#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+#9#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TAction'#9'actSaveAs'#7'Caption' +'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+#6#11'Save As ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actSaveAsExecu' +'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+'te'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#13'actEnumCreate'#7'Ca' +#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'ption'#6#18'Create Enumeration'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20 +'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+'actEnumCreateExecute'#0#0#7'TAction'#15'actUpdateObject'#7'Caption'#6#6'Upd' +#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'ate'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actUpdateObjectExecute'#8'O' +'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+'nUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actRefreshView'#7'Ca' +'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+'ption'#6#14'&Refresh Views'#18'DisableIfNoHandler'#9#9'OnExecute'#7#21'actR' +#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'efreshViewExecute'#0#0#7'TAction'#10'actNewFile'#7'Caption'#6#8'New File'#18 +'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'DisableIfNoHandler'#9#9'OnExecute'#7#17'actNewFileExecute'#0#0#7'TAction'#17 +'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+'actCompoundCreate'#7'Caption'#6#20'Create Compound Type'#18'DisableIfNoHand' +'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+'ler'#9#9'OnExecute'#7#24'actCompoundCreateExecute'#0#0#7'TAction'#13'actInt' +#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'fCreate'#7'Caption'#6#16'Create Interface'#18'DisableIfNoHandler'#9#9'OnExe' +'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+'cute'#7#20'actIntfCreateExecute'#0#0#7'TAction'#13'actFullExpand'#7'Caption' +#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'T'
+#6#11'Full expand'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actFullExpandE' +'TabSheet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skeleton'#12'ClientHeigh'
+'xecute'#0#0#7'TAction'#15'actFullCollapse'#7'Caption'#6#13'Full Collapse'#18 +'t'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#6'srcImp'#6'Height'#3'='#2#5
,'DisableIfNoHandler'#9#9'OnExecute'#7#22'actFullCollapseExecute'#0#0#7'TActi' +'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10
+'on'#7'actSave'#7'Caption'#6#4'Save'#18'DisableIfNoHandler'#9#9'OnExecute'#7 +'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10
+#14'actSaveExecute'#0#0#0#11'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un fich' +'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8
+'ier existant'#6'Filter'#6'3WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.' +'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#17'Gutter.DigitCount'#2#5#22
+'pas'#11'FilterIndex'#2#0#10'InitialDir'#6#2'.\'#7'Options'#11#15'ofPathMust' +'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldin'
+'Exist'#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3 +'gWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'
+#153#1#3'top'#2'X'#0#0#10'TSynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'Comment' +#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3
+'Attri.Foreground'#7#6'clBlue'#18'CommentAttri.Style'#11#6'fsBold'#0#22'Stri' +#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2
+'ngAttri.Foreground'#7#8'clMaroon'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'D' +'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'
+'irectiveAttri.Foreground'#7#7'clGreen'#20'DirectiveAttri.Style'#11#6'fsBold' +#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2
+#0#14'NestedComments'#9#4'left'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2'SD' +#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2
+#5'Title'#6#27'Enregistrer le fichier sous'#10'DefaultExt'#6#5'.WSDL'#6'Filt' +#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6
+'er'#6#25'WDSL files(*.WSDL)|*.WSDL'#11'FilterIndex'#2#0#7'Options'#11#15'of' +#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2
+'PathMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#242#1#3'top' +#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2
+#3#176#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3#128#1#3'top'#3#8#1#0#9 +#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2
+'TMenuItem'#10'MenuItem28'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'act' +#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13
+'FullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem27'#6'Action'#7#15'actFullCo' +#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
+'llapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#9'TMenuItem'#10'MenuIte' +'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
+'m26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actEnum' +'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
+'Create'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem2' +'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
+'1'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExecu' +'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
+'te'#0#0#9'TMenuItem'#10'MenuItem24'#6'Action'#7#13'actIntfCreate'#7'OnClick' +#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
+#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem22'#7'Caption'#6#1'-' +'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
+#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpdateObject'#7'OnClick'#7 ,'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
+#22'actUpdateObjectExecute'#0#0#0#10'TPopupMenu'#10'PopupMenu2'#4'left'#3#16 +'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
+#2#3'top'#3#235#0#0#9'TMenuItem'#10'MenuItem18'#6'Action'#7#14'actRefreshVie' +#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
+'w'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem19'#7 +'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
+'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem20'#6'Action'#7#9'actExport'#7 +#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
+'OnClick'#7#16'actExportExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'Defa' +'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
+'ultFilter'#6#30'Documents WSDL (*.wsdl)|*.wsdl'#7'Enabled'#8#23'ElementAttr' +'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
+'i.Foreground'#7#6'clNavy'#30'AttributeValueAttri.Foreground'#7#8'clPurple' +#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
+#16'WantBracesParsed'#8#4'left'#3#210#1#3'top'#3#252#0#0#0#0 +'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
+'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
+'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#8
+'tsBinder'#7'Caption'#6#7'&Binder'#12'ClientHeight'#3'='#2#11'ClientWidth'#3
+#245#1#0#8'TSynEdit'#9'srcBinder'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'
+#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlac'
+'k'#11'Font.Height'#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFix'
+'ed'#11'ParentColor'#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'Book'
+'MarkOptions.Xoffset'#2'Q'#15'Gutter.AutoSize'#9#17'Gutter.DigitCount'#2#5#22
+'Gutter.ShowLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#23'Gutter.CodeFoldin'
+'gWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'
+#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3
+#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2
+'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'
+#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2
+#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2
+#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6
+#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2
+#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2
+#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2
+#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13
+#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
+'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
+'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
,'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
+'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#5
+'tsLog'#7'Caption'#6#4'&Log'#12'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1
+#0#5'TMemo'#6'mmoLog'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClien'
+'t'#13'Lines.Strings'#1#6#0#0#10'ScrollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0
+#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3':'#1#6'Height'#3'Y'#2#5'Width'#2#8
+#5'Color'#7#7'clBlack'#11'ParentColor'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'lef'
+'t'#3'`'#1#3'top'#2'p'#0#9'TMenuItem'#9'MenuItem1'#7'Caption'#6#6'&Files'#0#9
+'TMenuItem'#10'MenuItem16'#6'Action'#7#10'actNewFile'#7'OnClick'#7#17'actNew'
+'FileExecute'#0#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuIte'
+'m'#9'MenuItem5'#6'Action'#7#11'actOpenFile'#7'OnClick'#7#18'actOpenFileExec'
+'ute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#9'actExport'#7'OnClick'#7#16
+'actExportExecute'#0#0#9'TMenuItem'#9'MenuItem7'#6'Action'#7#7'actSave'#7'On'
+'Click'#7#14'actSaveExecute'#0#0#9'TMenuItem'#10'MenuItem32'#6'Action'#7#9'a'
+'ctSaveAs'#7'OnClick'#7#16'actSaveAsExecute'#0#0#9'TMenuItem'#10'MenuItem17'
+#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#7'actExit'#7'On'
+'Click'#7#14'actExitExecute'#0#0#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5
+'&View'#0#9'TMenuItem'#10'MenuItem15'#6'Action'#7#14'actRefreshView'#7'OnCli'
+'ck'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6
+#1'-'#0#0#9'TMenuItem'#10'MenuItem30'#6'Action'#7#13'actFullExpand'#7'OnClic'
+'k'#7#20'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem31'#6'Action'#7#15
+'actFullCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#0#9'TMenuItem'
+#10'MenuItem10'#7'Caption'#6#8'&Edition'#0#9'TMenuItem'#10'MenuItem11'#6'Act'
+'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'
+'mpoundCreateExecute'#0#0#9'TMenuItem'#10'MenuItem25'#6'Action'#7#13'actIntf'
+'Create'#7'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem1'
+'2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem13'#6'Action'#7#15'actUpda'
+'teObject'#7'Caption'#6#13'Update Object'#7'OnClick'#7#22'actUpdateObjectExe'
+'cute'#0#0#9'TMenuItem'#10'MenuItem34'#6'Action'#7#9'actDelete'#7'OnClick'#7
+#16'actDeleteExecute'#0#0#0#9'TMenuItem'#9'MenuItem6'#6'Action'#7#8'actAbout'
+#7'Caption'#6#6'&About'#7'OnClick'#7#15'actAboutExecute'#0#0#0#11'TActionLis'
+'t'#2'AL'#4'left'#3'X'#1#3'top'#2'8'#0#7'TAction'#11'actOpenFile'#7'Caption'
+#6#9'Open File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#18'actOpenFileExecut'
+'e'#0#0#7'TAction'#7'actExit'#7'Caption'#6#4'Exit'#18'DisableIfNoHandler'#9#9
+'OnExecute'#7#14'actExitExecute'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24
+'Save generated files ...'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExp'
+'ortExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7
+'Caption'#6#5'About'#18'DisableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExec'
+'ute'#0#0#7'TAction'#9'actSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfN'
+'oHandler'#9#9'OnExecute'#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportU'
+'pdate'#0#0#7'TAction'#13'actEnumCreate'#7'Caption'#6#18'Create Enumeration'
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAct'
+'ion'#15'actUpdateObject'#7'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9
+'OnExecute'#7#22'actUpdateObjectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpd'
+'ate'#0#0#7'TAction'#14'actRefreshView'#7'Caption'#6#14'&Refresh Views'#18'D'
+'isableIfNoHandler'#9#9'OnExecute'#7#21'actRefreshViewExecute'#0#0#7'TAction'
+#10'actNewFile'#7'Caption'#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecut'
+'e'#7#17'actNewFileExecute'#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6
+#20'Create Compound Type'#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actComp'
+'oundCreateExecute'#0#0#7'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create '
+'Interface'#18'DisableIfNoHandler'#9#9'OnExecute'#7#20'actIntfCreateExecute'
+#0#0#7'TAction'#13'actFullExpand'#7'Caption'#6#11'Full expand'#18'DisableIfN'
+'oHandler'#9#9'OnExecute'#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFu'
+'llCollapse'#7'Caption'#6#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExe'
,'cute'#7#22'actFullCollapseExecute'#0#0#7'TAction'#7'actSave'#7'Caption'#6#4
+'Save'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actSaveExecute'#0#0#7'TAct'
+'ion'#9'actDelete'#7'Caption'#6#6'Delete'#18'DisableIfNoHandler'#9#9'OnExecu'
+'te'#7#16'actDeleteExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#0#11
+'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un fichier existant'#6'Filter'#6'3W'
+'DSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.pas'#11'FilterIndex'#2#0#10
+'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'
+'asSyn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlue'
+#18'CommentAttri.Style'#11#6'fsBold'#0#22'StringAttri.Foreground'#7#8'clMaro'
+'on'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'DirectiveAttri.Foreground'#7#7
+'clGreen'#20'DirectiveAttri.Style'#11#6'fsBold'#0#14'NestedComments'#9#4'lef'
+'t'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2'SD'#5'Title'#6#27'Enregistrer '
+'le fichier sous'#10'DefaultExt'#6#5'.WSDL'#6'Filter'#6#25'WDSL files(*.WSDL'
+')|*.WSDL'#11'FilterIndex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEnable'
+'Sizing'#12'ofViewDetail'#0#4'left'#3#242#1#3'top'#3#176#0#0#0#10'TPopupMenu'
+#10'PopupMenu1'#4'left'#3#128#1#3'top'#3#8#1#0#9'TMenuItem'#10'MenuItem28'#6
+'Action'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0#0#9'TMe'
+'nuItem'#10'MenuItem27'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7#22'actF'
+'ullCollapseExecute'#0#0#9'TMenuItem'#10'MenuItem26'#7'Caption'#6#1'-'#0#0#9
+'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'actEn'
+'umCreateExecute'#0#0#9'TMenuItem'#10'MenuItem21'#6'Action'#7#17'actCompound'
+'Create'#7'OnClick'#7#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'MenuI'
+'tem24'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'#0
+#0#9'TMenuItem'#10'MenuItem22'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem'
+'9'#6'Action'#7#15'actUpdateObject'#7'OnClick'#7#22'actUpdateObjectExecute'#0
+#0#9'TMenuItem'#10'MenuItem33'#6'Action'#7#9'actDelete'#7'OnClick'#7#16'actD'
+'eleteExecute'#0#0#0#10'TPopupMenu'#10'PopupMenu2'#4'left'#3#16#2#3'top'#3
+#235#0#0#9'TMenuItem'#10'MenuItem18'#6'Action'#7#14'actRefreshView'#7'OnClic'
+'k'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6
+#1'-'#0#0#9'TMenuItem'#10'MenuItem20'#6'Action'#7#9'actExport'#7'OnClick'#7
+#16'actExportExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6
+#30'Documents WSDL (*.wsdl)|*.wsdl'#7'Enabled'#8#23'ElementAttri.Foreground'
+#7#6'clNavy'#30'AttributeValueAttri.Foreground'#7#8'clPurple'#16'WantBracesP'
+'arsed'#8#4'left'#3#210#1#3'top'#3#252#0#0#0#0
]); ]);

View File

@ -37,6 +37,7 @@ type
actIntfCreate: TAction; actIntfCreate: TAction;
actFullExpand: TAction; actFullExpand: TAction;
actFullCollapse: TAction; actFullCollapse: TAction;
actDelete : TAction;
actSave : TAction; actSave : TAction;
actNewFile: TAction; actNewFile: TAction;
actRefreshView: TAction; actRefreshView: TAction;
@ -68,6 +69,8 @@ type
MenuItem30: TMenuItem; MenuItem30: TMenuItem;
MenuItem31: TMenuItem; MenuItem31: TMenuItem;
MenuItem32: TMenuItem; MenuItem32: TMenuItem;
MenuItem33 : TMenuItem;
MenuItem34 : TMenuItem;
MenuItem5: TMenuItem; MenuItem5: TMenuItem;
MenuItem6: TMenuItem; MenuItem6: TMenuItem;
MenuItem7 : TMenuItem; MenuItem7 : TMenuItem;
@ -103,6 +106,7 @@ type
trvSchema: TTreeView; trvSchema: TTreeView;
procedure actAboutExecute(Sender: TObject); procedure actAboutExecute(Sender: TObject);
procedure actCompoundCreateExecute(Sender: TObject); procedure actCompoundCreateExecute(Sender: TObject);
procedure actDeleteExecute (Sender : TObject );
procedure actEnumCreateExecute(Sender: TObject); procedure actEnumCreateExecute(Sender: TObject);
procedure actExitExecute(Sender: TObject); procedure actExitExecute(Sender: TObject);
procedure actExportExecute(Sender: TObject); procedure actExportExecute(Sender: TObject);
@ -538,6 +542,26 @@ begin
end; end;
end; end;
procedure TfWstTypeLibraryEdit.actDeleteExecute (Sender : TObject );
var
o : TPasElement;
nd : TTreeNode;
begin
nd := trvSchema.Selected;
if Assigned(nd) and Assigned(nd.Data) then begin
o := TPasElement(nd.Data);
if HasEditor(o) then begin
DeleteObject(o,FSymbolTable);
trvSchema.BeginUpdate();
try
FreeAndNil(nd);
finally
trvSchema.EndUpdate();
end;
end;
end;
end;
procedure TfWstTypeLibraryEdit.actEnumCreateExecute(Sender: TObject); procedure TfWstTypeLibraryEdit.actEnumCreateExecute(Sender: TObject);
var var
e : TPasEnumType; e : TPasEnumType;

View File

@ -1092,7 +1092,7 @@ Var
begin begin
GenerateUnitHeader(); GenerateUnitHeader();
GenerateUnitImplementationHeader(); GenerateUnitImplementationHeader();
typeList := SymbolTable.CurrentModule.InterfaceSection.Types; typeList := SymbolTable.CurrentModule.InterfaceSection.Declarations;
c := Pred(typeList.Count); c := Pred(typeList.Count);
for i := 0 to c do begin for i := 0 to c do begin
elt := TPasElement(typeList[i]); elt := TPasElement(typeList[i]);
@ -1363,7 +1363,7 @@ Var
begin begin
GenerateUnitHeader(); GenerateUnitHeader();
GenerateUnitImplementationHeader(); GenerateUnitImplementationHeader();
typeList := SymbolTable.CurrentModule.InterfaceSection.Types; typeList := SymbolTable.CurrentModule.InterfaceSection.Declarations;
c := Pred(typeList.Count); c := Pred(typeList.Count);
for i := 0 to c do begin for i := 0 to c do begin
elt := TPasElement(typeList[i]); elt := TPasElement(typeList[i]);
@ -2131,7 +2131,7 @@ begin
try try
GenerateUnitHeader(); GenerateUnitHeader();
GenerateUnitImplementationHeader(); GenerateUnitImplementationHeader();
typeList := SymbolTable.CurrentModule.InterfaceSection.Types; typeList := SymbolTable.CurrentModule.InterfaceSection.Declarations;
c := Pred(typeList.Count); c := Pred(typeList.Count);
SetCurrentStream(FDecStream); SetCurrentStream(FDecStream);
@ -2200,7 +2200,7 @@ begin
for j := 0 to k do begin for j := 0 to k do begin
clssTyp := objLst[k-j] as TPasClassType; clssTyp := objLst[k-j] as TPasClassType;
if ( gnrClssLst.IndexOf(clssTyp) = -1 ) then begin if ( gnrClssLst.IndexOf(clssTyp) = -1 ) then begin
if ( FSymbolTable.CurrentModule.InterfaceSection.Types.IndexOf(clssTyp) <> -1 ) then begin if ( FSymbolTable.CurrentModule.InterfaceSection.Declarations.IndexOf(clssTyp) <> -1 ) then begin
GenerateClass(clssTyp); GenerateClass(clssTyp);
gnrClssLst.Add(clssTyp); gnrClssLst.Add(clssTyp);
end; end;

View File

@ -16,11 +16,9 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
} }
{$INCLUDE wst_global.inc}
unit metadata_generator; unit metadata_generator;
{$mode objfpc}{$H+}
interface interface
uses uses

View File

@ -218,6 +218,9 @@ begin
splTyp := AContainer.FindElementInModule(SIMPLE_TYPES[i][0],ADest) as TPasNativeSimpleType; splTyp := AContainer.FindElementInModule(SIMPLE_TYPES[i][0],ADest) as TPasNativeSimpleType;
if not IsStrEmpty(SIMPLE_TYPES[i][2]) then begin if not IsStrEmpty(SIMPLE_TYPES[i][2]) then begin
AContainer.RegisterExternalAlias(splTyp,SIMPLE_TYPES[i][2]); AContainer.RegisterExternalAlias(splTyp,SIMPLE_TYPES[i][2]);
if ( splTyp.BoxedType <> nil ) then begin
AContainer.RegisterExternalAlias(splTyp.BoxedType,SIMPLE_TYPES[i][2]);
end;
end; end;
end; end;
end; end;
@ -279,10 +282,10 @@ begin
(AContainer.FindElementInModule('TComplexFloatDoubleContentRemotable',Result) as TPasClassType).AncestorType := loc_TBaseComplexSimpleContentRemotable; (AContainer.FindElementInModule('TComplexFloatDoubleContentRemotable',Result) as TPasClassType).AncestorType := loc_TBaseComplexSimpleContentRemotable;
AddClassDef(Result,'TBaseComplexRemotable','TAbstractComplexRemotable',TPasNativeClassType); AddClassDef(Result,'TBaseComplexRemotable','TAbstractComplexRemotable',TPasNativeClassType);
AddClassDef(Result,'THeaderBlock','TBaseComplexRemotable'); AddClassDef(Result,'THeaderBlock','TBaseComplexRemotable',TPasNativeClassType);
AddClassDef(Result,'TBaseArrayRemotable','TAbstractComplexRemotable'); AddClassDef(Result,'TBaseArrayRemotable','TAbstractComplexRemotable',TPasNativeClassType);
AddClassDef(Result,'TBaseObjectArrayRemotable','TBaseArrayRemotable'); AddClassDef(Result,'TBaseObjectArrayRemotable','TBaseArrayRemotable',TPasNativeClassType);
AddClassDef(Result,'TBaseSimpleTypeArrayRemotable','TBaseArrayRemotable'); AddClassDef(Result,'TBaseSimpleTypeArrayRemotable','TBaseArrayRemotable',TPasNativeClassType);
AddClassDef(Result,'TArrayOfStringRemotable','TBaseSimpleTypeArrayRemotable'); AddClassDef(Result,'TArrayOfStringRemotable','TBaseSimpleTypeArrayRemotable');
AddClassDef(Result,'TArrayOfBooleanRemotable','TBaseSimpleTypeArrayRemotable'); AddClassDef(Result,'TArrayOfBooleanRemotable','TBaseSimpleTypeArrayRemotable');
AddClassDef(Result,'TArrayOfInt8URemotable','TBaseSimpleTypeArrayRemotable'); AddClassDef(Result,'TArrayOfInt8URemotable','TBaseSimpleTypeArrayRemotable');
@ -439,8 +442,8 @@ function TwstPasTreeContainer.CreateElement(
ASourceLinenumber : Integer ASourceLinenumber : Integer
) : TPasElement; ) : TPasElement;
begin begin
//WriteLn('TwstPasTreeContainer.CreateElement(',AName,')');
Result := AClass.Create(AName,AParent); Result := AClass.Create(AName,AParent);
RegisterExternalAlias(Result,AName);
Result.Visibility := AVisibility; Result.Visibility := AVisibility;
Result.SourceFilename := ASourceFilename; Result.SourceFilename := ASourceFilename;
Result.SourceLinenumber := ASourceLinenumber; Result.SourceLinenumber := ASourceLinenumber;

View File

@ -12,7 +12,7 @@
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value=".\"/> <IconPath Value=".\"/>
<TargetFileExt Value=""/> <TargetFileExt Value=""/>
<ActiveEditorIndexAtStart Value="8"/> <ActiveEditorIndexAtStart Value="1"/>
</General> </General>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
@ -131,8 +131,8 @@
<Filename Value="metadata_generator.pas"/> <Filename Value="metadata_generator.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="metadata_generator"/> <UnitName Value="metadata_generator"/>
<CursorPos X="37" Y="122"/> <CursorPos X="2" Y="19"/>
<TopLine Value="114"/> <TopLine Value="5"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<UsageCount Value="200"/> <UsageCount Value="200"/>
<Loaded Value="True"/> <Loaded Value="True"/>
@ -500,7 +500,12 @@
<UsageCount Value="11"/> <UsageCount Value="11"/>
</Unit62> </Unit62>
</Units> </Units>
<JumpHistory Count="0" HistoryIndex="-1"/> <JumpHistory Count="1" HistoryIndex="0">
<Position1>
<Filename Value="metadata_generator.pas"/>
<Caret Line="122" Column="37" TopLine="114"/>
</Position1>
</JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="5"/>
@ -509,6 +514,7 @@
<Filename Value="ws_helper.exe"/> <Filename Value="ws_helper.exe"/>
</Target> </Target>
<SearchPaths> <SearchPaths>
<IncludeFiles Value="..\"/>
<OtherUnitFiles Value="$(LazarusDir)\fpc\2.1.5\source\packages\fcl-passrc\src\;..\;..\wst_rtti_filter\"/> <OtherUnitFiles Value="$(LazarusDir)\fpc\2.1.5\source\packages\fcl-passrc\src\;..\;..\wst_rtti_filter\"/>
<UnitOutputDirectory Value="obj"/> <UnitOutputDirectory Value="obj"/>
</SearchPaths> </SearchPaths>

View File

@ -178,11 +178,13 @@ const
s_body : WideString = 'body'; s_body : WideString = 'body';
s_complexContent : WideString = 'complexContent'; s_complexContent : WideString = 'complexContent';
s_complexType : WideString = 'complexType'; s_complexType : WideString = 'complexType';
s_customAttributes : WideString = 'customAttributes';
s_document : WideString = 'document'; s_document : WideString = 'document';
s_element : WideString = 'element'; s_element : WideString = 'element';
s_enumeration : WideString = 'enumeration'; s_enumeration : WideString = 'enumeration';
s_extension : WideString = 'extension'; s_extension : WideString = 'extension';
s_guid : WideString = 'GUID'; s_guid : WideString = 'GUID';
s_headerBlock : WideString = 'headerBlock';
s_input : WideString = 'input'; s_input : WideString = 'input';
s_item : WideString = 'item'; s_item : WideString = 'item';
s_location : WideString = 'location'; s_location : WideString = 'location';
@ -2019,6 +2021,37 @@ var
FSymbols.RegisterExternalAlias(Result,ATypeName); FSymbols.RegisterExternalAlias(Result,ATypeName);
end; end;
function IsHeaderBlock() : Boolean;
var
nd : TDOMNode;
tmpCrs : IObjectCursor;
begin
Result := False;
tmpCrs := CreateCursorOn(
CreateChildrenCursor(FTypeNode,cetRttiNode),
ParseFilter(CreateQualifiedNameFilterStr(s_document,FOwner.FWsdlShortNames),TDOMNodeRttiExposer)
);
tmpCrs.Reset();
if tmpCrs.MoveNext() then begin
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
if nd.HasChildNodes() then begin
tmpCrs := CreateCursorOn(
CreateChildrenCursor(nd,cetRttiNode),
ParseFilter(Format('%s=%s',[s_NODE_NAME,QuotedStr(s_customAttributes)]),TDOMNodeRttiExposer)
);
tmpCrs.Reset();
if tmpCrs.MoveNext() then begin
nd := (tmpCrs.GetCurrent() as TDOMNodeRttiExposer).InnerObject;
if nd.HasAttributes() then begin
nd := nd.Attributes.GetNamedItem(s_headerBlock);
if Assigned(nd) then
Result := AnsiSameText('true',Trim(nd.NodeValue));
end;
end;
end;
end;
end;
var var
eltCrs, eltAttCrs : IObjectCursor; eltCrs, eltAttCrs : IObjectCursor;
internalName : string; internalName : string;
@ -2054,8 +2087,12 @@ begin
if ( FDerivationMode in [dmExtension, dmRestriction] ) then begin if ( FDerivationMode in [dmExtension, dmRestriction] ) then begin
classDef.AncestorType := FBaseType; classDef.AncestorType := FBaseType;
end; end;
if ( classDef.AncestorType = nil ) then if ( classDef.AncestorType = nil ) then begin
classDef.AncestorType := FSymbols.FindElementInModule('TBaseComplexRemotable',FSymbols.FindModule('base_service_intf') as TPasModule) as TPasType; if IsHeaderBlock() then
classDef.AncestorType := FSymbols.FindElementInModule('THeaderBlock',FSymbols.FindModule('base_service_intf') as TPasModule) as TPasType
else
classDef.AncestorType := FSymbols.FindElementInModule('TBaseComplexRemotable',FSymbols.FindModule('base_service_intf') as TPasModule) as TPasType;
end;
classDef.AncestorType.AddRef(); classDef.AncestorType.AddRef();
if Assigned(eltCrs) or Assigned(eltAttCrs) then begin if Assigned(eltCrs) or Assigned(eltAttCrs) then begin
isArrayDef := False; isArrayDef := False;

View File

@ -1,15 +1,10 @@
{$IFNDEF FPC} {$IFNDEF FPC}
const FPC_RELEASE = 0; const FPC_RELEASE = 0;
const FPC_VERSION = 0; const FPC_VERSION = 0;
{$ENDIF} {$ENDIF}
{$IFDEF FPC} {$IFDEF FPC}
{$mode objfpc}{$H+}
{$DEFINE HAS_QWORD}
{$DEFINE USE_INLINE}
{$IF( (FPC_VERSION = 2) and (FPC_RELEASE > 0) ) } {$IF( (FPC_VERSION = 2) and (FPC_RELEASE > 0) ) }
{$define FPC_211} {$define FPC_211}
{$IFEND} {$IFEND}
{$ELSE}
{$UNDEF HAS_QWORD}
{$UNDEF USE_INLINE}
{$ENDIF} {$ENDIF}

View File

@ -5,4 +5,5 @@
PtrInt = Cardinal; PtrInt = Cardinal;
PByteArray = ^ByteArray; PByteArray = ^ByteArray;
ByteArray = array[0..$effffff] of Byte; ByteArray = array[0..$effffff] of Byte;
{$ENDIF} PtrUInt = Cardinal;
{$ENDIF}

View File

@ -0,0 +1,103 @@
unit wst_delphi_xml;
interface
uses
SysUtils, Classes, xmldom, XMLIntf;
const
LineEnding = sLineBreak;
type
TDOMNode = IDOMNode;
TDOMNodeList = IDOMNodeList;
TXMLDocument = IDOMDocument;
TDOMElement = IDOMElement;
function FindNode(ANode : TDOMNode; const ANodeName : string):TDOMNode;
function GetNodeItemsCount(const ANode : TDOMNode): Integer;
function GetNodeListCount(ANodeList : TDOMNodeList) : Integer ;
procedure ReleaseDomNode(ADomNode : IInterface);overload;
procedure ReleaseDomNode(var ADomNode : TXMLDocument);overload;
function CreateDoc() : TXMLDocument ;
procedure WriteXMLFile(ADoc : TXMLDocument; AStream : TStream);
procedure ReadXMLFile(ADoc : TXMLDocument; AStream : TStream);
function NodeToBuffer(ANode : TDOMNode):string ;
implementation
uses XmlDoc;
function FindNode(ANode : TDOMNode; const ANodeName : string):TDOMNode;
var
i, c : Integer;
lst : TDOMNodeList;
begin
Result := nil;
if ANode.hasChildNodes then begin
lst := ANode.childNodes;
c := lst.length;
for i := 0 to Pred(c) do begin
if ( ANodeName = lst.item[i].nodeName ) then begin
Result := lst[i];
Break;
end;
end;
end;
end;
procedure WriteXMLFile(ADoc : TXMLDocument; AStream : TStream);
begin
(ADoc as IDOMPersist).saveToStream(AStream);
end;
procedure ReadXMLFile(ADoc : TXMLDocument; AStream : TStream);
begin
(ADoc as IDOMPersist).loadFromStream(AStream);
end;
function GetNodeItemsCount(const ANode : TDOMNode): Integer;
begin
if ANode.HasChildNodes then begin
Result := ANode.childNodes.length;
end else begin
Result := 0;
end;
end;
function GetNodeListCount(ANodeList : TDOMNodeList) : Integer ;
begin
Result := ANodeList.length;
end;
procedure ReleaseDomNode(ADomNode : IInterface);
begin
end;
procedure ReleaseDomNode(var ADomNode : TXMLDocument);
begin
end;
function CreateDoc() : TXMLDocument ;
var
locDoc : IXMLDocument;
begin
locDoc := XmlDoc.TXMLDocument.Create(nil);
locDoc.Active := True;
Result := locDoc.DOMDocument;
end;
function NodeToBuffer(ANode : TDOMNode):string ;
var
locStream : TStringStream;
locNodeEx : IDOMNodeEx;
begin
if Supports(ANode,IDOMNodeEx,locNodeEx) then begin
Result := locNodeEx.xml;
end else begin
raise Exception.Create('This Xml library do not provide "IDOMNodeEx" support.');
end;
end;
end.

80
wst/trunk/wst_fpc_xml.pas Normal file
View File

@ -0,0 +1,80 @@
{$INCLUDE wst_global.inc}
unit wst_fpc_xml;
interface
uses
Classes, SysUtils, DOM;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
function GetNodeItemsCount(const ANode : TDOMNode): Integer;
function GetNodeListCount(ANodeList : TDOMNodeList) : Integer ;{$IFDEF USE_INLINE}inline;{$ENDIF}
procedure ReleaseDomNode(ADomNode : TDOMNode);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
procedure ReleaseDomNode(ADomNode : TDOMNodeList);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
function CreateDoc() : TXMLDocument ;{$IFDEF USE_INLINE}inline;{$ENDIF}
function FindNode(ANode : TDOMNode;const ANodeName : string) : TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
function NodeToBuffer(ANode : TDOMNode):string ;
implementation
uses XMLWrite;
function GetNodeItemsCount(const ANode : TDOMNode): Integer;
var
chdLst : TDOMNodeList;
begin
if ANode.HasChildNodes then begin
chdLst := ANode.ChildNodes;
try
Result := chdLst.Count;
finally
chdLst.Release();
end;
end else begin
Result := 0;
end;
end;
function GetNodeListCount(ANodeList : TDOMNodeList) : Integer ;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin
Result := ANodeList.Count;
end;
procedure ReleaseDomNode(ADomNode : TDOMNode);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin
ADomNode.Free();
end;
procedure ReleaseDomNode(ADomNode : TDOMNodeList);overload;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin
ADomNode.Release();
end;
function CreateDoc() : TXMLDocument ;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin
Result := TXMLDocument.Create();
Result.Encoding := 'UTF-8';
end;
function FindNode(ANode : TDOMNode;const ANodeName : string) : TDOMNode;{$IFDEF USE_INLINE}inline;{$ENDIF}
begin
Result := ANode.FindNode(ANodeName);
end;
function NodeToBuffer(ANode : TDOMNode):string ;
var
locStream : TStringStream;
begin
locStream := TStringStream.Create('');
try
WriteXML(ANode,locStream);
Result := locStream.DataString;
finally
locStream.Free();
end;
end;
end.

8
wst/trunk/wst_global.inc Normal file
View File

@ -0,0 +1,8 @@
{$IFDEF FPC}
{$mode objfpc}{$H+}
{$DEFINE HAS_QWORD}
{$DEFINE USE_INLINE}
{$ELSE}
{$UNDEF HAS_QWORD}
{$UNDEF USE_INLINE}
{$ENDIF}

View File

@ -1,3 +1,4 @@
{$INCLUDE wst_global.inc}
unit wst_resources_imp; unit wst_resources_imp;
interface interface
@ -6,6 +7,7 @@ uses
Classes, SysUtils; Classes, SysUtils;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type type

View File

@ -10,15 +10,17 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit cursor_intf; unit cursor_intf;
{$mode objfpc}{$H+}
interface interface
uses uses
Classes, SysUtils; Classes, SysUtils;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type type
ECursorException = class(Exception) ECursorException = class(Exception)

View File

@ -10,18 +10,18 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit dom_cursors; unit dom_cursors;
{$mode objfpc}{$H+}
{$IF (FPC_VERSION = 2) and (FPC_RELEASE > 0)}
{$define FPC_211}
{$ENDIF}
interface interface
uses uses
Classes, SysUtils, Classes, SysUtils,
cursor_intf, DOM; cursor_intf, DOM;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
const const
s_NODE_NAME = 'NodeName'; s_NODE_NAME = 'NodeName';

View File

@ -10,16 +10,18 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit rtti_filters; unit rtti_filters;
{$mode objfpc}{$H+}
interface interface
uses uses
Classes, SysUtils, Contnrs, TypInfo, Classes, SysUtils, Contnrs, TypInfo,
cursor_intf; cursor_intf;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type type
ERttiFilterException = class(Exception) ERttiFilterException = class(Exception)
@ -326,9 +328,9 @@ begin
propInfo := GetPropInfo(AFltrCrtr.TargetClass,propName); propInfo := GetPropInfo(AFltrCrtr.TargetClass,propName);
if ( propInfo = nil ) then if ( propInfo = nil ) then
raise ERttiFilterException.CreateFmt('Invalid property : "%s"',[propName]); raise ERttiFilterException.CreateFmt('Invalid property : "%s"',[propName]);
if ( propInfo^.PropType^.Kind in [tkSString,tkLString,tkAString,tkWString] ) then if ( propInfo^.PropType^.Kind in [{$IFDEF FPC}tkSString,tkAString,{$ENDIF}tkLString,tkWString] ) then
Handle_String() Handle_String()
else if ( propInfo^.PropType^.Kind in [tkInteger,tkInt64,tkQWord] ) then else if ( propInfo^.PropType^.Kind in [tkInteger,tkInt64{$IFDEF FPC},tkQWord{$ENDIF}] ) then
Handle_Integer() Handle_Integer()
else else
raise ERttiFilterException.CreateFmt('Type not handled : "%s"',[GetEnumName(TypeInfo(TTypeKind),Ord(propInfo^.PropType^.Kind))]); raise ERttiFilterException.CreateFmt('Type not handled : "%s"',[GetEnumName(TypeInfo(TTypeKind),Ord(propInfo^.PropType^.Kind))]);
@ -421,7 +423,7 @@ constructor TRttiExpIntegerNodeItem.Create(
); );
begin begin
Assert(Assigned(APropInfo)); Assert(Assigned(APropInfo));
if not ( APropInfo^.PropType^.Kind in [tkInteger,tkInt64,tkQWord] ) then if not ( APropInfo^.PropType^.Kind in [tkInteger,tkInt64{$IFDEF FPC},tkQWord{$ENDIF}] ) then
raise ERttiFilterException.CreateFmt('Invalid property data type. "%s" excpeted.',['Integer']); raise ERttiFilterException.CreateFmt('Invalid property data type. "%s" excpeted.',['Integer']);
inherited Create(APropInfo,AOperation); inherited Create(APropInfo,AOperation);
FComparedValue := AComparedValue; FComparedValue := AComparedValue;
@ -626,7 +628,7 @@ constructor TRttiExpAnsiStringNodeItem.Create(
); );
begin begin
Assert(Assigned(APropInfo)); Assert(Assigned(APropInfo));
if not ( APropInfo^.PropType^.Kind in [tkSString,tkLString,tkAString] ) then if not ( APropInfo^.PropType^.Kind in [{$IFDEF FPC}tkSString,tkAString,{$ENDIF}tkLString] ) then
raise ERttiFilterException.CreateFmt('Invalid property data type. "%s" excpeted.',['AnsiString']); raise ERttiFilterException.CreateFmt('Invalid property data type. "%s" excpeted.',['AnsiString']);
inherited Create(APropInfo,AOperation); inherited Create(APropInfo,AOperation);
FComparedValue := AComparedValue; FComparedValue := AComparedValue;

View File

@ -1,13 +1,15 @@
{$INCLUDE wst_global.inc}
unit std_cursors; unit std_cursors;
{$mode objfpc}{$H+}
interface interface
uses uses
Classes, SysUtils, Contnrs, Classes, SysUtils, Contnrs,
cursor_intf; cursor_intf;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type type
{ TObjectListCursor } { TObjectListCursor }

View File

@ -1,13 +1,15 @@
{$INCLUDE wst_global.inc}
unit test_std_cursors; unit test_std_cursors;
{$mode objfpc}{$H+}
interface interface
uses uses
Classes, SysUtils, Contnrs, Classes, SysUtils, Contnrs,
fpcunit, testutils, testregistry, fpcunit, testutils, testregistry,
cursor_intf, std_cursors, rtti_filters; cursor_intf, std_cursors, rtti_filters;
{$INCLUDE wst.inc}
{$INCLUDE wst_delphi.inc}
type type

View File

@ -10,12 +10,14 @@
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
} }
{$INCLUDE wst_global.inc}
unit xmlrpc_formatter; unit xmlrpc_formatter;
interface interface
uses uses
Classes, SysUtils, TypInfo, DOM, Classes, SysUtils, TypInfo,
{$IFNDEF FPC}xmldom, wst_delphi_xml{$ELSE}DOM{$ENDIF},
base_service_intf, service_intf, imp_utils, base_xmlrpc_formatter; base_service_intf, service_intf, imp_utils, base_xmlrpc_formatter;
{$INCLUDE wst.inc} {$INCLUDE wst.inc}
@ -67,7 +69,7 @@ type
{$M-} {$M-}
implementation implementation
{$IFDEF FPC}uses wst_fpc_xml;{$ENDIF}
{ TXmlRpcFormatter } { TXmlRpcFormatter }
@ -134,19 +136,19 @@ begin
if not SameText(sMETHOD_RESPONSE,callNode.NodeName) then if not SameText(sMETHOD_RESPONSE,callNode.NodeName) then
Error('XML root node must be "%s".',[sMETHOD_RESPONSE]); Error('XML root node must be "%s".',[sMETHOD_RESPONSE]);
prmsNode := callNode.FindNode(sPARAMS); prmsNode := FindNode(callNode,sPARAMS);
if ( prmsNode <> nil ) then begin if ( prmsNode <> nil ) then begin
PushStackParams(prmsNode); PushStackParams(prmsNode);
end else begin end else begin
faultNode := callNode.FindNode(sFAULT); faultNode := FindNode(callNode,sFAULT);
if ( faultNode = nil ) then begin if ( faultNode = nil ) then begin
raise EServiceException.CreateFmt('Invalid XmlRPC response message, "%s" or "%s" are not present.',[sPARAMS,sFAULT]); raise EServiceException.CreateFmt('Invalid XmlRPC response message, "%s" or "%s" are not present.',[sPARAMS,sFAULT]);
end; end;
tmpNode := faultNode.FindNode(sVALUE); tmpNode := FindNode(faultNode,sVALUE);
if ( tmpNode = nil ) then begin if ( tmpNode = nil ) then begin
raise EServiceException.CreateFmt('Invalid XmlRPC fault response message, "%s" is not present.',[sVALUE]); raise EServiceException.CreateFmt('Invalid XmlRPC fault response message, "%s" is not present.',[sVALUE]);
end; end;
tmpNode := tmpNode.FindNode(XmlRpcDataTypeNames[xdtStruct]); tmpNode := FindNode(tmpNode,XmlRpcDataTypeNames[xdtStruct]);
if ( tmpNode = nil ) then begin if ( tmpNode = nil ) then begin
raise EServiceException.CreateFmt('Invalid XmlRPC fault response message, "%s" is not present.',[XmlRpcDataTypeNames[xdtStruct]]); raise EServiceException.CreateFmt('Invalid XmlRPC fault response message, "%s" is not present.',[XmlRpcDataTypeNames[xdtStruct]]);
end; end;