.TH "RSL Predicates" 3 "Wed Jan 25 2012" "Version 9.1" "globus rsl" \" -*- nroff -*- .ad l .nh .SH NAME RSL Predicates \- .SS "Functions" .in +1c .ti -1c .RI "int \fBglobus_rsl_is_relation\fP (globus_rsl_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_is_boolean\fP (globus_rsl_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_is_relation_eq\fP (globus_rsl_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_is_relation_lessthan\fP (globus_rsl_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_is_relation_attribute_equal\fP (globus_rsl_t *ast, char *attribute)" .br .ti -1c .RI "int \fBglobus_rsl_is_boolean_and\fP (globus_rsl_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_is_boolean_or\fP (globus_rsl_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_is_boolean_multi\fP (globus_rsl_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_value_is_literal\fP (globus_rsl_value_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_value_is_sequence\fP (globus_rsl_value_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_value_is_variable\fP (globus_rsl_value_t *ast)" .br .ti -1c .RI "int \fBglobus_rsl_value_is_concatenation\fP (globus_rsl_value_t *ast)" .br .in -1c .SH "Detailed Description" .PP The functions in this group return boolean values indicating whether an RSL syntax tree is of a particular type\&. .SH "Function Documentation" .PP .SS "int \fBglobus_rsl_is_relation\fP (globus_rsl_t *ast)" .PP RSL relation test\&. The \fBglobus_rsl_is_relation()\fP function tests whether the the RSL pointed to by the \fIast\fP parameter is a relation\&. The RSL syntax supports the following relation operations: .IP "\fB= \fP" 1c Equal .IP "\fB!= \fP" 1c Not Equal .IP "\fB> \fP" 1c Greater Than .IP "\fB>= \fP" 1c Greater Than or Equal .IP "\fB< \fP" 1c Less Than .IP "\fB<= \fP" 1c Less Than or Equal .IP "\fB<= \fP" 1c Less Than or Equal .PP .PP Some examples of RSL relations are .PP .nf 'queue' = 'debug' 'queue' != 'slow' 'min_memory' > '1000' 'max_wall_time' >= '60' 'count < '10' 'host_count' <= '5' .fi .PP .PP GRAM only supports equality relations\&. .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL parse tree structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_is_relation()\fP function returns GLOBUS_TRUE if the RSL parse tree pointed to by \fIast\fP is a relation; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_is_boolean\fP (globus_rsl_t *ast)" .PP RSL boolean test\&. The \fBglobus_rsl_is_boolean()\fP function tests whether the the RSL pointed to by the \fIast\fP parameter is a boolean composition of other RSL parse trees\&. The syntactically understood boolean compositions are '&' (conjunction), '|' (disjunction), and '+' (multi-request)\&. Some bexamples of RSL booleans are .PP .PP .nf & ( 'queue' = 'debug') ( 'max_time' = '10000') | ('count' = '1')('count' = '10') + ( &('executable' = '1\&.exe') ) ( & ('executable' = '2\&.exe' ) .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL parse tree structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_is_boolean()\fP function returns GLOBUS_TRUE if the RSL parse tree pointed to by \fIast\fP is a boolean composition; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_is_relation_eq\fP (globus_rsl_t *ast)" .PP RSL equality operation test\&. The \fBglobus_rsl_is_relation_eq()\fP function tests whether the the RSL pointed to by the \fIast\fP parameter is an equality relation\&. An example of an equality relation is .PP .nf 'queue' = 'debug' .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL parse tree structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_is_relation_eq()\fP function returns GLOBUS_TRUE if the RSL parse tree pointed to by \fIast\fP is an equality relation; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_is_relation_lessthan\fP (globus_rsl_t *ast)" .PP RSL less than operation test\&. The \fBglobus_rsl_is_relation_lessthan()\fP function tests whether the the RSL pointed to by the \fIast\fP parameter is a less-than relation\&. An example of a less-than relation is .PP .nf 'count' = '10' .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL parse tree structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_is_relation_lessthan()\fP function returns GLOBUS_TRUE if the RSL parse tree pointed to by \fIast\fP is a less-than relation; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_is_relation_attribute_equal\fP (globus_rsl_t *ast, char *attribute)" .PP RSL attribute name test\&. The \fBglobus_rsl_is_relation_attribute_equal()\fP function tests whether the the RSL pointed to by the \fIast\fP parameter is a relation with the attribute name which matches the string pointed to by the \fIattribute\fP parameter\&. This attribute name comparision is case-insensitive\&. .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL parse tree structure\&. .br \fIattribute\fP Name of the attribute to test .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_is_relation_attribute_equal()\fP function returns GLOBUS_TRUE if the RSL parse tree pointed to by \fIast\fP is a relation and its attribute name matches the \fIattribute\fP parameter; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_is_boolean_and\fP (globus_rsl_t *ast)" .PP RSL boolean and test\&. The \fBglobus_rsl_is_boolean_and()\fP function tests whether the the RSL pointed to by the \fIast\fP parameter is a boolean 'and' composition of RSL trees\&. An example of a boolean and relation is .PP .nf & ( 'queue' = 'debug' ) ( 'executable' = 'a\&.out' ) .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL parse tree structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_is_boolean_and()\fP function returns GLOBUS_TRUE if the RSL parse tree pointed to by \fIast\fP is a boolean and of RSL parse trees; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_is_boolean_or\fP (globus_rsl_t *ast)" .PP RSL boolean or test\&. The \fBglobus_rsl_is_boolean_or()\fP function tests whether the the RSL pointed to by the \fIast\fP parameter is a boolean 'or' composition of RSL trees\&. An example of a boolean or relation is .PP .nf | ( 'count' = '2' ) ( 'count' = '4' ) .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL parse tree structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_is_boolean_or()\fP function returns GLOBUS_TRUE if the RSL parse tree pointed to by \fIast\fP is a boolean and of RSL parse trees; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_is_boolean_multi\fP (globus_rsl_t *ast)" .PP RSL boolean multi test\&. The \fBglobus_rsl_is_boolean_multi()\fP function tests whether the the RSL pointed to by the \fIast\fP parameter is a boolean 'multi-request' composition of RSL trees\&. An example of a boolean multie-request relation is .PP .nf + ( &( 'executable' = 'exe\&.1') ( 'count' = '2' ) ) ( &( 'executable' =' exe\&.2') ( 'count' = '2' ) ) .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL parse tree structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_is_boolean_multi()\fP function returns GLOBUS_TRUE if the RSL parse tree pointed to by \fIast\fP is a boolean multi-request of RSL parse trees; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_value_is_literal\fP (globus_rsl_value_t *ast)" .PP RSL literal string test\&. The \fBglobus_rsl_value_is_literal()\fP function tests whether the the RSL value pointed to by the \fIast\fP parameter is a literal string value\&. An example of a literal string is .PP .nf 'count' .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL value structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_value_is_literal()\fP function returns GLOBUS_TRUE if the RSL value pointed to by \fIast\fP is a literal string value; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_value_is_sequence\fP (globus_rsl_value_t *ast)" .PP RSL value sequence test\&. The \fBglobus_rsl_value_is_sequence()\fP function tests whether the the RSL value pointed to by the \fIast\fP parameter is a sequence of RSL values\&. An example of a sequence of values is .PP .nf '1' '2' '3' .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL value structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_value_is_sequence()\fP function returns GLOBUS_TRUE if the RSL value pointed to by \fIast\fP is a value sequnce; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_value_is_variable\fP (globus_rsl_value_t *ast)" .PP RSL value variable test\&. The \fBglobus_rsl_value_is_variable()\fP function tests whether the the RSL value pointed to by the \fIast\fP parameter is a variable reference\&. RSL values\&. An example of a variable reference is .PP .nf $( 'GLOBUSRUN_GASS_URL' ) .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL value structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_value_is_sequence()\fP function returns GLOBUS_TRUE if the RSL value pointed to by \fIast\fP is a value sequnce; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SS "int \fBglobus_rsl_value_is_concatenation\fP (globus_rsl_value_t *ast)" .PP RSL value concatenation test\&. The \fBglobus_rsl_value_is_concatenation()\fP function tests whether the the RSL value pointed to by the \fIast\fP parameter is a concatenation of RSL values\&. An example of an RSL value concatenation is .PP .nf $( 'GLOBUSRUN_GASS_URL' ) # '/input' .fi .PP .PP \fBParameters:\fP .RS 4 \fIast\fP Pointer to an RSL value structure\&. .RE .PP \fBReturns:\fP .RS 4 The \fBglobus_rsl_value_is_concatenation()\fP function returns GLOBUS_TRUE if the RSL value pointed to by \fIast\fP is a value concatenation; otherwise, it returns GLOBUS_FALSE\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for globus rsl from the source code\&.