The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/local/bin/perl
#
# $Header: /cvsroot/arsperl/ARSperl/example/PrintQual.pl,v 1.2 1999/10/03 04:09:08 jcmurphy Exp $
#
# EXAMPLE
#    PrintQual.pl
#
# DESCRIPTION
#    Using ars_perl_qualifier, decode the QualifierStruct and
#    print it in human readable form. This script is really
#    only a basis and handles most of the generic cases. Further
#    developement would be needed to fully implement a qualifier
#    re-builder.
#
#    You can include the routine Decode_QualHash() and Decode_FVoAS()
#    in your own scripts by requiring 'ars_QualDecode.pl';
# 
# TODO
#    TR. and DB. references need to be implemented in ARS.xs
#    as of now, we don't get that information, so we can't
#    decode it.
#
#    ArithStruct is not handled. See the GetFilter.pl example
#    for routines that will handle this. This probably doesnt
#    matter since i dont think ARS allows you to use arith
#    expression in a qualification.
#
# AUTHOR
#    jeff murphy
#
# 02/20/97
#
# $Log: PrintQual.pl,v $
# Revision 1.2  1999/10/03 04:09:08  jcmurphy
# various
#
# Revision 1.1  1997/02/20 19:33:02  jcmurphy
# Initial revision
#
#
#

use ARS;

require 'ars_QualDecode.pl';

$debug = 0;

# Parse command line parameters

($server, $username, $password, $schema, $qual) = @ARGV;
if(!defined($password)) {
    print "usage: $0 [server] [username] [password] [schema] [qualification]\n";
    exit 1;
}

# Log onto the ars server specified

($ctrl = ars_Login($server, $username, $password)) || 
    die "can't login to the server";

# Load the qualifier structure 

($q = ars_LoadQualifier($ctrl,$schema, $qual)) ||
    die "error in ars_LoadQualifier:\n$ars_errstr\n";

# Decode the encoded structure

($dq = ars_perl_qualifier($ctrl, $q)) ||
    die "ars_perl_qualifier failed: $ars_errstr\n";

# Convert the decoded structure to a readable format

$e = ars_Decode_QualHash($ctrl, $schema, $dq);

print "$e\n";

ars_Logoff($ctrl);

exit 0;