Files
lazarus-ccr/wst/trunk/samples/soap_headers/client/calcservice.pas
2008-08-27 17:50:39 +00:00

142 lines
3.0 KiB
ObjectPascal

{
This unit has been produced by ws_helper.
Input unit name : "calcservice".
This unit name : "calcservice".
Date : "27/08/2008 17:12:53".
}
unit calcservice;
{$IFDEF FPC}
{$mode objfpc} {$H+}
{$ENDIF}
{$IFNDEF FPC}
{$DEFINE WST_RECORD_RTTI}
{$ENDIF}
interface
uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;
const
sNAME_SPACE = 'urn:calc-service';
sUNIT_NAME = 'calcservice';
type
TLoginHeader = class;
TSessionHeader = class;
{ TLoginHeader
The TLoginHeader class is used by the client for its first invocation of the service.
At the first response the server sends a TSessionHeader instance that contains a
session token. The others time the client invokes the server the client have to
send the session token using the TSessionHeader class.
}
TLoginHeader = class(THeaderBlock)
private
FUserName : string;
FPassword : string;
published
property UserName : string read FUserName write FUserName;
property Password : string read FPassword write FPassword;
end;
{ TSessionHeader
This header class is used by the client to send its session token to the server.
}
TSessionHeader = class(THeaderBlock)
private
FSessionToken : string;
published
property SessionToken : string read FSessionToken write FSessionToken;
end;
ICalcService = interface(IInvokable)
['{090EADB7-6B25-4F35-9419-2AF113D44BF8}']
function Add(
const A : integer;
const B : integer
):integer;
function Substract(
const A : integer;
const B : integer
):integer;
end;
procedure Register_calcservice_ServiceMetadata();
Implementation
uses metadata_repository, record_rtti, wst_types;
procedure Register_calcservice_ServiceMetadata();
var
mm : IModuleMetadataMngr;
begin
mm := GetModuleMetadataMngr();
mm.SetRepositoryNameSpace(sUNIT_NAME, sNAME_SPACE);
mm.SetServiceCustomData(
sUNIT_NAME,
'ICalcService',
'TRANSPORT_Address',
'http://127.0.0.1:8000/services/ICalcService'
);
mm.SetServiceCustomData(
sUNIT_NAME,
'ICalcService',
'FORMAT_Style',
'rpc'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'ICalcService',
'Add',
'_E_N_',
'Add'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'ICalcService',
'Add',
'FORMAT_Input_EncodingStyle',
'literal'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'ICalcService',
'Add',
'FORMAT_OutputEncodingStyle',
'literal'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'ICalcService',
'Substract',
'_E_N_',
'Substract'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'ICalcService',
'Substract',
'FORMAT_Input_EncodingStyle',
'literal'
);
mm.SetOperationCustomData(
sUNIT_NAME,
'ICalcService',
'Substract',
'FORMAT_OutputEncodingStyle',
'literal'
);
end;
initialization
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TLoginHeader),'TLoginHeader');
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TSessionHeader),'TSessionHeader');
End.