<?php
include("xmlrpc.inc");
include("xmlrpcs.inc");
// here we define the function that is available remotely
// sum expects 2 parameters, both double
function sum($params) {
global $xmlrpcerruser;
// get first paramater
$xv = $params->getParam(0);
// if parameter is not of type double, something is wrong...
if ($xv->scalartyp()=="double") {
// get actual parameter value as PHP variable
$x = $xv->scalarval();
} else {
return new xmlrpcresp(0,$xmlrpcerruser,"Invalid parameter");
}
// get second parameter
// if parameter is not of type double, something is wrong...
$yv = $params->GetParam(1);
if ($yv->scalartyp()=="double") {
// get actual parameter value as PHP variable
$y = $yv->scalarval();
} else {
return new xmlrpcresp(0,$xmlrpcerruser,"Invalid parameter");
}
// compute the sum !
$z = $x + $y;
// wrap the sum in an xmlrpcval object
$retval = new xmlrpcval($z,"double");
// return the result
return new xmlrpcresp($retval);
}
// set up the server to deal with method sum
$method_map = array("remoteAdd" =>
array("function" => "sum") );
$s = new xmlrpc_server($method_map);
?>