Provided by: libcipux-rpc-client-perl_3.4.0.7-2.1_all bug

NAME

       CipUX::RPC::Client - XML-RPC client call library

VERSION

       This document describes CipUX::RPC::Client version 3.4.0.7

SYNOPSIS

        use warnings;
        use strict;
        use CipUX::RPC::Client;
        use version; our $VERSION = qv('3.4.0.0');

        my $rpc = CipUX::RPC::Client->new({
                      url=>'http://localhost:8001/RPC2',
                      client=>'clientname', # name of client
                      version=>'3.4.0.0', # version of client
                 });

        if ( $rpc->rpc_ping() ) { print "OK\n" }else{ exit 1; }

        if ( $rpc->rpc_login() ) { print "OK\n" }else{ exit 1; }

        # probably do some other calls

        if ( $rpc->rpc_logout() ) { print "OK\n" }else{ exit 1; }

        exit 0;

DESCRIPTION

SUBROUTINES/METHODS

   BUILD
       Constructor (Not used at the moment)

   DEMOLISH
       Destructor

   get_login
       Retrieve the login (uid) of the rpc client object.

         $login = $rpc->get_login();

   rpc_selfpasswd
       Set own password.

         1|0 = $rpc->rpc_login( { password=>$password } );

   rpc_ping
       Test if the server is up.

         1|0 = $rpc->rpc_ping();

   rpc_login
       Perform a log in.

         1|0 = $rpc->rpc_login();

   rpc_logout
       Perform a log out.

         1|0 = $rpc->rpc_logout();

   rpc_ttl
       Returns the TTL via rpc_intern.

         $ttl = $rpc->rpc_ttl();

   rpc_session
       Returns a ticket or 0;

         my $ticket = $rpc->rpc_session();

   rpc_cat_module_cache_size
       Returns the cache size via rpc_intern.

         $integer = $rpc->rpc_cat_module_cache_size();

   rpc_rpc_intern_cache_size
       Returns the cache size via rpc_intern.

         $integer = $rpc->rpc_rpc_intern_cache_size();

   rpc_task_cache_size
       Returns the cache size via rpc_intern.

         $integer = $rpc->rpc_task_cache_size();

   rpc_flush
       Flush the cache via rpc_intern.

         0|1 = $rpc->rpc_flush();

   rpc_check_access
       Aggregate several check access subcommands.

         ( $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)
         });

   rpcev
       Helper routine to evaluate calls.

            $ok   = $rpc->rpcev( 'ping',  \&{ $rpc->rpc_ping } );
            $ok   = $rpc->rpcev( 'login', \&{ $rpc->rpc_login } );
            $code = sub { return $rpc->xmlrpc(@_); }; # remains the same
            $a_hr = $rpc->rpcev 'list', $code, {cmd => 'cipux_task_list_student_accounts'} );
            $d_ar = $rpc->extract_data_for_tpl( {answer_hr => $a_hr, use_ltarget=>1} );
            print "Students on the system:\n";
            foreach my $l (@{$d_ar->{tpl_data_ar}}){ print "\t$l->{$d_ar->{ltarget}}\n";}
            $ok   = $rpc->rpcev( 'logout',\&{ $rpc->rpc_logout }, );

   xmlrpc
       Helper subroutine to executing XML-RPC calls.

         ($answer_hr, $ticket) = $rpc->xmlrpc({
               cmd    => 'cipux_task_*|rpc_intern|...',  # mandatory
               login  => $login,
               ticket => $ticket,
               param_hr => {},
         });

   extract_data_for_tpl
       Helper subroutine to extract data for using in web templates.  Encode it into UTF-8.

        $tpl_data_ar = $rpc->extract_data_for_tpl({answer_hr=>$answer_hr});

DIAGNOSTICS

       "EXCEPTION: Setting password via server %url failed!"
       "EXCEPTION: Server %url not responding"
       "EXCEPTION: Server status UNKNOWN"

CONFIGURATION AND ENVIRONMENT

       CipUX::RPC::Client requires no configuration files or environment variables.

DEPENDENCIES

               Carp
               CipUX
               Class::Std
               Data::Dumper
               English
               Frontier::Client
               Log::Log4perl
               Readonly
               version

INCOMPATIBILITIES

       None reported.

BUGS AND LIMITATIONS

       No bugs have been reported.

SEE ALSO

       See the CipUX webpage and the manual at <http://www.cipux.org>

       See the mailing list <http://sympa.cipworx.org/wws/info/cipux-devel>

AUTHOR

       Christian Kuelker  <christian.kuelker@cipworx.org>

LICENSE AND COPYRIGHT

       Copyright (C) 2009 by Christian Kuelker. All rights reserved.

       This program is free software; you can redistribute it and/or modify it under the terms of
       the GNU General Public License as published by the Free Software Foundation; either
       version 2, or (at your option) any later version.

       This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
       without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with this program;
       if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
       MA 02111-1307 USA

DISCLAIMER OF WARRANTY

       BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE,
       TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
       COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF
       ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
       THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE
       DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.

       IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT
       HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY
       THE ABOVE LICENSE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
       INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
       SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
       LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY
       OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
       SUCH DAMAGES.