Man Linux: Main Page and Category List

NAME

       RSL Memory Management -

   Functions
       globus_rsl_t * globus_rsl_copy_recursive (globus_rsl_t *ast_node)
       globus_rsl_value_t * globus_rsl_value_copy_recursive
           (globus_rsl_value_t *globus_rsl_value_ptr)
       int globus_rsl_value_free (globus_rsl_value_t *val)
       int globus_rsl_free (globus_rsl_t *ast_node)
       int globus_rsl_value_free_recursive (globus_rsl_value_t
           *globus_rsl_value_ptr)
       int globus_rsl_free_recursive (globus_rsl_t *ast_node)
       int globus_rsl_value_list_literal_replace (globus_list_t *value_list,
           char *string_value)
       int globus_rsl_value_eval (globus_rsl_value_t *ast_node,
           globus_symboltable_t *symbol_table, char **string_value, int
           rsl_substitution_flag)
       int globus_rsl_eval (globus_rsl_t *ast_node, globus_symboltable_t
           *symbol_table)

Function Documentation

   globus_rsl_t* globus_rsl_copy_recursive (globus_rsl_t * ast_node)
       Create a deep copy of an RSL syntax tree. The
       globus_rsl_copy_recursive() function performs a deep copy of the RSL
       syntax tree pointed to by the ast_node parameter. All RSL nodes, value
       nodes, variable names, attributes, and literals will be copied to the
       return value.

       Parameters:
           ast_node An RSL syntax tree to copy.

       Returns:
           The globus_rsl_copy_recursive() function returns a copy of its
           input parameter that that can be used after the ast_node and its
           values have been freed. If an error occurs,
           globus_rsl_copy_recursive() returns NULL.

   globus_rsl_value_t* globus_rsl_value_copy_recursive (globus_rsl_value_t *
       globus_rsl_value_ptr)
       Create a deep copy of an RSL value. The
       globus_rsl_value_copy_recursive() function performs a deep copy of the
       RSL value pointed to by the globus_rsl_value_ptr parameter. All
       variable names, attributes, literals, and value lists will be copied to
       the return value.

       Parameters:
           globus_rsl_value_ptr A pointer to an RSL value to copy.

       Returns:
           The globus_rsl_value_copy_recursive() function returns a copy of
           its input parameter that that can be used after the
           globus_rsl_value_ptr and its values have been freed. If an error
           occurs, globus_rsl_value_copy_recursive() returns NULL.

   int globus_rsl_value_free (globus_rsl_value_t * val)
       Free an RSL value node. The globus_rsl_value_free() function frees the
       RSL value pointed to by the val parameter. This only frees the RSL
       value node itself, and not any sequence or string values associated
       with that node.

       Parameters:
           val The RSL value node to free.

       Returns:
           The globus_rsl_value_free() function always returns GLOBUS_SUCCESS.

   int globus_rsl_free (globus_rsl_t * ast_node)
       Free an RSL syntax tree node. The globus_rsl_free() function frees the
       RSL syntax tree node pointed to by the ast_node parameter. This only
       frees the RSL syntax tree node itself, and not any boolean operands,
       relation names, or values associated with the node.

       Parameters:
           ast_node The RSL syntax tree node to free.

       Returns:
           The globus_rsl_value_free() function always returns GLOBUS_SUCCESS.

   int globus_rsl_value_free_recursive (globus_rsl_value_t *
       globus_rsl_value_ptr)
       Free an RSL value and all its child nodes. The
       globus_rsl_free_recursive() function frees the RSL value node pointed
       to by the globus_rsl_value_ptr, including all literal strings, variable
       names, and value sequences. Any pointers to these are no longer valid
       after globus_rsl_value_free_recursive() returns.

       Parameters:
           globus_rsl_value_ptr An RSL value node to free.

       Returns:
           The globus_rsl_value_free_recursive() function always returns
           GLOBUS_SUCCESS.

   int globus_rsl_free_recursive (globus_rsl_t * ast_node)
       Free an RSL syntax tree and all its child nodes. The
       globus_rsl_free_recursive() function frees the RSL syntax tree pointed
       to by the ast_node parameter, including all boolean operands, attribute
       names, and values. Any pointers to these are no longer valid after
       globus_rsl_free_recursive() returns.

       Parameters:
           ast_node An RSL parse tree to free.

       Returns:
           The globus_rsl_value_free_recursive() function always returns
           GLOBUS_SUCCESS.

   int globus_rsl_value_list_literal_replace (globus_list_t * value_list, char
       * string_value)
       Replace the first value in a value list with a literal. The
       globus_rsl_value_list_literal_replace() function replaces the first
       value in the list pointed to by the value_list parameter with a new
       value node that is a literal string node pointing to the value of the
       string_value parameter, freeing the old value.

       Parameters:
           value_list The RSL value list to modify by replacing its first
           element.
           string_value The new string value to use as a literal first element
           of the list pointed to by the value_list parameter.

       Returns:
           Upon success, globus_rsl_value_list_literal_replace() returns
           GLOBUS_SUCCESS, frees the current first value of value_list and
           replaces it with a new literal string node pointing to the value of
           the string_value parameter. If an error occurs,
           globus_rsl_value_list_literal_replace() returns 1.

   int globus_rsl_value_eval (globus_rsl_value_t * ast_node,
       globus_symboltable_t * symbol_table, char ** string_value, int
       rsl_substitution_flag)
       Evaluate RSL substitions in an RSL value node. The
       globus_rsl_value_eval() function modifies the value pointed to by its
       ast_node parameter by replacing all RSL substitution variable reference
       nodes with the literal values those variables evaluate to based on the
       current scope of the symbol table pointed to by the symbol_table
       parameter. It also combines string concatenations into literal string
       values. Any nodes which are replaced by this function are freed using
       globus_rsl_value_free_recursive().

       Parameters:
           ast_node A pointer to the RSL value node to evaluate.
           symbol_table A symbol table containing current definitions of the
           RSL substitutions which can occur in this evaluation scope.
           string_value An output parameter which is set to point to the value
           of the string returned by evaluating the value node pointed to by
           ast_node if it evaluates to a literal value. list pointed to by the
           value_list parameter.
           rsl_substitution_flag A flag indicating whether the node pointed to
           by the ast_node parameter defines RSL substition variables.

       Returns:
           Upon success, globus_rsl_value_eval() returns GLOBUS_SUCCESS, and
           replaces any RSL substitution values in the node pointed to by the
           ast_node parameter. If the node evaluates to a single literal, the
           string_value parameter is modified to point to the value of that
           literal. If an error occurs, globus_rsl_value_eval() returns a non-
           zero value.

   int globus_rsl_eval (globus_rsl_t * ast_node, globus_symboltable_t *
       symbol_table)
       Evaluate an RSL syntax tree. The globus_rsl_eval() function modifies
       the RSL parse tree pointed to by its ast_node parameter by replacing
       all RSL substitution variable reference nodes with the literal values
       those variables evaluate to based on the current scope of the symbol
       table pointed to by the symbol_table parameter. It also combines string
       concatenations into literal string values. Any nodes which are replaced
       by this function are freed using globus_rsl_value_free_recursive().

       Parameters:
           ast_node A pointer to the RSL syntax tree to evaluate.
           symbol_table A symbol table containing current definitions of the
           RSL substitutions which can occur in this evaluation scope.

       Returns:
           Upon success, globus_rsl_eval() returns GLOBUS_SUCCESS, and
           replaces all RSL substitution values and concatenations in ast_node
           or its child nodes with the evaluated forms described above. If an
           error occurs, globus_rsl_eval() returns a non-zero value.

Author

       Generated automatically by Doxygen for globus rsl from the source code.