RSL Predicates

Functions

int globus_rsl_is_relation (globus_rsl_t *ast)
int globus_rsl_is_boolean (globus_rsl_t *ast)
int globus_rsl_is_relation_eq (globus_rsl_t *ast)
int globus_rsl_is_relation_lessthan (globus_rsl_t *ast)
int globus_rsl_is_relation_attribute_equal (globus_rsl_t *ast, char *attribute)
int globus_rsl_is_boolean_and (globus_rsl_t *ast)
int globus_rsl_is_boolean_or (globus_rsl_t *ast)
int globus_rsl_is_boolean_multi (globus_rsl_t *ast)
int globus_rsl_value_is_literal (globus_rsl_value_t *ast)
int globus_rsl_value_is_sequence (globus_rsl_value_t *ast)
int globus_rsl_value_is_variable (globus_rsl_value_t *ast)
int globus_rsl_value_is_concatenation (globus_rsl_value_t *ast)

Detailed Description

The functions in this group return boolean values indicating whether an RSL syntax tree is of a particular type.


Function Documentation

int globus_rsl_is_relation ( globus_rsl_t *  ast)

RSL relation test.

The globus_rsl_is_relation() function tests whether the 
the RSL pointed to by the @a ast parameter is a relation. The
RSL syntax supports the following relation operations:
<dl>
  <dt>=</dt>
  <dd>Equal</dd>
  <dt>!=</dt>
  <dd>Not Equal</dd>
  <dt>&gt;</dt>
  <dd>Greater Than</dd>
  <dt>&gt;=</dt>
  <dd>Greater Than or Equal</dd>
  <dt>&lt;</dt>
  <dd>Less Than</dd>
  <dt>&lt;=</dt>
  <dd>Less Than or Equal</dd>
  <dt>&lt;=</dt>
  <dd>Less Than or Equal</dd>
</dl>

Some examples of RSL relations are 
"queue" = "debug"
"queue" != "slow"
"min_memory" > "1000"
"max_wall_time" >= "60"
"count < "10"
"host_count" <= "5"
GRAM only supports equality relations.
Parameters:
astPointer to an RSL parse tree structure.
Returns:
The globus_rsl_is_relation() function returns GLOBUS_TRUE if the RSL parse tree pointed to by ast is a relation; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_is_boolean ( globus_rsl_t *  ast)

RSL boolean test.

The globus_rsl_is_boolean() function tests whether the 
the RSL pointed to by the @a ast 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
& ( "queue" = "debug") ( "max_time" = "10000")
| ("count" = "1")("count" = "10")
+ ( &("executable" = "1.exe") ) ( & ("executable" = "2.exe" )
Parameters:
astPointer to an RSL parse tree structure.
Returns:
The globus_rsl_is_boolean() function returns GLOBUS_TRUE if the RSL parse tree pointed to by ast is a boolean composition; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_is_relation_eq ( globus_rsl_t *  ast)

RSL equality operation test.

The globus_rsl_is_relation_eq() function tests whether the 
the RSL pointed to by the @a ast parameter is an equality relation.
An example of an equality relation is
@code 

"queue" = "debug"

Parameters:
astPointer to an RSL parse tree structure.
Returns:
The globus_rsl_is_relation_eq() function returns GLOBUS_TRUE if the RSL parse tree pointed to by ast is an equality relation; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_is_relation_lessthan ( globus_rsl_t *  ast)

RSL less than operation test.

The globus_rsl_is_relation_lessthan() function tests whether the 
the RSL pointed to by the @a ast parameter is a less-than relation.
An example of a less-than relation is
@code 

"count" = "10"

Parameters:
astPointer to an RSL parse tree structure.
Returns:
The globus_rsl_is_relation_lessthan() function returns GLOBUS_TRUE if the RSL parse tree pointed to by ast is a less-than relation; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_is_relation_attribute_equal ( globus_rsl_t *  ast,
char *  attribute 
)

RSL attribute name test.

The globus_rsl_is_relation_attribute_equal() function tests whether
the the RSL pointed to by the @a ast parameter is a relation with
the attribute name which matches the string pointed to by the
@a attribute parameter. This attribute name comparision is
case-insensitive.
Parameters:
astPointer to an RSL parse tree structure.
attributeName of the attribute to test
Returns:
The globus_rsl_is_relation_attribute_equal() function returns GLOBUS_TRUE if the RSL parse tree pointed to by ast is a relation and its attribute name matches the attribute parameter; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_is_boolean_and ( globus_rsl_t *  ast)

RSL boolean and test.

The globus_rsl_is_boolean_and() function tests whether the 
the RSL pointed to by the @a ast parameter is a boolean "and"
composition of RSL trees.
An example of a boolean and relation is
@code 

& ( "queue" = "debug" ) ( "executable" = "a.out" )

Parameters:
astPointer to an RSL parse tree structure.
Returns:
The globus_rsl_is_boolean_and() function returns GLOBUS_TRUE if the RSL parse tree pointed to by ast is a boolean and of RSL parse trees; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_is_boolean_or ( globus_rsl_t *  ast)

RSL boolean or test.

The globus_rsl_is_boolean_or() function tests whether the 
the RSL pointed to by the @a ast parameter is a boolean "or" composition
of RSL trees.
An example of a boolean or relation is
@code 

| ( "count" = "2" ) ( "count" = "4" )

Parameters:
astPointer to an RSL parse tree structure.
Returns:
The globus_rsl_is_boolean_or() function returns GLOBUS_TRUE if the RSL parse tree pointed to by ast is a boolean and of RSL parse trees; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_is_boolean_multi ( globus_rsl_t *  ast)

RSL boolean multi test.

The globus_rsl_is_boolean_multi() function tests whether the 
the RSL pointed to by the @a ast parameter is a boolean "multi-request"
composition of RSL trees.
An example of a boolean multie-request relation is
@code 
  • ( &( "executable" = "exe.1") ( "count" = "2" ) ) ( &( "executable" =" exe.2") ( "count" = "2" ) )
Parameters:
astPointer to an RSL parse tree structure.
Returns:
The globus_rsl_is_boolean_multi() function returns GLOBUS_TRUE if the RSL parse tree pointed to by ast is a boolean multi-request of RSL parse trees; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_value_is_literal ( globus_rsl_value_t *  ast)

RSL literal string test.

The globus_rsl_value_is_literal() function tests whether the 
the RSL value pointed to by the @a ast parameter is a literal string
value.
An example of a literal string is
@code 

"count"

Parameters:
astPointer to an RSL value structure.
Returns:
The globus_rsl_value_is_literal() function returns GLOBUS_TRUE if the RSL value pointed to by ast is a literal string value; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_value_is_sequence ( globus_rsl_value_t *  ast)

RSL value sequence test.

The globus_rsl_value_is_sequence() function tests whether the 
the RSL value pointed to by the @a ast parameter is a sequence of
RSL values. An example of a sequence of values is
@code 

"1" "2" "3"

Parameters:
astPointer to an RSL value structure.
Returns:
The globus_rsl_value_is_sequence() function returns GLOBUS_TRUE if the RSL value pointed to by ast is a value sequnce; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_value_is_variable ( globus_rsl_value_t *  ast)

RSL value variable test.

The globus_rsl_value_is_variable() function tests whether the 
the RSL value pointed to by the @a ast parameter is a variable reference.
RSL values. An example of a variable reference is
@code 

$( "GLOBUSRUN_GASS_URL" )

Parameters:
astPointer to an RSL value structure.
Returns:
The globus_rsl_value_is_sequence() function returns GLOBUS_TRUE if the RSL value pointed to by ast is a value sequnce; otherwise, it returns GLOBUS_FALSE.
int globus_rsl_value_is_concatenation ( globus_rsl_value_t *  ast)

RSL value concatenation test.

The globus_rsl_value_is_concatenation() function tests whether the 
the RSL value pointed to by the @a ast parameter is a concatenation of
RSL values. An example of an RSL value concatenation is
@code 

$( "GLOBUSRUN_GASS_URL" ) # "/input"

Parameters:
astPointer to an RSL value structure.
Returns:
The globus_rsl_value_is_concatenation() function returns GLOBUS_TRUE if the RSL value pointed to by ast is a value concatenation; otherwise, it returns GLOBUS_FALSE.

about globus | globus toolkit | dev.globus

Comments? webmaster@globus.org