<?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);

?>