1 |
joko |
1.1 |
#!/usr/bin/perl |
2 |
|
|
|
3 |
|
|
use strict; |
4 |
|
|
|
5 |
|
|
use RPC::XML::Client (); |
6 |
|
|
use Data::Dumper qw( Dumper ); |
7 |
|
|
|
8 |
|
|
## |
9 |
|
|
## Define shorthand for RPC::XML::type |
10 |
|
|
## |
11 |
|
|
BEGIN { |
12 |
|
|
my %short = ( |
13 |
|
|
array => 'a', struct => 's', |
14 |
|
|
int => 'i', double => 'd', |
15 |
|
|
boolean => 'b', string => 'S', |
16 |
|
|
base64 => 'b64', fault => 'f', |
17 |
|
|
datetime_iso8601 => 'dt', |
18 |
|
|
); |
19 |
|
|
|
20 |
|
|
eval qq{{package R::X::$short{$_};sub new{shift;RPC::XML::$_->new(\@_)}}} |
21 |
|
|
foreach keys %short; |
22 |
|
|
} |
23 |
|
|
|
24 |
|
|
use constant DEFAULT_URL => 'http://localhost:7777/'; |
25 |
|
|
|
26 |
|
|
my $url = shift || DEFAULT_URL; |
27 |
|
|
|
28 |
|
|
my $cl = RPC::XML::Client->new( $url ); |
29 |
|
|
|
30 |
|
|
|
31 |
|
|
my $req = RPC::XML::request->new( |
32 |
|
|
'spoo', |
33 |
|
|
R::X::a->new( 1, 2, 3, 4, ), |
34 |
|
|
); |
35 |
|
|
|
36 |
|
|
|
37 |
|
|
#my $req = RPC::XML::request->new( 'system.introspection', ); |
38 |
|
|
|
39 |
|
|
#print "request\n", $req->as_string, "\n"; |
40 |
|
|
|
41 |
|
|
my $resp = $cl->send_request( $req ); |
42 |
|
|
|
43 |
|
|
if( ref $resp ) { |
44 |
|
|
print "response:\n", Dumper( $resp->value ), "\n" |
45 |
|
|
} else { |
46 |
|
|
print "Error: $resp\n"; |
47 |
|
|
} |
48 |
|
|
|
49 |
|
|
=pod |
50 |
|
|
my $i = 0; |
51 |
|
|
foreach ( @{$resp->value->value} ) { |
52 |
|
|
print $i++, ": ", $_, "\n"; |
53 |
|
|
} |
54 |
|
|
=cut |
55 |
|
|
|
56 |
|
|
exit 0; |