.TH "globus_rsl_predicates" 3 "Fri Sep 2 2016" "Version 10.11" "globus_rsl" \" -*- nroff -*- .ad l .nh .SH NAME globus_rsl_predicates \- RSL Predicates .SS "Functions" .in +1c .ti -1c .RI "int \fBglobus_rsl_is_relation\fP (globus_rsl_t *ast)" .br .RI "\fIRSL relation test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_is_boolean\fP (globus_rsl_t *ast)" .br .RI "\fIRSL boolean test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_is_relation_eq\fP (globus_rsl_t *ast)" .br .RI "\fIRSL equality operation test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_is_relation_lessthan\fP (globus_rsl_t *ast)" .br .RI "\fIRSL less than operation test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_is_relation_attribute_equal\fP (globus_rsl_t *ast, char *attribute)" .br .RI "\fIRSL attribute name test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_is_boolean_and\fP (globus_rsl_t *ast)" .br .RI "\fIRSL boolean and test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_is_boolean_or\fP (globus_rsl_t *ast)" .br .RI "\fIRSL boolean or test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_is_boolean_multi\fP (globus_rsl_t *ast)" .br .RI "\fIRSL boolean multi test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_value_is_literal\fP (globus_rsl_value_t *ast)" .br .RI "\fIRSL literal string test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_value_is_sequence\fP (globus_rsl_value_t *ast)" .br .RI "\fIRSL value sequence test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_value_is_variable\fP (globus_rsl_value_t *ast)" .br .RI "\fIRSL value variable test\&. \fP" .ti -1c .RI "int \fBglobus_rsl_value_is_concatenation\fP (globus_rsl_value_t *ast)" .br .RI "\fIRSL value concatenation test\&. \fP" .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 globus_rsl_is_boolean (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 1 & ( "queue" = "debug") ( "max_time" = "10000") 2 | ("count" = "1")("count" = "10") 3 + ( &("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 globus_rsl_is_boolean_and (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\&. .PP An example of a boolean and relation is .PP .nf 1 & ( "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 globus_rsl_is_boolean_multi (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\&. .PP An example of a boolean multie-request relation is .PP .nf 1 + ( &( "executable" = "exe\&.1") ( "count" = "2" ) ) 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 globus_rsl_is_boolean_or (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\&. .PP An example of a boolean or relation is .PP .nf 1 | ( "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 globus_rsl_is_relation (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 1 "queue" = "debug" 2 "queue" != "slow" 3 "min_memory" > "1000" 4 "max_wall_time" >= "60" 5 "count < "10" 6 "host_count" <= "5" .fi .PP .PP \fBNote:\fP .RS 4 GRAM only supports equality relations\&. .RE .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 globus_rsl_is_relation_attribute_equal (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 globus_rsl_is_relation_eq (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 1 "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 globus_rsl_is_relation_lessthan (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 1 "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 globus_rsl_value_is_concatenation (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 1 $( "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 .SS "int globus_rsl_value_is_literal (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\&. .PP An example of a literal string is .PP .nf 1 "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 globus_rsl_value_is_sequence (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 "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 globus_rsl_value_is_variable (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 1 $( "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 .SH "Author" .PP Generated automatically by Doxygen for globus_rsl from the source code\&.