+ 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

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