You've already forked lazarus-ccr
metadata service : regenerate from wsdl file
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1310 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -1,252 +1,250 @@
|
||||
{
|
||||
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.
|
||||
This unit has been produced by ws_helper.
|
||||
Input unit name : "metadata_service".
|
||||
This unit name : "metadata_service".
|
||||
Date : "23/08/2010 16:10:07".
|
||||
}
|
||||
{$INCLUDE wst_global.inc}
|
||||
unit metadata_service;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode objfpc} {$H+}
|
||||
{$ENDIF}
|
||||
{$IFNDEF FPC}
|
||||
{$DEFINE WST_RECORD_RTTI}
|
||||
{$ENDIF}
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
base_service_intf, metadata_repository;
|
||||
uses
|
||||
SysUtils, Classes, TypInfo, base_service_intf, service_intf,
|
||||
metadata_repository;
|
||||
|
||||
const
|
||||
sNAME_SPACE = 'metadata_service';
|
||||
sUNIT_NAME = 'metadata_service';
|
||||
|
||||
type
|
||||
|
||||
TWSTMtdOperationParam = class;
|
||||
TWSTMtdServiceOperation = class;
|
||||
TWSTMtdService = class;
|
||||
TWSTMtdRepository = class;
|
||||
TWSTMtdOperationParamArray = class;
|
||||
TWSTMtdServiceOperationArray = class;
|
||||
TWSTMtdServiceArray = class;
|
||||
|
||||
TWSTMtdOperationParam = class(TBaseComplexRemotable)
|
||||
private
|
||||
FModifier: TOperationParamFlag;
|
||||
FName: string;
|
||||
FTypeName: string;
|
||||
FName : String;
|
||||
FTypeName : String;
|
||||
FModifier : TOperationParamFlag;
|
||||
published
|
||||
property Name : string read FName write FName;
|
||||
property TypeName : string read FTypeName write FTypeName;
|
||||
property Name : String read FName write FName;
|
||||
property TypeName : String read FTypeName write FTypeName;
|
||||
property Modifier : TOperationParamFlag read FModifier write FModifier;
|
||||
end;
|
||||
|
||||
TWSTMtdOperationParamArray = class(TBaseObjectArrayRemotable)
|
||||
protected
|
||||
function GetParam(AIndex: Integer): TWSTMtdOperationParam;
|
||||
public
|
||||
class function GetItemClass():TBaseRemotableClass;override;
|
||||
property Item[AIndex:Integer] : TWSTMtdOperationParam read GetParam;default;
|
||||
end;
|
||||
|
||||
TWSTMtdServiceOperation = class(TBaseComplexRemotable)
|
||||
private
|
||||
FName: string;
|
||||
FParams: TWSTMtdOperationParamArray;
|
||||
function GetParams: TWSTMtdOperationParamArray;
|
||||
procedure SetParams(const AValue: TWSTMtdOperationParamArray);
|
||||
FName : String;
|
||||
FParams : TWSTMtdOperationParamArray;
|
||||
public
|
||||
constructor Create();override;
|
||||
destructor Destroy();override;
|
||||
procedure FreeObjectProperties();override;
|
||||
published
|
||||
property Name : string read FName write FName;
|
||||
property Params : TWSTMtdOperationParamArray read GetParams write SetParams;
|
||||
end;
|
||||
|
||||
TWSTMtdServiceOperationArray = class(TBaseObjectArrayRemotable)
|
||||
private
|
||||
function GetOperation(AIndex: Integer): TWSTMtdServiceOperation;
|
||||
public
|
||||
class function GetItemClass():TBaseRemotableClass;override;
|
||||
property Item[AIndex:Integer] : TWSTMtdServiceOperation read GetOperation;default;
|
||||
property Name : String read FName write FName;
|
||||
property Params : TWSTMtdOperationParamArray read FParams write FParams;
|
||||
end;
|
||||
|
||||
TWSTMtdService = class(TBaseComplexRemotable)
|
||||
private
|
||||
FName: string;
|
||||
FOperations: TWSTMtdServiceOperationArray;
|
||||
function GetOperations: TWSTMtdServiceOperationArray;
|
||||
procedure SetOperations(const AValue: TWSTMtdServiceOperationArray);
|
||||
FName : String;
|
||||
FOperations : TWSTMtdServiceOperationArray;
|
||||
public
|
||||
constructor Create();override;
|
||||
destructor Destroy();override;
|
||||
procedure FreeObjectProperties();override;
|
||||
published
|
||||
property Name : string read FName write FName;
|
||||
property Operations : TWSTMtdServiceOperationArray read GetOperations write SetOperations;
|
||||
property Name : String read FName write FName;
|
||||
property Operations : TWSTMtdServiceOperationArray read FOperations write FOperations;
|
||||
end;
|
||||
|
||||
TWSTMtdRepository = class(TBaseComplexRemotable)
|
||||
private
|
||||
FName : String;
|
||||
FNameSpace : String;
|
||||
FServices : TWSTMtdServiceArray;
|
||||
public
|
||||
constructor Create();override;
|
||||
procedure FreeObjectProperties();override;
|
||||
published
|
||||
property Name : String read FName write FName;
|
||||
property NameSpace : String read FNameSpace write FNameSpace;
|
||||
property Services : TWSTMtdServiceArray read FServices write FServices;
|
||||
end;
|
||||
|
||||
TWSTMtdOperationParamArray = class(TBaseObjectArrayRemotable)
|
||||
private
|
||||
function GetItem(AIndex: Integer): TWSTMtdOperationParam;
|
||||
public
|
||||
class function GetItemClass():TBaseRemotableClass;override;
|
||||
property Item[AIndex:Integer] : TWSTMtdOperationParam Read GetItem;Default;
|
||||
end;
|
||||
|
||||
TWSTMtdServiceOperationArray = class(TBaseObjectArrayRemotable)
|
||||
private
|
||||
function GetItem(AIndex: Integer): TWSTMtdServiceOperation;
|
||||
public
|
||||
class function GetItemClass():TBaseRemotableClass;override;
|
||||
property Item[AIndex:Integer] : TWSTMtdServiceOperation Read GetItem;Default;
|
||||
end;
|
||||
|
||||
TWSTMtdServiceArray = class(TBaseObjectArrayRemotable)
|
||||
protected
|
||||
function GetService(AIndex: Integer): TWSTMtdService;
|
||||
private
|
||||
function GetItem(AIndex: Integer): TWSTMtdService;
|
||||
public
|
||||
class function GetItemClass():TBaseRemotableClass;override;
|
||||
Property Item[AIndex:Integer] : TWSTMtdService Read GetService;Default;
|
||||
property Item[AIndex:Integer] : TWSTMtdService Read GetItem;Default;
|
||||
end;
|
||||
|
||||
TWSTMtdRepository = class(TBaseComplexRemotable)
|
||||
private
|
||||
FName: string;
|
||||
FNameSpace: string;
|
||||
FServices : TWSTMtdServiceArray;
|
||||
function GetServices: TWSTMtdServiceArray;
|
||||
procedure SetServices(const AValue: TWSTMtdServiceArray);
|
||||
public
|
||||
constructor Create();override;
|
||||
destructor Destroy();override;
|
||||
published
|
||||
property Name : string read FName write FName;
|
||||
property NameSpace : string read FNameSpace write FNameSpace;
|
||||
property Services : TWSTMtdServiceArray read GetServices write SetServices;
|
||||
end;
|
||||
|
||||
{The unique metadata public service}
|
||||
IWSTMetadataService = interface
|
||||
|
||||
IWSTMetadataService = interface(IInvokable)
|
||||
['{804A3825-ADA5-4499-87BF-CF5491BFD674}']
|
||||
function GetRepositoryList():TArrayOfStringRemotable;
|
||||
function GetRepositoryInfo(const AName : string):TWSTMtdRepository;
|
||||
function GetRepositoryInfo(
|
||||
const AName : String
|
||||
):TWSTMtdRepository;
|
||||
end;
|
||||
|
||||
procedure Register_metadata_service_NameSpace();
|
||||
|
||||
implementation
|
||||
|
||||
procedure Register_metadata_service_NameSpace();
|
||||
begin
|
||||
GetModuleMetadataMngr().SetRepositoryNameSpace('metadata_service',sWST_BASE_NS);
|
||||
end;
|
||||
procedure Register_metadata_service_ServiceMetadata();
|
||||
|
||||
procedure Register_metadata_service_Types();
|
||||
var
|
||||
r : TTypeRegistry;
|
||||
begin
|
||||
r := GetTypeRegistry();
|
||||
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TOperationParamFlag),'TOperationParamFlag');
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TWSTMtdOperationParam),'TWSTMtdOperationParam');
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TWSTMtdOperationParamArray),'TWSTMtdOperationParamArray');
|
||||
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TWSTMtdOperationParam),'TWSTMtdOperationParam');
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TWSTMtdOperationParamArray),'TWSTMtdOperationParamArray');
|
||||
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TWSTMtdServiceOperation),'TWSTMtdServiceOperation');
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TWSTMtdServiceOperationArray),'TWSTMtdServiceOperationArray');
|
||||
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TWSTMtdService),'TWSTMtdService');
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TWSTMtdServiceArray),'TWSTMtdServiceArray');
|
||||
|
||||
r.Register(sWST_BASE_NS,TypeInfo(TWSTMtdRepository),'TWSTMtdRepository');
|
||||
end;
|
||||
|
||||
{ TWSTMtdServiceArray }
|
||||
|
||||
function TWSTMtdServiceArray.GetService(AIndex: Integer): TWSTMtdService;
|
||||
begin
|
||||
Result := inherited Item[AIndex] as TWSTMtdService;
|
||||
end;
|
||||
|
||||
class function TWSTMtdServiceArray.GetItemClass(): TBaseRemotableClass;
|
||||
begin
|
||||
Result := TWSTMtdService;
|
||||
end;
|
||||
|
||||
{ TWSTMtdRepository }
|
||||
|
||||
function TWSTMtdRepository.GetServices: TWSTMtdServiceArray;
|
||||
begin
|
||||
Result := FServices;
|
||||
end;
|
||||
|
||||
procedure TWSTMtdRepository.SetServices(const AValue: TWSTMtdServiceArray);
|
||||
begin
|
||||
FServices.Assign(AValue);
|
||||
end;
|
||||
|
||||
constructor TWSTMtdRepository.Create();
|
||||
begin
|
||||
inherited Create();
|
||||
FServices := TWSTMtdServiceArray.Create();
|
||||
end;
|
||||
|
||||
destructor TWSTMtdRepository.Destroy();
|
||||
begin
|
||||
FreeAndNil(FServices);
|
||||
inherited Destroy();
|
||||
end;
|
||||
|
||||
{ TWSTMtdOperationParamArray }
|
||||
|
||||
function TWSTMtdOperationParamArray.GetParam(AIndex: Integer): TWSTMtdOperationParam;
|
||||
begin
|
||||
Result := inherited Item[AIndex] as TWSTMtdOperationParam;
|
||||
end;
|
||||
|
||||
class function TWSTMtdOperationParamArray.GetItemClass(): TBaseRemotableClass;
|
||||
begin
|
||||
Result := TWSTMtdOperationParam;
|
||||
end;
|
||||
Implementation
|
||||
uses
|
||||
record_rtti, wst_types;
|
||||
|
||||
{ TWSTMtdServiceOperation }
|
||||
|
||||
function TWSTMtdServiceOperation.GetParams: TWSTMtdOperationParamArray;
|
||||
begin
|
||||
Result := FParams;
|
||||
end;
|
||||
|
||||
procedure TWSTMtdServiceOperation.SetParams(const AValue: TWSTMtdOperationParamArray);
|
||||
begin
|
||||
FParams.Assign(AValue);
|
||||
end;
|
||||
|
||||
constructor TWSTMtdServiceOperation.Create();
|
||||
begin
|
||||
inherited Create();
|
||||
FParams := TWSTMtdOperationParamArray.Create();
|
||||
end;
|
||||
|
||||
destructor TWSTMtdServiceOperation.Destroy();
|
||||
procedure TWSTMtdServiceOperation.FreeObjectProperties();
|
||||
begin
|
||||
FreeAndNil(FParams);
|
||||
inherited Destroy();
|
||||
end;
|
||||
|
||||
{ TWSTMtdServiceOperationArray }
|
||||
|
||||
function TWSTMtdServiceOperationArray.GetOperation(AIndex: Integer): TWSTMtdServiceOperation;
|
||||
begin
|
||||
Result := inherited Item[AIndex] as TWSTMtdServiceOperation;
|
||||
end;
|
||||
|
||||
class function TWSTMtdServiceOperationArray.GetItemClass(): TBaseRemotableClass;
|
||||
begin
|
||||
Result := TWSTMtdServiceOperation;
|
||||
if Assigned(FParams) then
|
||||
FreeAndNil(FParams);
|
||||
inherited FreeObjectProperties();
|
||||
end;
|
||||
|
||||
{ TWSTMtdService }
|
||||
|
||||
function TWSTMtdService.GetOperations: TWSTMtdServiceOperationArray;
|
||||
begin
|
||||
Result := FOperations;
|
||||
end;
|
||||
|
||||
procedure TWSTMtdService.SetOperations(const AValue: TWSTMtdServiceOperationArray);
|
||||
begin
|
||||
FOperations.Assign(AValue);
|
||||
end;
|
||||
|
||||
constructor TWSTMtdService.Create();
|
||||
begin
|
||||
FOperations := TWSTMtdServiceOperationArray.Create();
|
||||
inherited Create();
|
||||
FOperations := TWSTMtdServiceOperationArray.Create();
|
||||
end;
|
||||
|
||||
destructor TWSTMtdService.Destroy();
|
||||
procedure TWSTMtdService.FreeObjectProperties();
|
||||
begin
|
||||
FreeAndNil(FOperations);
|
||||
inherited Destroy();
|
||||
if Assigned(FOperations) then
|
||||
FreeAndNil(FOperations);
|
||||
inherited FreeObjectProperties();
|
||||
end;
|
||||
|
||||
{ TWSTMtdRepository }
|
||||
|
||||
constructor TWSTMtdRepository.Create();
|
||||
begin
|
||||
inherited Create();
|
||||
FServices := TWSTMtdServiceArray.Create();
|
||||
end;
|
||||
|
||||
procedure TWSTMtdRepository.FreeObjectProperties();
|
||||
begin
|
||||
if Assigned(FServices) then
|
||||
FreeAndNil(FServices);
|
||||
inherited FreeObjectProperties();
|
||||
end;
|
||||
|
||||
{ TWSTMtdOperationParamArray }
|
||||
|
||||
function TWSTMtdOperationParamArray.GetItem(AIndex: Integer): TWSTMtdOperationParam;
|
||||
begin
|
||||
Result := TWSTMtdOperationParam(Inherited GetItem(AIndex));
|
||||
end;
|
||||
|
||||
class function TWSTMtdOperationParamArray.GetItemClass(): TBaseRemotableClass;
|
||||
begin
|
||||
Result:= TWSTMtdOperationParam;
|
||||
end;
|
||||
|
||||
{ TWSTMtdServiceOperationArray }
|
||||
|
||||
function TWSTMtdServiceOperationArray.GetItem(AIndex: Integer): TWSTMtdServiceOperation;
|
||||
begin
|
||||
Result := TWSTMtdServiceOperation(Inherited GetItem(AIndex));
|
||||
end;
|
||||
|
||||
class function TWSTMtdServiceOperationArray.GetItemClass(): TBaseRemotableClass;
|
||||
begin
|
||||
Result:= TWSTMtdServiceOperation;
|
||||
end;
|
||||
|
||||
{ TWSTMtdServiceArray }
|
||||
|
||||
function TWSTMtdServiceArray.GetItem(AIndex: Integer): TWSTMtdService;
|
||||
begin
|
||||
Result := TWSTMtdService(Inherited GetItem(AIndex));
|
||||
end;
|
||||
|
||||
class function TWSTMtdServiceArray.GetItemClass(): TBaseRemotableClass;
|
||||
begin
|
||||
Result:= TWSTMtdService;
|
||||
end;
|
||||
|
||||
|
||||
procedure Register_metadata_service_ServiceMetadata();
|
||||
var
|
||||
mm : IModuleMetadataMngr;
|
||||
begin
|
||||
mm := GetModuleMetadataMngr();
|
||||
mm.SetRepositoryNameSpace(sUNIT_NAME, sNAME_SPACE);
|
||||
mm.SetServiceCustomData(
|
||||
sUNIT_NAME,
|
||||
'IWSTMetadataService',
|
||||
'FORMAT_Style',
|
||||
'rpc'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'IWSTMetadataService',
|
||||
'GetRepositoryList',
|
||||
'_E_N_',
|
||||
'GetRepositoryList'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'IWSTMetadataService',
|
||||
'GetRepositoryInfo',
|
||||
'_E_N_',
|
||||
'GetRepositoryInfo'
|
||||
);
|
||||
end;
|
||||
|
||||
|
||||
var
|
||||
typeRegistryInstance : TTypeRegistry = nil;
|
||||
initialization
|
||||
Register_metadata_service_Types();
|
||||
|
||||
end.
|
||||
typeRegistryInstance := GetTypeRegistry();
|
||||
|
||||
typeRegistryInstance.Register(sNAME_SPACE,TypeInfo(TWSTMtdOperationParam),'TWSTMtdOperationParam');
|
||||
typeRegistryInstance.Register(sNAME_SPACE,TypeInfo(TWSTMtdServiceOperation),'TWSTMtdServiceOperation');
|
||||
typeRegistryInstance.Register(sNAME_SPACE,TypeInfo(TWSTMtdService),'TWSTMtdService');
|
||||
typeRegistryInstance.Register(sNAME_SPACE,TypeInfo(TWSTMtdRepository),'TWSTMtdRepository');
|
||||
typeRegistryInstance.Register(sNAME_SPACE,TypeInfo(TWSTMtdOperationParamArray),'TWSTMtdOperationParamArray');
|
||||
typeRegistryInstance.ItemByTypeInfo[TypeInfo(TWSTMtdOperationParamArray)].RegisterExternalPropertyName(sARRAY_ITEM,'Item');
|
||||
typeRegistryInstance.Register(sNAME_SPACE,TypeInfo(TWSTMtdServiceOperationArray),'TWSTMtdServiceOperationArray');
|
||||
typeRegistryInstance.ItemByTypeInfo[TypeInfo(TWSTMtdServiceOperationArray)].RegisterExternalPropertyName(sARRAY_ITEM,'_Item');
|
||||
typeRegistryInstance.Register(sNAME_SPACE,TypeInfo(TWSTMtdServiceArray),'TWSTMtdServiceArray');
|
||||
typeRegistryInstance.ItemByTypeInfo[TypeInfo(TWSTMtdServiceArray)].RegisterExternalPropertyName(sARRAY_ITEM,'Item');
|
||||
|
||||
|
||||
|
||||
End.
|
||||
|
89
wst/trunk/metadata_service.wsdl
Normal file
89
wst/trunk/metadata_service.wsdl
Normal file
@ -0,0 +1,89 @@
|
||||
<?xml version="1.0"?>
|
||||
<definitions name="metadata_service" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="metadata_service" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="metadata_service">
|
||||
<types>
|
||||
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="metadata_service" targetNamespace="metadata_service">
|
||||
<xsd:complexType name="TWSTMtdOperationParam">
|
||||
<xsd:sequence/>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="TWSTMtdServiceOperation">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Params" type="tns:TWSTMtdOperationParamArray"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="TWSTMtdService">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Operations" type="tns:TWSTMtdServiceOperationArray"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="TWSTMtdRepository">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="Services" type="tns:TWSTMtdServiceArray"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="TWSTMtdOperationParamArray">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="item" type="tns:TWSTMtdOperationParam" maxOccurs="unbounded" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="TWSTMtdServiceOperationArray">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="item" type="tns:TWSTMtdServiceOperation" maxOccurs="unbounded" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="TWSTMtdServiceArray">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="item" type="tns:TWSTMtdService" maxOccurs="unbounded" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:schema>
|
||||
</types>
|
||||
<message name="GetRepositoryList"/>
|
||||
<message name="GetRepositoryListResponse">
|
||||
<part name="Result" type="xsd:TArrayOfStringRemotable"/>
|
||||
</message>
|
||||
<message name="GetRepositoryInfo">
|
||||
<part name="AName" type="tns:String"/>
|
||||
</message>
|
||||
<message name="GetRepositoryInfoResponse">
|
||||
<part name="Result" type="tns:TWSTMtdRepository"/>
|
||||
</message>
|
||||
<portType name="IWSTMetadataService">
|
||||
<documentation>
|
||||
<GUID value="{804A3825-ADA5-4499-87BF-CF5491BFD674}"/>
|
||||
</documentation>
|
||||
<operation name="GetRepositoryList">
|
||||
<input message="tns:GetRepositoryList"/>
|
||||
<output message="tns:GetRepositoryListResponse"/>
|
||||
</operation>
|
||||
<operation name="GetRepositoryInfo">
|
||||
<input message="tns:GetRepositoryInfo"/>
|
||||
<output message="tns:GetRepositoryInfoResponse"/>
|
||||
</operation>
|
||||
</portType>
|
||||
<binding name="IWSTMetadataServiceBinding" type="tns:IWSTMetadataService">
|
||||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<operation name="GetRepositoryList">
|
||||
<soap:operation soapAction=""/>
|
||||
<input>
|
||||
<soap:body use="literal" namespace="metadata_service"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal" namespace="metadata_service"/>
|
||||
</output>
|
||||
</operation>
|
||||
<operation name="GetRepositoryInfo">
|
||||
<soap:operation soapAction=""/>
|
||||
<input>
|
||||
<soap:body use="literal" namespace="metadata_service"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap:body use="literal" namespace="metadata_service"/>
|
||||
</output>
|
||||
</operation>
|
||||
</binding>
|
||||
<service name="IWSTMetadataService">
|
||||
<port name="IWSTMetadataServicePort" binding="tns:IWSTMetadataServiceBinding">
|
||||
<soap:address location=""/>
|
||||
</port>
|
||||
</service>
|
||||
</definitions>
|
@ -1,7 +1,7 @@
|
||||
GetWSTResourceManager().AddResource('METADATA_SERVICE',
|
||||
#0#0#0#20'WST_METADATA_0.2.2.0'#0#0#0#16'metadata_service'#1#0#0#0#19'IWSTMe'
|
||||
+'tadataService'#2#0#0#0#17'GetRepositoryList'#1#0#0#0#6'result'#0#0#0#23'TAr'
|
||||
#0#0#0#16'WST_METADATA_0.6'#0#0#0#16'metadata_service'#0#1#0#0#0#19'IWSTMeta'
|
||||
+'dataService'#0#2#0#0#0#17'GetRepositoryList'#1#0#0#0#6'Result'#0#0#0#23'TAr'
|
||||
+'rayOfStringRemotable'#0#0#0#0#0#0#0#3#0#0#0#17'GetRepositoryInfo'#2#0#0#0#5
|
||||
+'AName'#0#0#0#6'string'#0#0#0#0#0#0#0#1#0#0#0#6'result'#0#0#0#17'TWSTMtdRepo'
|
||||
+'AName'#0#0#0#6'String'#0#0#0#0#0#0#0#1#0#0#0#6'Result'#0#0#0#17'TWSTMtdRepo'
|
||||
+'sitory'#0#0#0#0#0#0#0#3''
|
||||
);
|
@ -2,27 +2,25 @@
|
||||
This unit has been produced by ws_helper.
|
||||
Input unit name : "metadata_service".
|
||||
This unit name : "metadata_service_binder".
|
||||
Date : "12/11/2006 11:12".
|
||||
Date : "23/08/2010 16:10:07".
|
||||
}
|
||||
{$INCLUDE wst_global.inc}
|
||||
unit metadata_service_binder;
|
||||
|
||||
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
|
||||
interface
|
||||
|
||||
uses SysUtils, Classes, base_service_intf, server_service_intf, metadata_service;
|
||||
|
||||
|
||||
type
|
||||
|
||||
TWSTMetadataService_ServiceBinder=class(TBaseServiceBinder)
|
||||
Protected
|
||||
procedure GetRepositoryListHandler(AFormatter:IFormatterResponse; AContext : ICallContext);
|
||||
procedure GetRepositoryInfoHandler(AFormatter:IFormatterResponse; AContext : ICallContext);
|
||||
Public
|
||||
TWSTMetadataService_ServiceBinder = class(TBaseServiceBinder)
|
||||
protected
|
||||
procedure GetRepositoryListHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||
procedure GetRepositoryInfoHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||
public
|
||||
constructor Create();
|
||||
End;
|
||||
|
||||
{ TWSTMetadataService_ServiceBinderFactory }
|
||||
end;
|
||||
|
||||
type
|
||||
TWSTMetadataService_ServiceBinderFactory = class(TInterfacedObject,IItemFactory)
|
||||
private
|
||||
FInstance : IInterface;
|
||||
@ -39,89 +37,109 @@ Implementation
|
||||
uses TypInfo, wst_resources_imp,metadata_repository;
|
||||
|
||||
{ TWSTMetadataService_ServiceBinder implementation }
|
||||
procedure TWSTMetadataService_ServiceBinder.GetRepositoryListHandler(AFormatter:IFormatterResponse; AContext : ICallContext);
|
||||
Var
|
||||
procedure TWSTMetadataService_ServiceBinder.GetRepositoryListHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||
var
|
||||
cllCntrl : ICallControl;
|
||||
objCntrl : IObjectControl;
|
||||
hasObjCntrl : Boolean;
|
||||
tmpObj : IWSTMetadataService;
|
||||
callCtx : ICallContext;
|
||||
strPrmName : string;
|
||||
locStrPrmName : string;
|
||||
procName,trgName : string;
|
||||
returnVal : TArrayOfStringRemotable;
|
||||
Begin
|
||||
begin
|
||||
callCtx := AContext;
|
||||
If ( PTypeInfo(TypeInfo(TArrayOfStringRemotable))^.Kind in [tkClass,tkInterface] ) Then
|
||||
Pointer(returnVal) := Nil;
|
||||
Fillchar(returnVal,SizeOf(TArrayOfStringRemotable),#0);
|
||||
|
||||
|
||||
tmpObj := Self.GetFactory().CreateInstance() as IWSTMetadataService;
|
||||
if Supports(tmpObj,ICallControl,cllCntrl) then
|
||||
cllCntrl.SetCallContext(callCtx);
|
||||
|
||||
returnVal := tmpObj.GetRepositoryList();
|
||||
If ( PTypeInfo(TypeInfo(TArrayOfStringRemotable))^.Kind = tkClass ) And Assigned(Pointer(returnVal)) Then
|
||||
callCtx.AddObjectToFree(TObject(returnVal));
|
||||
|
||||
procName := AFormatter.GetCallProcedureName();
|
||||
trgName := AFormatter.GetCallTarget();
|
||||
AFormatter.Clear();
|
||||
AFormatter.BeginCallResponse(procName,trgName);
|
||||
AFormatter.Put('return',TypeInfo(TArrayOfStringRemotable),returnVal);
|
||||
AFormatter.EndCallResponse();
|
||||
|
||||
callCtx := Nil;
|
||||
End;
|
||||
hasObjCntrl := Supports(tmpObj,IObjectControl,objCntrl);
|
||||
if hasObjCntrl then
|
||||
objCntrl.Activate();
|
||||
try
|
||||
returnVal := tmpObj.GetRepositoryList();
|
||||
if Assigned(TObject(returnVal)) then
|
||||
callCtx.AddObjectToFree(TObject(returnVal));
|
||||
|
||||
procName := AFormatter.GetCallProcedureName();
|
||||
trgName := AFormatter.GetCallTarget();
|
||||
AFormatter.Clear();
|
||||
AFormatter.BeginCallResponse(procName,trgName);
|
||||
AFormatter.Put('Result',TypeInfo(TArrayOfStringRemotable),returnVal);
|
||||
AFormatter.EndCallResponse();
|
||||
|
||||
callCtx := nil;
|
||||
finally
|
||||
if hasObjCntrl then
|
||||
objCntrl.Deactivate();
|
||||
Self.GetFactory().ReleaseInstance(tmpObj);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWSTMetadataService_ServiceBinder.GetRepositoryInfoHandler(AFormatter:IFormatterResponse; AContext : ICallContext);
|
||||
Var
|
||||
procedure TWSTMetadataService_ServiceBinder.GetRepositoryInfoHandler(AFormatter : IFormatterResponse; AContext : ICallContext);
|
||||
var
|
||||
cllCntrl : ICallControl;
|
||||
objCntrl : IObjectControl;
|
||||
hasObjCntrl : Boolean;
|
||||
tmpObj : IWSTMetadataService;
|
||||
callCtx : ICallContext;
|
||||
strPrmName : string;
|
||||
locStrPrmName : string;
|
||||
procName,trgName : string;
|
||||
AName : string;
|
||||
AName : String;
|
||||
returnVal : TWSTMtdRepository;
|
||||
Begin
|
||||
begin
|
||||
callCtx := AContext;
|
||||
Pointer(returnVal) := Nil;
|
||||
Fillchar(returnVal,SizeOf(TWSTMtdRepository),#0);
|
||||
|
||||
strPrmName := 'AName'; AFormatter.Get(TypeInfo(string),strPrmName,AName);
|
||||
locStrPrmName := 'AName'; AFormatter.Get(TypeInfo(String),locStrPrmName,AName);
|
||||
|
||||
tmpObj := Self.GetFactory().CreateInstance() as IWSTMetadataService;
|
||||
if Supports(tmpObj,ICallControl,cllCntrl) then
|
||||
cllCntrl.SetCallContext(callCtx);
|
||||
|
||||
returnVal := tmpObj.GetRepositoryInfo(AName);
|
||||
If Assigned(Pointer(returnVal)) Then
|
||||
callCtx.AddObjectToFree(TObject(returnVal));
|
||||
|
||||
procName := AFormatter.GetCallProcedureName();
|
||||
trgName := AFormatter.GetCallTarget();
|
||||
AFormatter.Clear();
|
||||
AFormatter.BeginCallResponse(procName,trgName);
|
||||
AFormatter.Put('return',TypeInfo(TWSTMtdRepository),returnVal);
|
||||
AFormatter.EndCallResponse();
|
||||
|
||||
callCtx := Nil;
|
||||
End;
|
||||
hasObjCntrl := Supports(tmpObj,IObjectControl,objCntrl);
|
||||
if hasObjCntrl then
|
||||
objCntrl.Activate();
|
||||
try
|
||||
returnVal := tmpObj.GetRepositoryInfo(AName);
|
||||
if Assigned(TObject(returnVal)) then
|
||||
callCtx.AddObjectToFree(TObject(returnVal));
|
||||
|
||||
procName := AFormatter.GetCallProcedureName();
|
||||
trgName := AFormatter.GetCallTarget();
|
||||
AFormatter.Clear();
|
||||
AFormatter.BeginCallResponse(procName,trgName);
|
||||
AFormatter.Put('Result',TypeInfo(TWSTMtdRepository),returnVal);
|
||||
AFormatter.EndCallResponse();
|
||||
|
||||
callCtx := nil;
|
||||
finally
|
||||
if hasObjCntrl then
|
||||
objCntrl.Deactivate();
|
||||
Self.GetFactory().ReleaseInstance(tmpObj);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
constructor TWSTMetadataService_ServiceBinder.Create();
|
||||
Begin
|
||||
Inherited Create(GetServiceImplementationRegistry().FindFactory('IWSTMetadataService'));
|
||||
begin
|
||||
inherited Create(GetServiceImplementationRegistry().FindFactory('IWSTMetadataService'));
|
||||
RegisterVerbHandler('GetRepositoryList',{$IFDEF FPC}@{$ENDIF}GetRepositoryListHandler);
|
||||
RegisterVerbHandler('GetRepositoryInfo',{$IFDEF FPC}@{$ENDIF}GetRepositoryInfoHandler);
|
||||
End;
|
||||
end;
|
||||
|
||||
|
||||
{ TWSTMetadataService_ServiceBinderFactory }
|
||||
|
||||
function TWSTMetadataService_ServiceBinderFactory.CreateInstance():IInterface;
|
||||
Begin
|
||||
begin
|
||||
Result := FInstance;
|
||||
End;
|
||||
end;
|
||||
|
||||
constructor TWSTMetadataService_ServiceBinderFactory.Create();
|
||||
begin
|
||||
FInstance := TWSTMetadataService_ServiceBinder.Create();
|
||||
FInstance := TWSTMetadataService_ServiceBinder.Create() as IInterface;
|
||||
end;
|
||||
|
||||
destructor TWSTMetadataService_ServiceBinderFactory.Destroy();
|
||||
@ -138,10 +156,10 @@ End;
|
||||
|
||||
initialization
|
||||
|
||||
{$IF DECLARED(Register_metadata_service_NameSpace)}
|
||||
Register_metadata_service_NameSpace();
|
||||
{$IFEND}
|
||||
|
||||
{$i metadata_service.wst}
|
||||
|
||||
{$IF DECLARED(Register_metadata_service_ServiceMetadata)}
|
||||
Register_metadata_service_ServiceMetadata();
|
||||
{$IFEND}
|
||||
|
||||
End.
|
||||
|
@ -2,18 +2,15 @@
|
||||
This unit has been produced by ws_helper.
|
||||
Input unit name : "metadata_service".
|
||||
This unit name : "metadata_service_proxy".
|
||||
Date : "12/11/2006 11:12".
|
||||
Date : "23/08/2010 16:10:07".
|
||||
}
|
||||
{$INCLUDE wst_global.inc}
|
||||
Unit metadata_service_proxy;
|
||||
|
||||
Unit metadata_service_proxy;
|
||||
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
|
||||
Interface
|
||||
|
||||
Uses SysUtils, Classes, TypInfo, base_service_intf, service_intf, metadata_service;
|
||||
|
||||
{$INCLUDE wst.inc}
|
||||
{$INCLUDE wst_delphi.inc}
|
||||
|
||||
Type
|
||||
|
||||
|
||||
@ -22,13 +19,26 @@ Type
|
||||
class function GetServiceType() : PTypeInfo;override;
|
||||
function GetRepositoryList():TArrayOfStringRemotable;
|
||||
function GetRepositoryInfo(
|
||||
Const AName : string
|
||||
const AName : String
|
||||
):TWSTMtdRepository;
|
||||
End;
|
||||
|
||||
Function wst_CreateInstance_IWSTMetadataService(const AFormat : string = 'SOAP:'; const ATransport : string = 'HTTP:'; const AAddress : string = ''):IWSTMetadataService;
|
||||
|
||||
Implementation
|
||||
uses wst_resources_imp, metadata_repository;
|
||||
|
||||
|
||||
Function wst_CreateInstance_IWSTMetadataService(const AFormat : string; const ATransport : string; const AAddress : string):IWSTMetadataService;
|
||||
Var
|
||||
locAdr : string;
|
||||
Begin
|
||||
locAdr := AAddress;
|
||||
if ( locAdr = '' ) then
|
||||
locAdr := GetServiceDefaultAddress(TypeInfo(IWSTMetadataService));
|
||||
Result := TWSTMetadataService_Proxy.Create('IWSTMetadataService',AFormat+GetServiceDefaultFormatProperties(TypeInfo(IWSTMetadataService)),ATransport + 'address=' + locAdr);
|
||||
End;
|
||||
|
||||
{ TWSTMetadataService_Proxy implementation }
|
||||
|
||||
class function TWSTMetadataService_Proxy.GetServiceType() : PTypeInfo;
|
||||
@ -39,20 +49,21 @@ end;
|
||||
function TWSTMetadataService_Proxy.GetRepositoryList():TArrayOfStringRemotable;
|
||||
Var
|
||||
locSerializer : IFormatterClient;
|
||||
strPrmName : string;
|
||||
locCallContext : ICallContext;
|
||||
locStrPrmName : string;
|
||||
Begin
|
||||
locCallContext := Self as ICallContext;
|
||||
locSerializer := GetSerializer();
|
||||
Try
|
||||
locSerializer.BeginCall('GetRepositoryList', GetTarget(),(Self as ICallContext));
|
||||
locSerializer.BeginCall('GetRepositoryList', GetTarget(),locCallContext);
|
||||
locSerializer.EndCall();
|
||||
|
||||
MakeCall();
|
||||
|
||||
locSerializer.BeginCallRead((Self as ICallContext));
|
||||
If ( PTypeInfo(TypeInfo(TArrayOfStringRemotable))^.Kind in [tkClass,tkInterface] ) Then
|
||||
Pointer(Result) := Nil;
|
||||
strPrmName := 'return';
|
||||
locSerializer.Get(TypeInfo(TArrayOfStringRemotable), strPrmName, result);
|
||||
locSerializer.BeginCallRead(locCallContext);
|
||||
TObject(Result) := Nil;
|
||||
locStrPrmName := 'Result';
|
||||
locSerializer.Get(TypeInfo(TArrayOfStringRemotable), locStrPrmName, Result);
|
||||
|
||||
Finally
|
||||
locSerializer.Clear();
|
||||
@ -60,24 +71,26 @@ Begin
|
||||
End;
|
||||
|
||||
function TWSTMetadataService_Proxy.GetRepositoryInfo(
|
||||
Const AName : string
|
||||
const AName : String
|
||||
):TWSTMtdRepository;
|
||||
Var
|
||||
locSerializer : IFormatterClient;
|
||||
strPrmName : string;
|
||||
locCallContext : ICallContext;
|
||||
locStrPrmName : string;
|
||||
Begin
|
||||
locCallContext := Self as ICallContext;
|
||||
locSerializer := GetSerializer();
|
||||
Try
|
||||
locSerializer.BeginCall('GetRepositoryInfo', GetTarget(),(Self as ICallContext));
|
||||
locSerializer.Put('AName', TypeInfo(string), AName);
|
||||
locSerializer.BeginCall('GetRepositoryInfo', GetTarget(),locCallContext);
|
||||
locSerializer.Put('AName', TypeInfo(String), AName);
|
||||
locSerializer.EndCall();
|
||||
|
||||
MakeCall();
|
||||
|
||||
locSerializer.BeginCallRead((Self as ICallContext));
|
||||
Pointer(Result) := Nil;
|
||||
strPrmName := 'return';
|
||||
locSerializer.Get(TypeInfo(TWSTMtdRepository), strPrmName, result);
|
||||
locSerializer.BeginCallRead(locCallContext);
|
||||
TObject(Result) := Nil;
|
||||
locStrPrmName := 'Result';
|
||||
locSerializer.Get(TypeInfo(TWSTMtdRepository), locStrPrmName, Result);
|
||||
|
||||
Finally
|
||||
locSerializer.Clear();
|
||||
@ -90,5 +103,5 @@ initialization
|
||||
|
||||
{$IF DECLARED(Register_metadata_service_ServiceMetadata)}
|
||||
Register_metadata_service_ServiceMetadata();
|
||||
{$ENDIF}
|
||||
{$IFEND}
|
||||
End.
|
||||
|
Reference in New Issue
Block a user