You've already forked lazarus-ccr
Delphi server side support ( binary, soap, xmlrpc ):
- the Indy http_server compile and works - for xml, the Delphi xmldom unit as used ( tested with msxml ) git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@213 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
271
wst/trunk/samples/user_client_readbuffer/user_service_intf.pas
Normal file
271
wst/trunk/samples/user_client_readbuffer/user_service_intf.pas
Normal file
@@ -0,0 +1,271 @@
|
||||
{
|
||||
This unit has been produced by ws_helper.
|
||||
Input unit name : "user_service_intf".
|
||||
This unit name : "user_service_intf".
|
||||
Date : "12/07/2007 11:50:48".
|
||||
}
|
||||
unit user_service_intf;
|
||||
{$IFDEF FPC} {$mode objfpc}{$H+} {$ENDIF}
|
||||
interface
|
||||
|
||||
uses SysUtils, Classes, TypInfo, base_service_intf, service_intf;
|
||||
|
||||
const
|
||||
sNAME_SPACE = 'urn:UserService';
|
||||
sUNIT_NAME = 'user_service_intf';
|
||||
|
||||
type
|
||||
|
||||
TUserArray = class;
|
||||
TUser_Type = class;
|
||||
|
||||
TUserCategory_Type = (
|
||||
Normal
|
||||
,Admin
|
||||
);
|
||||
|
||||
{ TUser_Type }
|
||||
|
||||
TUser_Type = class(TBaseComplexRemotable)
|
||||
private
|
||||
FCategory : TUserCategory_Type;
|
||||
FUserName : string;
|
||||
FeMail : string;
|
||||
FPreferences : string;
|
||||
FNote : TStringBufferRemotable;
|
||||
public
|
||||
constructor Create();override;
|
||||
destructor Destroy();override;
|
||||
published
|
||||
property Category : TUserCategory_Type read FCategory write FCategory;
|
||||
property UserName : string read FUserName write FUserName;
|
||||
property eMail : string read FeMail write FeMail;
|
||||
property Preferences : string read FPreferences write FPreferences;
|
||||
property Note : TStringBufferRemotable read FNote write FNote;
|
||||
end;
|
||||
|
||||
TUserArray = class(TBaseObjectArrayRemotable)
|
||||
private
|
||||
function GetItem(AIndex: Integer): TUser_Type;
|
||||
public
|
||||
class function GetItemClass():TBaseRemotableClass;override;
|
||||
property Item[AIndex:Integer] : TUser_Type Read GetItem;Default;
|
||||
end;
|
||||
|
||||
UserService = interface(IInvokable)
|
||||
['{F49D8FA4-9BBC-4321-9869-5BA745070ABC}']
|
||||
function GetList():TUserArray;
|
||||
procedure Add(
|
||||
const AUser : TUser_Type
|
||||
);
|
||||
procedure Update(
|
||||
const AUser : TUser_Type
|
||||
);
|
||||
function Find(
|
||||
const AName : string
|
||||
):TUser_Type;
|
||||
function Delete(
|
||||
const AName : string
|
||||
):boolean;
|
||||
end;
|
||||
|
||||
procedure Register_user_service_intf_ServiceMetadata();
|
||||
|
||||
Implementation
|
||||
uses metadata_repository;
|
||||
|
||||
{ TUserArray }
|
||||
|
||||
function TUserArray.GetItem(AIndex: Integer): TUser_Type;
|
||||
begin
|
||||
Result := Inherited GetItem(AIndex) As TUser_Type;
|
||||
end;
|
||||
|
||||
class function TUserArray.GetItemClass(): TBaseRemotableClass;
|
||||
begin
|
||||
Result:= TUser_Type;
|
||||
end;
|
||||
|
||||
|
||||
procedure Register_user_service_intf_ServiceMetadata();
|
||||
var
|
||||
mm : IModuleMetadataMngr;
|
||||
begin
|
||||
mm := GetModuleMetadataMngr();
|
||||
mm.SetRepositoryNameSpace(sUNIT_NAME, sNAME_SPACE);
|
||||
mm.SetServiceCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'TRANSPORT_Address',
|
||||
'http://127.0.0.1:8000/services/UserService'
|
||||
);
|
||||
mm.SetServiceCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'FORMAT_Style',
|
||||
'rpc'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'GetList',
|
||||
'_E_N_',
|
||||
'GetList'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'GetList',
|
||||
'TRANSPORT_soapAction',
|
||||
'urn:UserService/UserServiceGetList'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'GetList',
|
||||
'FORMAT_Input_EncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'GetList',
|
||||
'FORMAT_OutputEncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Add',
|
||||
'_E_N_',
|
||||
'Add'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Add',
|
||||
'TRANSPORT_soapAction',
|
||||
'urn:UserService/UserServiceAdd'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Add',
|
||||
'FORMAT_Input_EncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Add',
|
||||
'FORMAT_OutputEncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Update',
|
||||
'_E_N_',
|
||||
'Update'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Update',
|
||||
'TRANSPORT_soapAction',
|
||||
'urn:UserService/UserServiceUpdate'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Update',
|
||||
'FORMAT_Input_EncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Update',
|
||||
'FORMAT_OutputEncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Find',
|
||||
'_E_N_',
|
||||
'Find'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Find',
|
||||
'TRANSPORT_soapAction',
|
||||
'urn:UserService/UserServiceFind'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Find',
|
||||
'FORMAT_Input_EncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Find',
|
||||
'FORMAT_OutputEncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Delete',
|
||||
'_E_N_',
|
||||
'Delete'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Delete',
|
||||
'TRANSPORT_soapAction',
|
||||
'urn:UserService/UserServiceDelete'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Delete',
|
||||
'FORMAT_Input_EncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
mm.SetOperationCustomData(
|
||||
sUNIT_NAME,
|
||||
'UserService',
|
||||
'Delete',
|
||||
'FORMAT_OutputEncodingStyle',
|
||||
'literal'
|
||||
);
|
||||
end;
|
||||
|
||||
{ TUser_Type }
|
||||
|
||||
constructor TUser_Type.Create( );
|
||||
begin
|
||||
inherited Create( );
|
||||
FNote := TStringBufferRemotable.Create();
|
||||
end;
|
||||
|
||||
destructor TUser_Type.Destroy( );
|
||||
begin
|
||||
FreeAndNil(FNote);
|
||||
inherited Destroy( );
|
||||
end;
|
||||
|
||||
initialization
|
||||
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUserCategory_Type),'TUserCategory');
|
||||
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUser_Type),'TUser');
|
||||
GetTypeRegistry().Register(sNAME_SPACE,TypeInfo(TUserArray),'TUserArray');
|
||||
GetTypeRegistry().ItemByTypeInfo[TypeInfo(TUserArray)].RegisterExternalPropertyName(sARRAY_ITEM,'item');
|
||||
|
||||
|
||||
End.
|
||||
Reference in New Issue
Block a user