- Patch #855420 by jhodgdon, aspilicious: documentation cleanup for xmlrpcs.inc and add missing documentation headers.

merge-requests/26/head
Dries Buytaert 2010-07-31 04:17:34 +00:00
parent a94519077b
commit ad41c41fe4
1 changed files with 82 additions and 26 deletions

View File

@ -7,9 +7,9 @@
*/
/**
* The main entry point for XML-RPC requests.
* Invokes XML-RPC methods on this server.
*
* @param $callbacks
* @param array $callbacks
* Array of external XML-RPC method names with the callbacks they map to.
*/
function xmlrpc_server($callbacks) {
@ -99,12 +99,13 @@ function xmlrpc_server($callbacks) {
}
/**
* Throw an XML-RPC error.
* Throws an XML-RPC error.
*
* @param $error
* an error object OR integer error code
* An error object or integer error code.
* @param $message
* description of error, used only if integer error code was passed
* (optional) The description of the error. Used only if an integer error
* code was passed in.
*/
function xmlrpc_server_error($error, $message = FALSE) {
if ($message && !is_object($error)) {
@ -113,6 +114,12 @@ function xmlrpc_server_error($error, $message = FALSE) {
xmlrpc_server_output(xmlrpc_error_get_xml($error));
}
/**
* Sends XML-RPC output to the browser.
*
* @param string $xml
* XML to send to the browser.
*/
function xmlrpc_server_output($xml) {
$xml = '<?xml version="1.0"?>' . "\n" . $xml;
drupal_add_http_header('Content-Length', strlen($xml));
@ -122,10 +129,16 @@ function xmlrpc_server_output($xml) {
}
/**
* Store a copy of the request temporarily.
* Stores a copy of an XML-RPC request temporarily.
*
* @param $xmlrpc_server
* Request object created by xmlrpc_server().
* @param object $xmlrpc_server
* (optional) Request object created by xmlrpc_server(). Omit to leave the
* previous server object saved.
*
* @return
* The latest stored request.
*
* @see xmlrpc_server_get()
*/
function xmlrpc_server_set($xmlrpc_server = NULL) {
static $server;
@ -135,21 +148,31 @@ function xmlrpc_server_set($xmlrpc_server = NULL) {
return $server;
}
// Retrieve the stored request.
/**
* Retrieves the latest stored XML-RPC request.
*
* @return object
* The stored request.
*
* @see xmlrpc_server_set()
*/
function xmlrpc_server_get() {
return xmlrpc_server_set();
}
/**
* Dispatch the request and any parameters to the appropriate handler.
* Dispatches an XML-RPC request and any parameters to the appropriate handler.
*
* @param $xmlrpc_server
* Contains information about this XML-RPC server, the methods it provides,
* their signatures, etc.
* @param $methodname
* The external XML-RPC method name, e.g. 'system.methodHelp'
* @param $args
* Array containing any parameters that were sent along with the request.
* @param object $xmlrpc_server
* Object containing information about this XML-RPC server, the methods it
* provides, their signatures, etc.
* @param string $methodname
* The external XML-RPC method name; e.g., 'system.methodHelp'.
* @param array $args
* Array containing any parameters that are to be sent along with the request.
*
* @return
* The results of the call.
*/
function xmlrpc_server_call($xmlrpc_server, $methodname, $args) {
// Make sure parameters are in an array
@ -222,6 +245,20 @@ function xmlrpc_server_call($xmlrpc_server, $methodname, $args) {
return call_user_func_array($method, $args);
}
/**
* Dispatches multiple XML-RPC requests.
*
* @param array $methodcalls
* An array of XML-RPC requests to make. Each request is an array with the
* following elements:
* - methodName: Name of the method to invoke.
* - params: Parameters to pass to the method.
*
* @return
* An array of the results of each request.
*
* @see xmlrpc_server_call()
*/
function xmlrpc_server_multicall($methodcalls) {
// See http://www.xmlrpc.com/discuss/msgReader$1208
$return = array();
@ -254,7 +291,12 @@ function xmlrpc_server_multicall($methodcalls) {
}
/**
* Lists the methods available on this XML-RPC server.
*
* XML-RPC method system.listMethods maps to this function.
*
* @return array
* Array of the names of methods available on this server.
*/
function xmlrpc_server_list_methods() {
$xmlrpc_server = xmlrpc_server_get();
@ -262,8 +304,13 @@ function xmlrpc_server_list_methods() {
}
/**
* Returns a list of the capabilities of this server.
*
* XML-RPC method system.getCapabilities maps to this function.
*
* @return array
* Array of server capabilities.
*
* @see http://groups.yahoo.com/group/xml-rpc/message/2897
*/
function xmlrpc_server_get_capabilities() {
@ -288,16 +335,20 @@ function xmlrpc_server_get_capabilities() {
}
/**
* XML-RPC method system.methodSignature maps to this function.
* Returns the method signature of a function.
*
* @param $methodname
* Name of method for which we return a method signature.
* This is the function mapped to the XML-RPC method system.methodSignature.
*
* @return
* An array of types representing the method signature of the
* function that the methodname maps to. The methodSignature of
* this function is 'array', 'string' because it takes an array
* and returns a string.
* A method signature is an array of the input and output types of a method. For
* instance, the method signature of this function is array('array', 'string'),
* because it takes an array and returns a string.
*
* @param string $methodname
* Name of method to return a method signature for.
*
* @return array
* An array of types representing the method signature of the function that
* $methodname maps to.
*/
function xmlrpc_server_method_signature($methodname) {
$xmlrpc_server = xmlrpc_server_get();
@ -316,10 +367,15 @@ function xmlrpc_server_method_signature($methodname) {
}
/**
* Returns the help for an XML-RPC method.
*
* XML-RPC method system.methodHelp maps to this function.
*
* @param $method
* @param string $method
* Name of method for which we return a help string.
*
* @return string
* Help text for $method.
*/
function xmlrpc_server_method_help($method) {
$xmlrpc_server = xmlrpc_server_get();