1############################################################################### 2# 3# Sub Name: methodSignature 4# 5# Description: Retrieve the list of method signatures for the specified 6# methods. 7# 8# Arguments: NAME IN/OUT TYPE DESCRIPTION 9# $srv in ref Server object instance 10# $arg in ref/sc Listref or scalar specification 11# 12# Globals: None. 13# 14# Environment: None. 15# 16# Returns: Success: listref 17# Failure: fault object 18# 19############################################################################### 20sub methodSignature 21{ 22 use strict; 23 24 my $srv = shift; 25 my $arg = shift; 26 27 my $name = $srv->{method_name}; 28 my @list = (ref $arg) ? @$arg : ($arg); 29 my (@results, $list, $method); 30 31 for (@list) 32 { 33 if (ref($method = $srv->get_method($_)) and (! $method->hidden)) 34 { 35 push(@results, 36 [ map { [ split(/ /) ] } @{$method->signature} ]); 37 } 38 else 39 { 40 return RPC::XML::fault->new(302, "$name: Method $_ unknown"); 41 } 42 } 43 44 return (ref $arg) ? \@results : $results[0]; 45} 46