.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CipUX::RPC::Client 3pm" .TH CipUX::RPC::Client 3pm "2011-05-05" "perl v5.12.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CipUX::RPC::Client \- XML\-RPC client call library .SH "VERSION" .IX Header "VERSION" This document describes CipUX::RPC::Client version 3.4.0.7 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 4 \& use warnings; \& use strict; \& use CipUX::RPC::Client; \& use version; our $VERSION = qv(\*(Aq3.4.0.0\*(Aq); \& \& my $rpc = CipUX::RPC::Client\->new({ \& url=>\*(Aqhttp://localhost:8001/RPC2\*(Aq, \& client=>\*(Aqclientname\*(Aq, # name of client \& version=>\*(Aq3.4.0.0\*(Aq, # version of client \& }); \& \& if ( $rpc\->rpc_ping() ) { print "OK\en" }else{ exit 1; } \& \& if ( $rpc\->rpc_login() ) { print "OK\en" }else{ exit 1; } \& \& # probably do some other calls \& \& if ( $rpc\->rpc_logout() ) { print "OK\en" }else{ exit 1; } \& \& exit 0; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" .SH "SUBROUTINES/METHODS" .IX Header "SUBROUTINES/METHODS" .SS "\s-1BUILD\s0" .IX Subsection "BUILD" Constructor (Not used at the moment) .SS "\s-1DEMOLISH\s0" .IX Subsection "DEMOLISH" Destructor .SS "get_login" .IX Subsection "get_login" Retrieve the login (uid) of the rpc client object. .PP .Vb 1 \& $login = $rpc\->get_login(); .Ve .SS "rpc_selfpasswd" .IX Subsection "rpc_selfpasswd" Set own password. .PP .Vb 1 \& 1|0 = $rpc\->rpc_login( { password=>$password } ); .Ve .SS "rpc_ping" .IX Subsection "rpc_ping" Test if the server is up. .PP .Vb 1 \& 1|0 = $rpc\->rpc_ping(); .Ve .SS "rpc_login" .IX Subsection "rpc_login" Perform a log in. .PP .Vb 1 \& 1|0 = $rpc\->rpc_login(); .Ve .SS "rpc_logout" .IX Subsection "rpc_logout" Perform a log out. .PP .Vb 1 \& 1|0 = $rpc\->rpc_logout(); .Ve .SS "rpc_ttl" .IX Subsection "rpc_ttl" Returns the \s-1TTL\s0 via rpc_intern. .PP .Vb 1 \& $ttl = $rpc\->rpc_ttl(); .Ve .SS "rpc_session" .IX Subsection "rpc_session" Returns a ticket or 0; .PP .Vb 1 \& my $ticket = $rpc\->rpc_session(); .Ve .SS "rpc_cat_module_cache_size" .IX Subsection "rpc_cat_module_cache_size" Returns the cache size via rpc_intern. .PP .Vb 1 \& $integer = $rpc\->rpc_cat_module_cache_size(); .Ve .SS "rpc_rpc_intern_cache_size" .IX Subsection "rpc_rpc_intern_cache_size" Returns the cache size via rpc_intern. .PP .Vb 1 \& $integer = $rpc\->rpc_rpc_intern_cache_size(); .Ve .SS "rpc_task_cache_size" .IX Subsection "rpc_task_cache_size" Returns the cache size via rpc_intern. .PP .Vb 1 \& $integer = $rpc\->rpc_task_cache_size(); .Ve .SS "rpc_flush" .IX Subsection "rpc_flush" Flush the cache via rpc_intern. .PP .Vb 1 \& 0|1 = $rpc\->rpc_flush(); .Ve .SS "rpc_check_access" .IX Subsection "rpc_check_access" Aggregate several check access subcommands. .PP .Vb 10 \& ( $from, $r_hr ) = $rpc\->rpc_check_access({ \& rpcmode => rpc_intern|rpc_info, \& entity => task | rpc_intern | cat_module \& scope => single | manifold, \& subcommand => user_task_access \& | user_task_access_survey \& | user_cat_module_access \& | user_cat_module_access_survey \& | user_rpc_intern_access \& | user_rpc_intern_access_survey \& \& param_ar => (rest send as to_ar) \& }); .Ve .SS "rpcev" .IX Subsection "rpcev" Helper routine to evaluate calls. .PP .Vb 8 \& $ok = $rpc\->rpcev( \*(Aqping\*(Aq, \e&{ $rpc\->rpc_ping } ); \& $ok = $rpc\->rpcev( \*(Aqlogin\*(Aq, \e&{ $rpc\->rpc_login } ); \& $code = sub { return $rpc\->xmlrpc(@_); }; # remains the same \& $a_hr = $rpc\->rpcev \*(Aqlist\*(Aq, $code, {cmd => \*(Aqcipux_task_list_student_accounts\*(Aq} ); \& $d_ar = $rpc\->extract_data_for_tpl( {answer_hr => $a_hr, use_ltarget=>1} ); \& print "Students on the system:\en"; \& foreach my $l (@{$d_ar\->{tpl_data_ar}}){ print "\et$l\->{$d_ar\->{ltarget}}\en";} \& $ok = $rpc\->rpcev( \*(Aqlogout\*(Aq,\e&{ $rpc\->rpc_logout }, ); .Ve .SS "xmlrpc" .IX Subsection "xmlrpc" Helper subroutine to executing XML-RPC calls. .PP .Vb 6 \& ($answer_hr, $ticket) = $rpc\->xmlrpc({ \& cmd => \*(Aqcipux_task_*|rpc_intern|...\*(Aq, # mandatory \& login => $login, \& ticket => $ticket, \& param_hr => {}, \& }); .Ve .SS "extract_data_for_tpl" .IX Subsection "extract_data_for_tpl" Helper subroutine to extract data for using in web templates. Encode it into \s-1UTF\-8\s0. .PP .Vb 1 \& $tpl_data_ar = $rpc\->extract_data_for_tpl({answer_hr=>$answer_hr}); .Ve .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" .ie n .IP """EXCEPTION: Setting password via server %url failed!""" 4 .el .IP "\f(CWEXCEPTION: Setting password via server %url failed!\fR" 4 .IX Item "EXCEPTION: Setting password via server %url failed!" .PD 0 .ie n .IP """EXCEPTION: Server %url not responding""" 4 .el .IP "\f(CWEXCEPTION: Server %url not responding\fR" 4 .IX Item "EXCEPTION: Server %url not responding" .ie n .IP """EXCEPTION: Server status UNKNOWN""" 4 .el .IP "\f(CWEXCEPTION: Server status UNKNOWN\fR" 4 .IX Item "EXCEPTION: Server status UNKNOWN" .PD .SH "CONFIGURATION AND ENVIRONMENT" .IX Header "CONFIGURATION AND ENVIRONMENT" CipUX::RPC::Client requires no configuration files or environment variables. .SH "DEPENDENCIES" .IX Header "DEPENDENCIES" .Vb 9 \& Carp \& CipUX \& Class::Std \& Data::Dumper \& English \& Frontier::Client \& Log::Log4perl \& Readonly \& version .Ve .SH "INCOMPATIBILITIES" .IX Header "INCOMPATIBILITIES" None reported. .SH "BUGS AND LIMITATIONS" .IX Header "BUGS AND LIMITATIONS" No bugs have been reported. .SH "SEE ALSO" .IX Header "SEE ALSO" See the CipUX webpage and the manual at .PP See the mailing list http://sympa.cipworx.org/wws/info/cipux\-devel .SH "AUTHOR" .IX Header "AUTHOR" Christian Kuelker .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright (C) 2009 by Christian Kuelker. All rights reserved. .PP This program is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. .PP This program is distributed in the hope that it will be useful, but \&\s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. See the \s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, \s-1MA\s0 02111\-1307 \s-1USA\s0 .SH "DISCLAIMER OF WARRANTY" .IX Header "DISCLAIMER OF WARRANTY" \&\s-1BECAUSE\s0 \s-1THIS\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1LICENSED\s0 \s-1FREE\s0 \s-1OF\s0 \s-1CHARGE\s0, \s-1THERE\s0 \s-1IS\s0 \s-1NO\s0 \s-1WARRANTY\s0 \&\s-1FOR\s0 \s-1THE\s0 \s-1SOFTWARE\s0, \s-1TO\s0 \s-1THE\s0 \s-1EXTENT\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0. \s-1EXCEPT\s0 \s-1WHEN\s0 \&\s-1OTHERWISE\s0 \s-1STATED\s0 \s-1IN\s0 \s-1WRITING\s0 \s-1THE\s0 \s-1COPYRIGHT\s0 \s-1HOLDERS\s0 \s-1AND/OR\s0 \s-1OTHER\s0 \s-1PARTIES\s0 \&\s-1PROVIDE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \*(L"\s-1AS\s0 \s-1IS\s0\*(R" \s-1WITHOUT\s0 \s-1WARRANTY\s0 \s-1OF\s0 \s-1ANY\s0 \s-1KIND\s0, \s-1EITHER\s0 \&\s-1EXPRESSED\s0 \s-1OR\s0 \s-1IMPLIED\s0, \s-1INCLUDING\s0, \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0, \s-1THE\s0 \s-1IMPLIED\s0 \&\s-1WARRANTIES\s0 \s-1OF\s0 \s-1MERCHANTABILITY\s0 \s-1AND\s0 \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. \s-1THE\s0 \&\s-1ENTIRE\s0 \s-1RISK\s0 \s-1AS\s0 \s-1TO\s0 \s-1THE\s0 \s-1QUALITY\s0 \s-1AND\s0 \s-1PERFORMANCE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1WITH\s0 \&\s-1YOU\s0. \s-1SHOULD\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1PROVE\s0 \s-1DEFECTIVE\s0, \s-1YOU\s0 \s-1ASSUME\s0 \s-1THE\s0 \s-1COST\s0 \s-1OF\s0 \s-1ALL\s0 \&\s-1NECESSARY\s0 \s-1SERVICING\s0, \s-1REPAIR\s0, \s-1OR\s0 \s-1CORRECTION\s0. .PP \&\s-1IN\s0 \s-1NO\s0 \s-1EVENT\s0 \s-1UNLESS\s0 \s-1REQUIRED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0 \s-1OR\s0 \s-1AGREED\s0 \s-1TO\s0 \s-1IN\s0 \s-1WRITING\s0 \&\s-1WILL\s0 \s-1ANY\s0 \s-1COPYRIGHT\s0 \s-1HOLDER\s0, \s-1OR\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1WHO\s0 \s-1MAY\s0 \s-1MODIFY\s0 \s-1AND/OR\s0 \&\s-1REDISTRIBUTE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1AS\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1THE\s0 \s-1ABOVE\s0 \s-1LICENSE\s0, \s-1BE\s0 \&\s-1LIABLE\s0 \s-1TO\s0 \s-1YOU\s0 \s-1FOR\s0 \s-1DAMAGES\s0, \s-1INCLUDING\s0 \s-1ANY\s0 \s-1GENERAL\s0, \s-1SPECIAL\s0, \s-1INCIDENTAL\s0, \&\s-1OR\s0 \s-1CONSEQUENTIAL\s0 \s-1DAMAGES\s0 \s-1ARISING\s0 \s-1OUT\s0 \s-1OF\s0 \s-1THE\s0 \s-1USE\s0 \s-1OR\s0 \s-1INABILITY\s0 \s-1TO\s0 \s-1USE\s0 \&\s-1THE\s0 \s-1SOFTWARE\s0 (\s-1INCLUDING\s0 \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0 \s-1LOSS\s0 \s-1OF\s0 \s-1DATA\s0 \s-1OR\s0 \s-1DATA\s0 \s-1BEING\s0 \&\s-1RENDERED\s0 \s-1INACCURATE\s0 \s-1OR\s0 \s-1LOSSES\s0 \s-1SUSTAINED\s0 \s-1BY\s0 \s-1YOU\s0 \s-1OR\s0 \s-1THIRD\s0 \s-1PARTIES\s0 \s-1OR\s0 A \&\s-1FAILURE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1TO\s0 \s-1OPERATE\s0 \s-1WITH\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1SOFTWARE\s0), \s-1EVEN\s0 \s-1IF\s0 \&\s-1SUCH\s0 \s-1HOLDER\s0 \s-1OR\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1HAS\s0 \s-1BEEN\s0 \s-1ADVISED\s0 \s-1OF\s0 \s-1THE\s0 \s-1POSSIBILITY\s0 \s-1OF\s0 \&\s-1SUCH\s0 \s-1DAMAGES\s0.